Добро пожаловать в переполнение стека:]
К сожалению, в данный момент нет механизма для вычисления целочисленного отношения из двух длины значений в чистом виде CSS (calc(100vw / 2560px)
не будет работать, потому что вы можете разделить длину только с целым числом, чтобы получить другую длину, а не с другой длиной, чтобы получить целое число).
Поэтому, если вы хотите получить отношение вашего ссылочного элемента к фактическому окну просмотра, JavaScript кажется единственным вариантом. Разумный подход будет использовать JS просто для установки CSS пользовательского свойства и позволить стилям делать все остальное:
function setScaleRatio() {
viewportWidth = document.documentElement.clientWidth;
fullWidth = 2560 + 200;
// (2560 is reference size, +200 just to make sure we'll see right border in this example)
scaleRatio = viewportWidth / fullWidth;
document.documentElement.style.setProperty('--ratio', scaleRatio);
};
setScaleRatio();
window.addEventListener('resize', setScaleRatio);
[style]::before {
content: attr(style);
}
<div style="
width: 2560px;
transform: scale(var(--ratio));
transform-origin: top left;
font-size: 100px;
background-color: black;
color: white;
"></div>