# CSS3 新发现
# 1. vh / vw
单位 | 说明 |
---|---|
vh | 相对于视窗的高度, 视窗被均分为 100 单位的 vh |
vw | 相对于视窗的宽度, 视窗被均分为 100 单位的 vw |
视区所指为浏览器内部的可视区域大小, 即 window.innerWidth
和 window.innerHeight
大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。
height:100%
和 height:100vh
的区别:
逻辑上,1vh = 1% * 视区高度。但是元素没有内容的时候,如果是 height:100%
,该元素不会被撑开,此时高度为 0; 但是如果是 height:100vh
,该元素会被撑开,和屏幕高度保持一致!
# 2. calc
calc 是英文单词 Calculate(计算)的缩写,是 CSS3 的一个新增的功能,用来指定元素的长度。比如说,你可以使用 calc()
给元素的 border 、margin 、pading 、font-size 和 width 等属性设置动态值。
为何说是动态值呢?因为我们使用的表达式来得到的值。不过 calc()
最大的好处就是用在流体布局上,可以通过 calc()
计算得到元素的宽度。
calc 是 css3 提供的一个在 css 文件中计算值的函数:
- 用于动态计算长度值。
- 任何长度值都可以使用
calc()
函数进行计算; - calc 函数支持
+
,-
,*
,/
运算; - calc 函数使用标准的数学运算优先级规则;
- calc(100vh - 10px) 表示整个浏览器窗口高度减去 10px 的大小 _ calc(100vw - 10px) 表示整个浏览器窗口宽度减去 10px 的大小
注意
运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);
一般用来设置流式布局宽高,当然,你可以使用 calc() 给元素的 border 、margin 、pading 、font-size 和 width 等属性设置动态值。
兼容性方面,Chrome 从 26.0 开始全面支持,Firefox 从 16.0 开始全面支持,IE 从 9.0 开始全面支持。