使用calc(px+vw)使用CSS计算流体 CSS元素大小

在这里使用此方法:https://css-tricks.com/fun-viewport-units/

在这里使用此方法:https://css-tricks.com/fun-viewport-units/

我想计算如何在视图端口大小1920px 和 375px之间实现特定的更改量

示例:我希望我的 150px 元素在 1920px 和 375px 之间缩小 40px

问题是:

我不知道我应该使用什么方程来最好地定义我的输入值。

我试着在 1920px 添加 40px 除以 19.2(2.083 vw)减去 40px 的所需大小 150px:

width: calc(150px + (2.083vw - 40px))

它非常接近,但不是很接近,只是150px 在 1920px,但117px 在 375px

我也尝试使用 40px 除以视口大小 15.45 之间的差异:

width: calc(150px + (2.588vw - 40px))

但这是更远的160px 在 1920px119px 在 375px

零件解决方案:

如果我用元素boxfix看到的数字是正确的(或关闭 eneough 不关心半 px 每种方式)

width: calc(150px + (2.56vw - 49.5px))

因为我不想每次我希望有一种方法来计算每个值应该更准确,或者如果有一个更好的总和,我可以使用来实现同样的事情。

JS 小提琴:

这是一个 JSFiddle,以防它有用:https://jsfiddle.net/8qdptyj3/1/

body {
  font-size: 18px;
}
.box {
  width: calc(150px + (2.083vw - 40px))
}
.boxfix {
  width: calc(150px + (2.56vw - 49.5px))
}
<div class="box" style="background:red;color:white;margin:10px;">
  Hello World
</div>
<div class="boxfix" style="background:red;color:white;margin:10px;">
  Hello World
</div>
1

您需要求解方程Y = A*X + B,其中Y是宽度,X100vw所以width: calc(A*100vw + B)

100vw = 1920px你需要width: 150px,所以我们有

150px = A*1920px + B

100vw = 375px你需要width: 110px,所以我们有

110px = A*375px + B

我们做一些数算,得到A = 0.026B = 100.3

Your code iswidth:calc(0.026*100vw + 100.3px)Alsowidth:calc(2.6vw + 100.3px)

你也可以把它写成

--a: ((150 - 110)/(1920 - 375));
--b: 150px - 1920px*var(--a);  /* OR 110px - 375px*var(--a) */
width: calc(var(--a)*100vw + var(--b));
body {
  font-size: 18px;
}
.box {
  width: calc(2.6vw + 100.3px);
  height: 100px;
}
.box-alt {
  --a: ((150 - 110)/(1920 - 375));
  --b: 150px - 1920px*var(--a);
  width: calc(var(--a)*100vw + var(--b));
  height: 100px;
}
<div class="box" style="background:red;color:white;margin:10px;">
</div>
<div class="box-alt" style="background:red;color:white;margin:10px;">
</div>

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(796)
RedisConnectionException:无法初始化足够的连接数
上一篇
如何在.NetCore3.1WebAPIController中获取声明
下一篇

相关推荐

  • css disabled属性禁用 HTML 元素

    CSS disabled属性是一个布尔值属性,用于指定元素是否处于禁用状态。当元素处于禁用状态时,它将不会接受任何用户输入,并且通常会以某种方式显示出来(例如,颜色变淡)。…

    2023-12-17 16:07:26
    0 23 80
  • css画一个圆:圆形的美丽

    使用css画一个圆,可以使用`border-radius`属性:上面的代码将会创建一个宽度和高度都是200px的圆形div。…

    2023-06-03 12:24:22
    0 46 75
  • css字间距怎么设置:标题

    示例示例CSS中字间距是指文本中每个字符之间的距离。可以使用CSS中的`letter-spacing`属性来设置字间距。代码示例:…

    2023-10-06 11:53:52
    0 65 52
  • css详细教程:CSS Tutorial

    CSS(Cascading Style Sheets)是用来控制网页的样式表。它可以让你改变文字的大小,颜色,字体,对齐方式,背景图片,布局等等。…

    2023-07-03 01:58:25
    0 94 13
  • html5和css3的新特性:Welcome to the Future of Web Design!

    示例示例HTML5新特性(新的语义元素…

    2023-05-20 12:24:46
    0 20 27
  • css 背景色 透明:Let Your True Colors Shine Through!

    示例示例CSS 背景色透明可以使用 rgba 函数来实现,其中 a 代表 alpha 通道,取值范围为 0-1,0 代表完全透明,代表完全不透明。示例代码:…

    2023-06-22 06:58:38
    0 36 70
  • html css引用:这是一个标题

    示例示例HTML CSS引用是指在HTML文件中通过标签引用CSS文件,使HTML文件能够使用CSS文件中的样式设置来控制其外观。代码示例:…

    2023-06-04 14:35:55
    0 60 35
  • css底部对齐:Welcome to Our Website

    示例示例css底部对齐指的是将多个元素的底部对齐,使用CSS实现底部对齐可以使用flex布局。代码示例:…

    2023-05-01 13:46:07
    0 70 14

发表评论

登录 后才能评论

评论列表(11条)