CSS的两种盒模型

CSS的两种盒模型

关于css的盒子模型相信学习前端的同学都有所耳闻,因为它太基础太重要了。


提起盒子模型,大家可能会想到content,padding,border,margin这些词汇,还有也许还会想起盒子模型有两种,比如ie的盒子模型与w3c的盒子模型,那么我们怎么来区分呢?

先来看看w3c的盒子模型:


W3C 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。



再看看ie的:


IE 盒子模型的范围也包括 margin、border、padding、content,看起来好像没什么不一样,如果仔细观察就可以发现其实ie的盒子模型的width与height是在border外侧来计算的。


我们现在来实际试一个实际的例子看看它们两个的区别:

我们设置一个盒子成这样:

margin:10px,border:20px,padding:30px;width:400px;height:500px;

那么对于w3c而言其占据的实际高度为:10*2+20*2+30*2+500=620px;

实际占据的宽度为:10*2+20*2+30*2+400=520px;

盒子实际的高度为:20*2+30*2+500=600px;

盒子实际的度为:20*2+30*2+400=500px;


对ie而言呢:

其占据的实际高度为:10*2+500=520px;

实际占据的宽度为:10*2+400=420px;

盒子实际的高度为:500px;

盒子实际的度为:400px;




其实在css3出来之后我们又有了“新的盒子模型”了,而且也是分为两种(注:box-sizing的属性值好像还有padding-box但是我查 css参考手册却没有查到,先不管吧 ):

box-sizing:content-box | border-box,其中 content-box是默认的值。

理论上说,content-box和border-box的主要区别是二者的盒子的宽度是否包含元素的边框和内边距。这样说来上面的 ie盒子模型不就 刚好与border-box对上号了吗。很多人觉得border-box才是我们真正需要的盒子模型,比如boostrap就使用了border-box,看来微软设计的盒子模型还是有 其高明之处的。

















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值