CSS盒子模型

本文研究css的盒子模型

由于当代浏览器基本兼容了HTML5,所以我们不讨论老版本的IE的特殊盒子模型但是css3中加入了box-sizing元素
我们可以选择使用老IE的盒子模型border-box,活着w3c的盒子模型content-box
一下两个盒子模型的height,width都是100px
黑色是border
红色是背景

.box {
    display: inline-block;
    background: red;
    border: 10px solid black;
    height: 100px;
    width: 100px;
    padding: 5px 10px;
    margin: 10px 20px;
}

对盒子模型设置绝对宽高

box-sizing: border-box;

写段文字,看看我们的padding

box-sizing: content-box;

写段文字,看看我们的padding

实际上,之后当box样式设置了固定的宽高,box-sizing样式才表现出差异。如果我们去掉宽高,让他们根据内容自动调整宽高,看看是什么效果。

取消宽高设置,根据content自动调整

写段文字,看看我们的padding

box-sizing: content-box;

写段文字,看看我们的padding

可以看出,如果不设置宽高,盒子模型没有任何表现,但是通过浏览器的开发这工具查看发现,height和width是不一样的

所以差别就在于,这两种模型的计算height和width的方式不同

border-box(IE6) = content + padding + border
content-box(w3c) = content

bootstrap对box-sizing的全局设置就是border-size,个人感觉也比较符合我们的直观感觉吧