CSS3之calc()
作者:邹阳 | 发表于:2016-04-17 11:30:32
阅读量:(268) | 所属栏目:编程
calc() 对属性值进行四则运算 IE10+标准浏览器支持
需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px); 运算符减号前后有空格
任何长度值都可以使用calc()函数进行计算;
calc()函数支持 "+", "-", "*", "/" 运算;
calc()函数使用标准的数学运算优先级规则;
应用举例:实现滚动条出现页面不跳动
给居中定宽主体的父级(例如body等,如果没有,创建一个)添加一句css就可以实现页面自适应滚动条的居中不跳动:margin-left: calc(100vw - 100%); 或者 padding-left: calc(100vw - 100%);
解释:100vw相对于浏览器的window.innerWidth,是浏览器的内部宽度,注意,滚动条宽度也计算在内!而100%是可用宽度,是不含滚动条的宽度。
于是,calc(100vw - 100%)就是浏览器滚动条的宽度大小(如果有,如果没有滚动条则是0)!左右都有一个滚动条宽度(或都是0)被占用,主体内容就可以永远居中浏览器啦,从而没有任何跳动!
需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px); 运算符减号前后有空格
任何长度值都可以使用calc()函数进行计算;
calc()函数支持 "+", "-", "*", "/" 运算;
calc()函数使用标准的数学运算优先级规则;
应用举例:实现滚动条出现页面不跳动
给居中定宽主体的父级(例如body等,如果没有,创建一个)添加一句css就可以实现页面自适应滚动条的居中不跳动:margin-left: calc(100vw - 100%); 或者 padding-left: calc(100vw - 100%);
解释:100vw相对于浏览器的window.innerWidth,是浏览器的内部宽度,注意,滚动条宽度也计算在内!而100%是可用宽度,是不含滚动条的宽度。
于是,calc(100vw - 100%)就是浏览器滚动条的宽度大小(如果有,如果没有滚动条则是0)!左右都有一个滚动条宽度(或都是0)被占用,主体内容就可以永远居中浏览器啦,从而没有任何跳动!