(转)CSS3全局实现所有元素的内边距和边框不增加

全局设置 border-box 很好,首先它符合直觉,其次它可以省去一次又一次的加加减减

它还有一个关键作用——让有边框的盒子正常使用百分比宽度。但是使用了 border-box 可能会与一些依赖默认 box-sizing 的库冲突

不过这种问题大多数时候可以通过把交由这些库处理的块的 box-sizing 设置回 content-box 来解决。

推荐写法是
1 html {
2   box-sizing: border-box;
3 }
4 *, *:before, *:after {
5   box-sizing: inherit;
6 }
选择器 * 无法覆盖到伪元素,所以需要给 :before 和 :after 分别设置。而通过继承的方式应用到所有元素,需要时可以方便的设置某个元素及其后代元素的 box-sizing 回 content-box。

外文资料链接:css-tricks

转载地址:box-sizing: border-box 把所有元素的内边距和边框不再会增加它的宽度,这样写好吗?

posted @ 2017-03-19 11:01  rookieM  阅读(1667)  评论(0编辑  收藏  举报