Я редактирую исходный код библиотеки plotly.js, чтобы иметь масштабируемые графики, я устанавливаю viewBox и preserveAspectRatio (plotly.js использует библиотеку d3), но у меня есть проблема с размером шрифта, если я не использую единицу, свойство изменяется на px
Я пытался проверить с консоли, не изменился ли шрифт, чтобы не использовать юнит, используя это:
[...document.querySelectorAll('text')].forEach((text) => {
text.style.fontSize = text.style.fontSize.replace('px', '')
});
, но кажется, что если вы не используете юнит, px добавляется автоматически.
Я также пытался использовать rem unit и установить 62,5% на html, где исходный размер шрифта делится на 10, но он не масштабируется при изменении размера графика.
Также пробовалэтот новый CSS API OM с типизацией:
[...document.querySelectorAll('text')].forEach((text) => {
var size = +text.style.fontSize.replace('px', '');
text.attributeStyleMap.set('font-size', CSS.number(size))
});
, но получил ошибку:
Failed to execute 'set' on 'StylePropertyMap': Invalid type for property
Есть ли какое-либо решение, позволяющее установить размер шрифта без единицы измерения из javascript, или другой способ пропорционального текста?