CSS3 box-sizing
box-sizing
用来改变css盒模型,从而改变元素计算宽高的方式。
##语法##
box-sizing: content-box | padding-box | border-box | inherit
##值##
content-box
默认值,标准盒模型。width
和height
内容区的宽与高,不包括边框,内边距,外边距。
padding-box
width
和height
包括内容区和内边距,不包括边框,外边距。
border-box
width
和height
包括内容区、内边距和边框,不包括外边距。IE 怪异模式(Quirks mode)使用的盒模型。
border-box
和content-box
相比,明显宽高计算简单(再也不用费心计算padding多少才不会撑开布局),一般广泛应用于响应式布局中。
##Reset box-sizing##
*, *:before, *:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
一般都是通过以上代码来reset box-sizing。然而这样写有一个明显的问题:box-sizing
不能继承(若某一元素及其子元素的box-sizing
需要设置成其他的值,就必须为其所有的元素单独设置)。于是就有了下面这种替代方案。
html {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
*, *:before, *:after {
-webkit-box-sizing: inherit;
-moz-box-sizing: inherit;
box-sizing: inherit;
}