html box属性,CSS3 box-sizing 属性 | 菜鸟教程

content-box 和 border-box 描述的太抽象了,这样更不好理解。

直观通俗的解释是:

content-box:指定盒模型为 W3C 标准模型,设置 border、padding 会增加元素 width与 height 的尺寸,即 border 与 padding 相当于是元素的“殖民地”,元素的“土地”、尺寸会增加,为向外延伸。

border-box:指定盒模型为 IE模型(怪异模式),设置 border、padding 不会影响元素 width 与 height 的尺寸,即 border 与 padding 由元素已设空间转变。即空间还是这个空间,只是将部分空余的地方,转变成了其他空间用法而已,为内部转变。

设置border与padding与被影响属性值的关系公式:

W3C标准盒模型(conten-box值)【width/height被改变,扩展】

width = content + border + padding;

// 其中,width 为浏览器视窗呈现尺寸,content 为在CSS中设置的元素的 width;

IE怪异盒模型(border-box值)【content被改变,压缩】

content = width - border - padding;

// 其中,width 为在CSS中设置的元素的width;

具体可用浏览器调试看看,多观察观察就懂了。

总之:

1.W3C标准盒模型(content-box),border、padding 的设置会破坏元素宽高,必须得重新计算,非常麻烦(除了在IE浏览器,默认就是标准盒模型,所以可以用 box-sizing 来转换);

2.IE(怪异)盒模型(border-box),border、padding 的设置不会影响元素的宽高,这非常实用(且因为IE盒模型不是标准,所以才有 box-sizing 这个标准属性来设置,将它标准化)【IE6/5 是怪异模型,IE7开始是标准盒模型】

另外的小技巧:【行高的计算】

/* 默认, W3C标准盒模型、 box-sizing: content-box */

.box {

width: 200px;

height: 200px;

text-align: center;

border: 10px solid black;

padding: 15px;

}

/* 此时的行高:line-height = height = 200px;*/

/* 【因为行高即内容的高,而内容在这里即元素的高(边框和填充是扩展外部空间的)】 */

/* - - - - - - 分割线 - - - - - - */

/* IE怪异盒模型、box-sizing: border-box; */

.box {

width: 200px;

height: 200px;

text-align: center;

border: 10px solid black;

padding: 15px;

box-sizing: border-box;

}

/* 此时的行高:line-height = height - border*2 - padding*2 = 200px - 10px*2 - 15px*2 = 150px; */

/* 【因为此时,内容的其余空间被边框和填充占用,所以是元素的高减去边框和填充的空间,剩余即为内容空间】 */

Kai

Kai

790***286@qq.com10个月前 (08-11)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值