标准(w3c)盒模型
width = content (元素宽度 = 内容宽度)
以 content 为边界
内容宽度不变,向外扩展
.contentBox {
background-color: aquamarine;
width: 100px;
height: 100px;
box-sizing: content-box;
border: 10px solid blue;
padding: 20px;
margin: 20px;
}
所以.contentBox 元素的宽度为 100px
怪异(IE)盒模型
width = content + padding + border (元素宽度 = 内容宽度 + 内边距宽度 + 边框宽)
以 border 为边界
设置 padding 和 border 会挤压内容
.borderBox {
background-color: yellowgreen;
width: 100px;
height: 100px;
box-sizing: border-box;
border: 10px solid blue;
padding: 20px;
margin: 20px;
}
所以.borderBox 元素的宽度为 100px + 20px + 10px = 130px
border-box 应用
在 input 元素中经常需要设置 padding,但设置之后 input 就会在垂直方向上与 input:submit 按钮无法对齐,方法就是设置输入框 border-box,这样排版时,padding 就会计算到元素实际宽度中。