CSS3教程:box-sizing属性的理解

说到 IE 的 bug,一个臭名昭著的例子是它对于“盒模型”的错误解释:在 IE5.x 以及 Quirks 模式的 IE6/7 中,将 border 与 padding 都包含在 width 以内。这为前端工程师的工做平添了很多麻烦,几户每一个须要定义尺寸的 box 都要思量一下:是否触发了“盒模型 bug”?前端

同时,因为另外一撮浏览器对标准的听从,咱们在精肯定义一个在有限空间内显示的 box 时,也须要计算一下:留给它的空间只有那么大,刨去 border 和 padding,咱们该把它的 width 写成多少呢?web

这种状况在 CSS3 时代有了改善,得益于这个叫作 box-sizing 的属性,它具备“content-box”和“border-box”两个值。浏览器

定义 box-sizing: content-box; 时,浏览器对盒模型的解释听从咱们以前认识到的 W3C 标准;前端工程师

定义 box-sizing: border-box; 时,浏览器对盒模型的解释与 IE6 相同;布局

为何说这个属性“迟来”呢?IE 对于盒模型的解释当然不符合 W3C 的规范,可是也有它的好处:不管如何改动 border 与 padding 的值,都不会致使 box 总尺寸发生变化,也就不会打乱页面总体布局。而在 Firefox 等现代浏览器下,若是咱们要改变一下 padding 的值,就不得不从新计算 box 的 width。如今 IE6 寿终正寝,这个 CSS 属性未免有些姗姗来迟。ui

试用这个新属性,Firefox 请使用 -moz-box-sizing,Safari / WebKit 请使用 -webkit-box-sizing,Opera 直接用 box-sizing 便可。it

相关文章
相关标签/搜索