# CSS3 新发现

# 1. vh / vw

单位 说明
vh 相对于视窗的高度, 视窗被均分为 100 单位的 vh
vw 相对于视窗的宽度, 视窗被均分为 100 单位的 vw

视区所指为浏览器内部的可视区域大小, 即 window.innerWidthwindow.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 开始全面支持。