博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
标准W3C盒子模型和IE盒子模型CSS布局经典盒子模型
阅读量:7122 次
发布时间:2019-06-28

本文共 1137 字,大约阅读时间需要 3 分钟。

  hot3.png

盒子模型是css中一个重要的概念,理解了盒子模型才能更好的排版。其实盒子模型有两种,分别是 ie 盒子模型和标准 w3c 盒子模型。他们对盒子模型的解释各不相同,先来看看我们熟知的标准盒子模型:

  

  从上图可以看到标准 w3c 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。

  ie 盒子模型

 

 

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

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

  •  假如用标准 w3c 盒子模型解释,那么这个盒子需要占据的位置为:
         宽: 20*2+1*2+10*2+200=262px
         高: 20*2+1*2*10*2+50=112px
      盒子的实际大小为:
         宽: 1*2+10*2+200=222px
         高: 1*2+10*2+50=72px
  • 假如用ie 盒子模型,那么这个盒子需要占据的位置为:
         宽: 20*2+200=240px
         高: 20*2+50=70px
      盒子的实际大小为:
         宽: 200px
         高: 50px

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

  再用 jquery 做的例子来证实一下。

  代码1:

 你用的盒子模型是?  

上面的代码没有加上 doctype 声明,在 ie 浏览器中显示“ie盒子模型”,在 ff 浏览器中显示“标准 w3c 盒子模型”。

  代码2:

 你用的盒子模型是标准w3c盒子模型  

代码2 与代码1 唯一的不同的就是顶部加了 doctype 声明。在所有浏览器中都显示“标准 w3c 盒子模型”。

  所以为了让网页能兼容各个浏览器,让我们用标准 w3c 盒子模型。

转载于:https://my.oschina.net/i33/blog/87263

你可能感兴趣的文章
前端插件集合
查看>>
jvm中的动态分派
查看>>
在 Laravel 5 中集成七牛云存储实现云存储功能
查看>>
UVa 11078 - Open Credit System
查看>>
stark组件
查看>>
标记区域 Region
查看>>
使用VS2010编译64的Geos库
查看>>
[Android疑难杂症]动态设置TextView的width不起作用
查看>>
HDU-2570-迷瘴
查看>>
python独立环境——virtualenv
查看>>
微信支付 支付成功后不跳转 ecshop微信支付 如下操作即可
查看>>
二十七、单张图片上传预览
查看>>
SilverLight 条码 扫描枪 MVVM(转载)
查看>>
Rotate Image
查看>>
selenium+python自动化测试系列(二):AutoIt工具实现本地文件上传
查看>>
大数据Python学习大纲
查看>>
jmeter 使用命令行执行
查看>>
高效程序员的45个习惯の欲速则不达
查看>>
原生JS封装运动框架。
查看>>
HT for Web 中Painter的介绍及用法
查看>>