css - 按屏幕宽度线性缩放值

标签 css sass

<分区>

我想做这个

 Let sw be screen width, width be a certain element's width.
 1. sw = 1200px, width = 1000px = 1000/1200*100vw 
 2. sw = 940px,  width = 800px  = 800/940*100vw  
 3. 940 < sw < 1200, width = linearly scale within the bounds 1. and 2.

用js很简单
width_in_pixel = 1000 + (sw - 1200) * (1000 - 940)/(1200 - 940);

我知道单位 vw 和媒体查询 @media (min-width: 940px) and (max-width: 1200px) {} 但无法解决这个问题,所以请有人帮助我:

是否可以使用纯 css/sass(无 js)对其进行缩放?

最佳答案

你可以使用 css calc() 函数

width: calc( 1000px / 1200px * 100vw)

More Info在 CSS calc()

您可以使用 SASS 做更多事情:

$sw = 100vw;

.element {
    width: calc(1000px + ( #{$sw} - 1200px ) * ( 1000px - 940px ) / ( 1200px - 940px ))
}

Note: whenever you’re trying to use Sass variables in calc function, be sure to escape them with #{}

为了得到你想要的,你可以使用 Sass Control Directives

关于css - 按屏幕宽度线性缩放值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31836631/

上一篇:javascript - 如何更改不规则多边形图像 onclick 和 onmouseover

下一篇:javascript - 模态 mask 出现在模态元素上

相关文章:

jQuery 弹出窗口滚动

html - 图像 slider 不起作用

css - 如何在 Ionic 3 中添加自定义 CSS

html - 在 Ionic 4.0 中更改 ionic 项背景颜色

html - 我正在尝试使内部文本在悬停颜色为白色时发生变化

html - 优化首屏 CSS

html - 使用 Bootstrap3 样式化 Html.ValidationMessageFor

javascript - 文本框的边框被另一个类覆盖

css - 在 Next.js 12 中使用带有 SCSS 的 Bootstrap

css - 与参数混合不起作用 vs