image.png

两种方式的区别

image.png
也就是说,原本的content-box是以保证content内容大小不变为前提的盒子模型,也是正常的盒子模型,
border-box则采取了以牺牲content内容大小为前提,来保证整个大盒子的宽高不变,也就是说随着padding和border的增大,content的范围会变小,所以也被称为怪异盒模型。

图解

前提,padding: 10px 宽高都为200px
原生的content-box
image.png 可以看到中间蓝色的content部分 大小为我们设置的 width 和 height

新的border-box
image.png
可以看到 中间content的部分被自动减去了padding的长度,我们设置的宽高为整个盒子的大小而不再是只属于 content 的。

使用场景

这种盒子模型是非常好的,因为我们以前为了让盒子不变还要煞费苦心去调试大小,现在我们就用这个border-box就好了,
所以可以在CSS初始化中,将盒子模型直接设置为该属性,以下以米哈游的官网预设为例:

  1. *,
  2. *::before,
  3. *::after {
  4. -webkit-box-sizing: border-box;
  5. box-sizing: border-box;
  6. margin: 0;
  7. padding: 0
  8. }

可以看到米哈游官网已经预设了border-box,可见其重要性,其中-webkit-box-sizing是为了兼容谷歌和Safari浏览器。