CSS3 box-sizing說明
CSS3的box-sizing提供兩種設定:content-box和border-box。這兩種的差別在於,border、padding、margin等的長寬值是否被包含在element的長寬裏面。直接用範例來解釋:
第一個DIV沒有套用box-sizing,第二個box-sizing值是content-box,第3個是border-box。這3個DIV的width是200 pixel,height是150 pixel;padding是10 pixel;border width是5 pixel;margin是10 pixel。
因此,由此範例可知,border-box將padding和border width含括在div的原始寬高內,但margin不受此限。而content-box則是預設的樣式。
.demo-normal { border: 5px solid; width: 200px; height: 150px; margin: 10px; padding: 10px; text-align: center; line-height: 150px; } .demo-content-box { box-sizing: content-box; -ms-box-sizing: content-box; -o-box-sizing: content-box; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; } .demo-border-box { box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; }
第一個DIV沒有套用box-sizing,第二個box-sizing值是content-box,第3個是border-box。這3個DIV的width是200 pixel,height是150 pixel;padding是10 pixel;border width是5 pixel;margin是10 pixel。
Normal DIV
content box
border box
從這範例來看,普通的DIV和套用content-box的DIV樣式一樣,套用border-box樣式的DIV比較小。可以用Firebug之類的工具查看這3個DIV的offsetWidth/offsetHeigth的值,會發現第1個和第2個的值是230/180 pixel,第3個是200/150 pixel。因此,由此範例可知,border-box將padding和border width含括在div的原始寬高內,但margin不受此限。而content-box則是預設的樣式。
留言