购物车
登陆 / 注册
微信扫码登陆

推荐手册

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;
}
网站导航
标签地图
学习路径
视频教程
开发软件
旗下子站
php中文网
phpstudy
技术文章
文档工具
关于我们
企业合作
人才招聘
联系我们
讲师招募
QQ交流群
QQ官方交流群
微信公众号
微信公众号