前言
之前在解决图片自适应问题时,同事提到了一个CSS3的计算属性calc()。原谅我,之前从来没有见过,今天通过学习之后,发现它的确非常方便使用。
1.什么是calc()?
calc()用于计算,比如border、margin、pading、font-size和width等属性设置动态值;
支持的运算单位: rem , em , % , px, vh(所占视口宽度的百分比), vw(所占视口高度的百分比)等 ;
使用“+”、“-”、“*” 和 “/”四则运算,计算优先级别和数学一致;
运算符两边必须有空格,否则会报错;
兼容性:
firefox 4.0+已经开支支持calc()功能,需要使用-moz-calc()私有属性;
chrome从19 dev版,开始支持私有的-webkit-calc()写法;
IE9支持原生写法,calc();
Safari6+较好支持,
Opera貌似还不支持~
2.calc()解决设置padding需要计算的问题
之前写css的时候,最不喜欢的就是给div设置padding值了,现在使用calc()快速写出运算表达式就可以了,不用自己计算出结果。比如:
1 | div{ |
3.简单快速解决布局问题
之前解决稍微复杂点的布局,总是利用各种定位来实现,这种体验并不好。现在使用calc()就可以快速解决布局。比如:
实现顶部、底部固定高度,中间高度自适应;
中间左边侧边栏固定宽度,中间右边主要内容部分宽度自适应。
使用定位实现的代码如下:
1 | <!DOCTYPE html> |
使用calc()实现的代码如下:
1 | <!DOCTYPE html> |
是不是简单很多!:haha:
4.实现flex布局
代码如下:
1 | <!DOCTYPE html> |