Вам не нужно использовать проценты для вычисления значения calc для работы. Вы можете использовать число для представления значения масштабирования. Значение 1 соответствует значению 100%. Я не уверен, что calc () возвращает, когда базовое значение равно 100vh, но вы можете попробовать (я сам не проверял):
@media screen and (min-width: 1921px) {
.content-block {
zoom: calc (100vw / 1500);
line-height: 150%;
}
}
Что это будет делать 4000px / 1500= 2.666666666666667 . Это числовой эквивалент того, что вы ищете.
Как я уже сказал, я не уверен, что 100vh возвращает для расчета. Я предполагаю значения px. Я попытаюсь проверить это и обновлю свой ответ соответственно.
edit: Это не работает. Вот моя пробная ручка. Входные данные для вычисления должны быть числом (%, пикселем или числом)
https://codepen.io/jclark86613/pen/RwweMzw
================ ОБНОВЛЕНИЕ===================
Я не думаю, что есть способ сделать это без JavaScript. Самый минимальный js-ответ, который я могу выработать:
<body onresize="document.documentElement.style.setProperty('--display-height', window.screenY )">
<div class="zoom">TEXT</div>
</body>
:root {
--display-height: 15;
}
.zoom {
zoom: calc( var(--display-height ) / 15 );
}
Это позволяет вам использовать dom для запуска простого javascript (без js-файла). Пример пера:
https://codepen.io/jclark86613/pen/zYYmjxJ