css单位计算方法,CSS中的calc()计算和vw/vh长度单位

calc()

CSS中除了使用具体的值,还可以使用calc()方法来执行一些计算。

语法

/* property: calc(expression) */

width: calc(100% - 60px);

calc()函数用一个表达式作为参数,用表达式的结果作为值。

表达式的运算对象可以使用任意长度值,并且可以混用(px/em),也可以通过小括号()来调整计算顺序。

表达式中可以使用+|-|*|/操作符来操作运算对象来得到结果。

请注意,+和-运算符的两边必须要有空白字符,否则为无效值,虽然*和/运算符不要求,但是为了统一,最好也加上空格。

calc()支持变量嵌套,语法如下:

.var {

--var1: 80px;

--var2: calc(var(--var1) / 2);

--var3: calc(var(--var2) / 2);

width: var(--var3); /* 80px/2/2 = 20px */

}

用途

主要用于计算不确定值,比如要定义一个父元素size不确定的,margin为2em宽度为100%的子元素。如果用以下方式定义,则会发生溢出的情况

.block{

width: 100%;

margin: 2em;

}

通过calc()就可以很方便的定义出来

.block{

width: calc(100% - 4em);

margin: 2em;

}

vw/vh长度单位

vm/vh是CSS的相对长度单位。

与百分比%很类似都是相对长度单位,两者的主要区别是,vw/vh是相对于浏览器可视窗口viewport的,而%是相对于父元素大小的,如果父元素大小不固定,设置%是没有意义的,但是浏览器可视窗口大小是一直可用的。

什么是viewport

视口(viewport)代表当前可见的计算机图形区域。在Web浏览器术语中,通常与浏览器窗口相同,但不包括浏览器的 UI, 菜单栏等——即指你正在浏览的文档的那一部分。

值得注意的是页面中的一些导航菜单也包括在其中。Viewport外的区域,可能需要滚动到其所在的区域才会出现在屏幕上。

概括地说,viewport基本上是当前文档的可见部分/浏览器可视区域。

相对窗口Size的长度单位

有4个相对于窗口Size的长度单位:

单位

相对于

vw

视窗宽度的1%

vh

视窗高度的1%

vmin

视窗较小尺寸的1%(vw/vh较小的值)

vmax

视图大尺寸的1%(vw/vh较大的值)

结合使用

之所以把calc和vw/vh放在一起介绍,主要原因就是两者经常结合起来一起使用。

比如要定义一个左测宽度固定的横向两列布局,就可以用以下代码实现(当然这个需求有n多实现方式,比如float/flex等)

body {

margin: 0;

padding: 3px;

overflow: hidden;

}

.left {

width: 200px;

height: calc(100vh - 6px);

display: inline-block;

}

.right {

width: calc(100vw - 206px);

height: calc(100vh - 6px);

display: inline-block;

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值