面阿里前端的时候被问到两张盒子模型。当时天真的以为不是只有一种 么。然后面试官说ie下的呢?然后我才知道。
简单总结一下:
W3C 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分
IE 盒子模型的范围也包括 margin、border、padding、content,和标准 W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 padding
如图所示:
应该选择哪中盒子模型呢?
当然是“标准 W3C 盒子模型”了。
怎么样才算是选择了“标准 W3C 盒子模型”呢?
很简单,就是在网页的顶部加上 DOCTYPE 声明。如果不加 DOCTYPE 声明,那么各个浏览器会根据自己的行为去理解网页,即 IE 浏览器会采用 IE 盒子模型去解释你的盒子,而 FF 会采用标准 W3C 盒子模型解释你的盒子,所以网页在不同的浏览器中就显示的不一样了。
反之,如果加上了 DOCTYPE 声明,那么所有浏览器都会采用标准 W3C 盒子模型去解释你的盒子,网页就能在各个浏览器中显示一致了。