- 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; }
推荐手册