本文討論的是塊級盒子(Block-level box)的盒子模型(Box Model)
一、W3C標准的盒子模型
二、IE盒子模型
三、兩種模型的區別
W3C標准盒子模型:
外盒模型
元素空間寬度 = content width + padding + border + margin的寬度
元素空間高度 = content width + padding + border + margin的高度
內盒模型
元素寬度 = content height + padding + border的寬度
元素高度 = content height + padding + border的高度
IE盒子模型:
外盒模型
元素空間寬度 = content width + margin的寬度
元素空間高度 = content height + margin的高度
內盒模型
元素寬度 = content width
元素高度 = content height
當IE6~8處於怪異模式下就會使用IE盒子模型,否則將使用W3C標准盒子模型。
四、CSS3規則——box-sizing
box-sizing有三個值,默認是content-box(表示元素使用W3C盒子模型),而border-box(表示元素使用IE盒子模型),inherit(從父元素上繼承)
瀏覽器支持:IE8開始支持
Element{ -moz-box-sizing: border-box; // FireFox3.5+ -o-box-sizing: border-box; // Opera9.6(Presto內核) -webkit-box-sizing: border-box; // Safari3.2+ -ms-box-sizing: border-box; // IE8 box-sizing: border-box; // IE9+,Chrome10.0+,Safari5.1+,Opera10.6 }
五、總結
盒子模型是CSS的基礎,雖然IE一直被大家詬病,但不代表IE盒子模型就比W3C標准盒子模型差,后面我們一起深入學習CSS3樣式規則box-sizing就明白了。
尊重原創,轉載請注明來自: http://www.cnblogs.com/fsjohnhuang/p/3967623.html ^_^肥仔John
六、參考
http://www.cnblogs.com/releaseyou/archive/2009/04/16/1437456.html
http://blog.csdn.net/ncode/article/details/7428746
http://www.w3cplus.com/content/css3-box-sizing
http://jorux.com/archives/property-4-if-you-love-css/