### **calc() 指定元素的长度** 说明: #### **什么是calc()?** calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能。用来指定元素的长度。比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值(动态值是使用表达式得到的值)。calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。 <br/> <br/> <br/> #### **calc()语法** calc()语法非常简单,就像我们小时候学加 (+)、减(-)、乘(*)、除(/)一样,使用数学表达式来表示: ~~~ .elm { width: calc(expression); } ~~~ 其中"expression"是一个表达式,用来计算长度的表达式。 <br/> <br/> <br/> #### **calc()的运算规则** calc()使用通用的数学运算规则,但是也提供更智能的功能: 1. 使用“+”、“-”、“*” 和 “/”四则运算; 2. 可以使用百分比、px、em、rem等单位; 3. 可以混合使用各种单位进行计算; 4. 表达式中有“+”和“-”时,其**前后必须要有空格**,如"widht: calc(12%+5em)"这种没有空格的写法是错误的; 5. 表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。 <br/> <br/> <br/> #### **浏览器的兼容性** 浏览器对calc()的兼容性还算不错,在IE9+、FF4.0+、Chrome19+、Safari6+都得到较好支持,同样需要在其前面加上各浏览器厂商的识别符. 在实际使用时,同样需要添加浏览器的前缀 ~~~ .elm { /*Firefox*/ -moz-calc(expression); /*chrome safari*/ -webkit-calc(expression); /*Standard */ calc(); } ~~~ <br/> <br/> <br/> ![](https://box.kancloud.cn/0e9c9ecbf12654ff334c8aee0745923e_727x761.png)