如何计算CSS缩放系数相对于屏幕宽度的百分比?

问题描述 投票:0回答:2

我需要的是以下计算结果的百分比:

@media screen and (min-width: 1921px) {
  .content-block {
    zoom: calc (100vw divided by 15) as percentage; // <- HERE
    line-height: 150%;
  }
}

我不想为大屏幕创建太多媒体查询。

示例:屏幕宽度4000px除以15 = 266%缩放

EDIT:请不要JavaScript,仅CSS解决方案,..

css width zoom screen calc
2个回答
0
投票

您无需使用百分比就可以使calc值起作用。您可以使用数字来表示缩放值。值1与值100%相同。我不确定基本值是100vh时calc()返回什么,但是您可以尝试(我自己尚未测试过):

@media screen and (min-width: 1921px) {
  .content-block {
    zoom: calc (100vw / 1500);
    line-height: 150%;
  }
}

这将是4000px / 1500 = 2.666666666666667。这是与您要寻找的数字相等的数字。

正如我说的,我不确定calc的计算会返回100vh。我假设px值。我将尝试对此进行测试并相应地更新我的答案。

edit:它不起作用。这是我的测试笔。 calc输入必须是数字(%或像素或数字)

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


0
投票

类似的方法可能有效(您可能需要对数字进行一些调整才能获得预期的结果:]

© www.soinside.com 2019 - 2024. All rights reserved.