css中的盒模型box-sizing

css中设置盒模型的属性是box-sizing,其属性值最常用的是content-box以及border-box。其中属性值为content-box的元素,又称为标准盒模型,其中google即使用的是标准盒模型;IE使用的是怪异盒模型border-box。

一. content-box

当box-sizing值为content-box时,设置元素样式的width,height即为元素内容的宽度和高度;而元素的宽度(高度)则是元素内容的宽度(高度)+元素的上下padding(左右padding)+元素的上下border(左右border)+元素上下margin(左右margin);下面用图列举说明。

1. 在谷歌中渲染元素,其样式如下:

在谷歌浏览器中查看元素
从图中我们可以发现,为class为.box的div设置样式后,通过浏览器可以查看到:
元素内容的宽=width;
div元素的宽=width+左右padding+左右border+左右margin;
所以在google浏览器中不设置box-sizing时,其值默认为content-box。我们也可以通过测试发现这一原理:设置了box-sizing为content-box和不设置没有区别。
google默认使用content-box盒模型

2. 在IE中渲染

在IE中渲染,设置box-sizing为content-box,样式和google中一致。
IE下渲染设置box-sizing为content-box

二. border-box

若在IE中不设置box-sizing,则其默认值为border-box。若在google中设置了盒模型为border-box,则其渲染如下:
google中按照border-box渲染
从上图可以发现此时的盒模型计算方式发生了变化:
内容的高度=width-左右padding-左右border;
整个div元素的宽度=width+左右margin;

即css中设置的样式width根据盒模型分两种情形:
当为标准盒模型content-box时:width = 内容的宽度
当为怪异盒模型border-box时: width = 内容的宽度+左右padding+左右border。

在bootstrap中为了兼容浏览器,使用的是border-box。这样布局确保了 padding和border 不会影响元素最终的宽度计算。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值