盒模型(IE,W3C)

W3C盒模型

IE盒模型

从上图可以看到 ie 盒子模型的范围也包括 margin、border、padding、content,和标准 w3c 盒子模型不同的是:

ie 盒子模型的 content 部分包含了 border 和 pading。

两者的不同体现在width和height上

扫描二维码关注公众号,回复: 10922508 查看本文章

IE:width=content+padding+border 

W3C:  width=content

   例:一个盒子的 margin 为 20px,border 为 1px,padding 为 10px,content 的宽为 200px、高为 50px,

  • 假如用IE模型解释,那么这个盒子
  1. 占据的位置:width: 200+40=240, height: 50+40 = 90
  • 假如用w3c盒子模型,那么这个盒子
  1. 占据的位置:width: 200+20+2+40=262, height: 50+20+2+40=112

  那应该选择哪中盒子模型呢?当然是“标准 w3c 盒子模型”了。怎么样才算是选择了“标准 w3c 盒子模型”呢?

很简单,就是在网页的顶部加上 doctype 声明。假如不加 doctype 声明,那么各个浏览器会根据自己的行为去理解网页,即 ie 浏览器会采用 ie 盒子模型去解释你的盒子,而 ff 会采用标准 w3c 盒子模型解释你的盒子,所以网页在不同的浏览器中就显示的不一样了。反之,假如加上了 doctype 声明,那么所有浏览器都会采用标准 w3c 盒子模型去解释你的盒子,网页就能在各个浏览器中显示一致了

兼容性处理

box-sizing 属性允许你以某种方式定义某些元素,以适应指定区域。规定容器元素的最终尺寸计算方式

box-sizing: content-box|border-box|inherit:

content-box: 默认值, 宽度=content+padding+border,设置div的width=100, 就是content的宽度是100,实际宽度,会得到一个比预期大了padding和border的盒子 ==》W3C

border-box: 宽度=content, 设置div的width=100,得到最终宽度为 100的盒子,padding和border都会在这个盒子里减去,实际content为width-padding-border ==> IE

发布了102 篇原创文章 · 获赞 202 · 访问量 40万+

猜你喜欢

转载自blog.csdn.net/zr15829039341/article/details/104571507
w3c