Разбор CSS единицы на число

Описание

В моей странице есть стандартный размер, заданный через стили css. Находится он в :root и имеет имя --size-standard. Я точно знаю что он есть, но не знаю какое у него единица измерения (px, cm, in, vw, vmin...).
В скрипте JS мне нужно получить это значение как число и использовать его для иных целей (к примеру для ширины линии в canvas-е).
Говоря "значение как число" имеется ввиду значение в пикселях конвертированный в число.

Проблема

Вот только что бы я не пробовал, мне не удается получить это значение в пикселях.
К примеру вот:

const stringSizeStandard = getComputedStyle(document.documentElement).getPropertyValue(`--size-standard`);
const numberSizeStandard = CSSNumericValue.parse(stringSizeStandard).to(`px`).value;
:root {
  --size-standard: 6vmin;
}

Получаю:

Uncaught TypeError: Failed to execute 'to' on 'CSSNumericValue': Cannot convert to px

Вопрос

Что я могу делать? Как мне разобрать CSS единицу на число?

Уточнение

Варианты без использования библиотек предпочтительнее.


Ответы (1 шт):

Автор решения: BlackStar1991

Желательно всё таки знать величину которая будет root: иначе прийдеться писать функцию определения, а так то вот.

document.addEventListener("DOMContentLoaded", function() {
  const stringSizeStandard = getComputedStyle(document.documentElement).getPropertyValue("--size-standard");
  console.log(stringSizeStandard);


  // Преобразуем значение в число без единицы измерения
  const sizeStandardWithoutUnit = parseInt(stringSizeStandard);

  // Теперь получаем размер в пикселях
  const sizeStandardInPx = sizeStandardWithoutUnit * (window.innerWidth / 100); // Переводим из vw в px

  console.log(sizeStandardInPx + "px");


});
:root {
  --size-standard: 6vmin;
}

.block {
  width: var(--size-standard);
  height: 30px;
  background-color: pink;
}
<div class="block"></div>

Возможно вы пытались получить значения, до момента сборки DOM дерева и отрисовки нужных стилей...

→ Ссылка