2023年6月21日发(作者:)

css3calc()⾃适应布局属性---浏览器版本兼容性的问题“⽆意中发现了⼀个巨⽜的⼈⼯智能教程,忍不住分享⼀下给⼤家。教程不仅是零基础,通俗易懂,⽽且⾮常风趣幽默,像看⼩说⼀样!觉得太⽜了,所以分享给⼤家。。”

我们想要实现页⾯⾃适应布局时,通常因为margin的存在,⽽⽐较⿇烦;有时候想要实现宽度⾃适应的输⼊框时,也因为padding或margin的存在,⽽相当繁琐,同时由于浏览器兼容性⽽导致最终效果不⼀致。css3新添加属性box-sizing,在⼀定程度上解决了上⾯的问题,⽽在今天的⽂章中我们来通过css3新增加的另外⼀个属性calc()来实现适应布局。

calc()是css3新添加属性,它可以让你使⽤⼀个算术表达式来表达长度值,这意味着可以⽤它来定义div的宽度,并设置margin、padding、border等。calc()的运算规则

使⽤”+”、”-”、”*”、”/”四则运算; 可以使⽤百分⽐、px、em、rem等单位; 可以混合使⽤各种单位进⾏计算。

实例1:定位在页⾯上的块元素,含有外边距

.banner { position:absolute; left: 40px; width: -moz-calc(100% - 80px); width: -webkit-calc(100% - 80px); width: calc(100% - 80px); border: solid black 1px; box-shadow: 1px 2px; background-color: yellow; padding: 6px; text-align: center;}

实例2:⾃动调整⼤⼩的表单,⼜适应容器

input { padding: 2px; display: block; width: -moz-calc(100% - 1em); width: -webkit-calc(100% - 1em); width: calc(100% - 1em);}

#formbox { width: -moz-calc(100%/6); width: -webkit-calc(100%/6); width: calc(100%/6); border: 1px solid black; padding: 4px;}

浏览器兼容性

firefox 4.0+已经开⽀⽀持calc()功能,需要使⽤-moz-calc()私有属性; chrome从19 dev版,开始⽀持私有的-webkit-calc()写法; IE9⽀持原⽣写法,calc(); Opera貌似还不⽀持~~

This is why you see examples like this:

width: calc(100%/3 - 2*1em - 2*1px);That’s actually the minimum number of characters you need to write that particular expression, so far as I can tell. Giventhe grammar requirements, you could legitimately rewrite that example like so: width: calc(100% / 3 - 2 * 1em - 2 * 1px);…but not like so:

width: calc(100%/3-2*1em-2*1px);

2023年6月21日发(作者:)

css3calc()⾃适应布局属性---浏览器版本兼容性的问题“⽆意中发现了⼀个巨⽜的⼈⼯智能教程,忍不住分享⼀下给⼤家。教程不仅是零基础,通俗易懂,⽽且⾮常风趣幽默,像看⼩说⼀样!觉得太⽜了,所以分享给⼤家。。”

我们想要实现页⾯⾃适应布局时,通常因为margin的存在,⽽⽐较⿇烦;有时候想要实现宽度⾃适应的输⼊框时,也因为padding或margin的存在,⽽相当繁琐,同时由于浏览器兼容性⽽导致最终效果不⼀致。css3新添加属性box-sizing,在⼀定程度上解决了上⾯的问题,⽽在今天的⽂章中我们来通过css3新增加的另外⼀个属性calc()来实现适应布局。

calc()是css3新添加属性,它可以让你使⽤⼀个算术表达式来表达长度值,这意味着可以⽤它来定义div的宽度,并设置margin、padding、border等。calc()的运算规则

使⽤”+”、”-”、”*”、”/”四则运算; 可以使⽤百分⽐、px、em、rem等单位; 可以混合使⽤各种单位进⾏计算。

实例1:定位在页⾯上的块元素,含有外边距

.banner { position:absolute; left: 40px; width: -moz-calc(100% - 80px); width: -webkit-calc(100% - 80px); width: calc(100% - 80px); border: solid black 1px; box-shadow: 1px 2px; background-color: yellow; padding: 6px; text-align: center;}

实例2:⾃动调整⼤⼩的表单,⼜适应容器

input { padding: 2px; display: block; width: -moz-calc(100% - 1em); width: -webkit-calc(100% - 1em); width: calc(100% - 1em);}

#formbox { width: -moz-calc(100%/6); width: -webkit-calc(100%/6); width: calc(100%/6); border: 1px solid black; padding: 4px;}

浏览器兼容性

firefox 4.0+已经开⽀⽀持calc()功能,需要使⽤-moz-calc()私有属性; chrome从19 dev版,开始⽀持私有的-webkit-calc()写法; IE9⽀持原⽣写法,calc(); Opera貌似还不⽀持~~

This is why you see examples like this:

width: calc(100%/3 - 2*1em - 2*1px);That’s actually the minimum number of characters you need to write that particular expression, so far as I can tell. Giventhe grammar requirements, you could legitimately rewrite that example like so: width: calc(100% / 3 - 2 * 1em - 2 * 1px);…but not like so:

width: calc(100%/3-2*1em-2*1px);