一、标准盒模型(w3c 盒子模型)和 怪异盒模型(IE 盒子模型)

图:
栖木
栖木

1-1标准盒模型(w3c 盒子模型)和 怪异盒模型(IE 盒子模型):

共同点:
都分为margin、border、padding、content。

区别:
w3c 盒子模型 width和height圈住的部分就是content,不包含 border 和 padding。
IE 盒子模型 width和height圈住的部分除了content 还包含 border 和 padding。
正是由于有这个区别,浏览器解读时会造成困扰。

二、怪异模式

为了正确解读这两个标准,浏览器出现了两个模式。
一种我们称为“标准模式”(支持w3c盒子)一种我们称之为”怪异模式“(支持IE盒子)
部分浏览器在支持W3C标准的同时也支持IE标准。

2-1两种模式相互识别

1.IE某些版本不对doctype进行定义时,会触发怪异模式。了解更多
https://hsivonen.fi/doctype/

2.解决办法。在代码顶部加如下的 doctype 声明,

1
<!doctype html public “-//w3c//dtd xhtml 1.0 transitional//en” “http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

使页面以W3C盒子模型渲染。

3.CSS3的box-sizing可以定义识别怪异模式

box-sizing语法:

1
box-sizingcontent-box || border-box || inherit;

当设置为box-sizing:content-box时,将采用标准模式解析计算,也是默认模式;
当设置为box-sizing:border-box时,将采用怪异模式解析计算;
当设置为box-sizing:inherit 规定应从父元素继承 box-sizing 属性的值。

1
2
-webkit-box-sizing: content-box; //safari
-moz-box-sizing: content-box; //firefox

三、参考

http://www.w3school.com.cn/css/css_boxmodel.asp
http://blog.csdn.net/dong_pt/article/details/51281372
http://blog.csdn.net/quguang65265/article/details/50970601