* {Box-sizing:border-box; }:要边框框还是不边框框所有元素?

时间:2012-05-23 15:11:31

标签: css css3 margin padding border-box

我将开始开发一个新网站,我正准备处理浏览器用于计算元素宽度和高度的不同方法(box model stuff)。不知何故,我想到了:如果我只是将box-sizing应用于网站中的所有元素,该怎么办?

我是那些认为box-sizing: border-box;是CSS中最好的命令之一的人之一,但有其局限性。但是,那些让我想知道是否应该将box-sizing应用于所有元素的限制:

* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }

当然,我的网站应该与尽可能多的浏览器兼容,box-sizing在我们考虑IE7时会产生一些问题。但是,有时候时间表太紧,以至于不用担心这个具体问题就可以获得额外的几分钟。

无论如何,你认为将box-sizing:border-box;应用于所有元素是一个好政策,还是我应该只对实际需要它的元素这样做?

1 个答案:

答案 0 :(得分:9)

我认为这是一个好主意。事实上,我将在我的网站上开始做同样的事情。

保罗谈到以同样的方式使用它

http://paulirish.com/2012/box-sizing-border-box-ftw/

  

我们在其中一个项目中一直使用* {box-sizing:border-box;}   (在生产中部署,平均每月访问量超过1百万)在工作中   现在大约一年了,它看起来似乎很好。该   该项目已在IE8& 9和最新的Firefox和Chrome   版本,我们没有问题。所有jQuery(+ UI)偏移量   计算和动画运行良好,即使在我们的任何元素中也是如此   显示为内联块。最近我们开始测试了   移动设备上的项目(iPhone,iPad和Android),我们没有   关于使用其中任何一个的盒子大小的问题,所以它似乎工作   很好。

我发现这有助于解决IE7中的问题

https://github.com/Schepp/box-sizing-polyfill