
- 0133技术站
- 联系QQ:18840023
- QQ交流群
- 微信公众号

CSS3 框大小
CSS3 box-sizing 属性可以设置 width 和 height 属性中包含了 padding(内边距) 和 border(边框)
浏览器支持
表格中的数字表示支持该属性的第一个浏览器的版本号
紧跟在数字后面的 -webkit- 或 -moz- 为指定浏览器的前缀
| 属性 | ![]() | ![]() | ![]() | ![]() | ![]() |
|---|---|---|---|---|---|
| box-sizing | 8.0 | 10.0 4.0 -webkit- | 29.0 2.0 -moz- | 5.1 3.1 -webkit- | 9.5 |
不使用 CSS3 box-sizing 属性
默认情况下,元素的宽度与高度计算方式如下:
width(宽) + padding(内边距) + border(边框) = 元素实际宽度
height(高) + padding(内边距) + border(边框) = 元素实际高度
这就意味着我们在设置元素的 width或height 时,元素真实展示的高度与宽度会更大(因为元素的边框与内边距也会计算在 width和height 中)
<style>
*{
text-align: center;
line-height: 50px;
font-size: 12px;
}
.div1 {
width: 100px;
height: 50px;
border: 1px solid blue;
}
.div2 {
width: 100px;
height: 50px;
padding: 100px;
border: 1px solid pink;
}
</style>
</head>
<body>
<div class="div1">未设置内边距的框</div>
<br>
<div class="div2">设置内边距的框</div>点击 "运行实例" 按钮查看在线实例
效果图:

虽然以上两个<div> 元素的宽度与高度设置一样,但是真实展示的大小不一致,因为在div2里指定了内边距
使用 CSS3 box-sizing 属性
CSS3 box-sizing 属性在一个元素的 width 和 height 中包含 padding(内边距) 和 border(边框)。
如果在元素上设置了 box-sizing: border-box; 则 padding(内边距) 和 border(边框) 也包含在 width 和 height 中:
.div1 {
width: 200px;
height:100px;
border: 1px solid blue;
box-sizing: border-box;
}
.div2 {
width: 200px;
height: 100px;
padding: 50px;
border: 1px solid pink;
box-sizing: border-box;
}
</style>
</head>
<body>
<div class="div1"></div>
<br>
<div class="div2"></div>点击 "运行实例" 按钮查看在线实例
注意:width与height的值要大于padding值的两倍

从结果上看 box-sizing: border-box; 效果更好,这也正是很多开发人员所需要的效果
很多浏览器已经支持 box-sizing: border-box; (但是并非所有,这就是为什么 input 和 text 元素设置了 width: 100%; 后的宽度却不一样)。
所有元素使用 box-sizing 是比较推荐的
* {
box-sizing: border-box;
}
推荐手册