Якщо ви хочете встановити розмір шрифту як відсоток від ширини області перегляду, використовуйте vw
одиницю:
#mydiv { font-size: 5vw; }
Інша альтернатива - використання SVG, вбудованого в HTML. Це буде лише кілька рядків. Атрибут розміру шрифту для текстового елемента буде інтерпретований як "користувацькі одиниці", наприклад ті, які область перегляду визначена в термінах. Отже, якщо ви визначите область перегляду як 0 0 100 100, тоді розмір шрифту 1 становитиме одну соту розміру елемента svg.
І ні, в CSS це неможливо зробити за допомогою розрахунків. Проблема полягає в тому, що відсотки, використані для розміру шрифту, включаючи відсотки всередині розрахунку, інтерпретуються з точки зору успадкованого розміру шрифту, а не розміру контейнера. CSS може використовувати для цього одиницю, що називається bw
(box-width), так що ви можете сказати div { font-size: 5bw; }
, але я ніколи цього не чув.