css盒模型总结

时间:2022-11-11 08:23:09

盒子模型有两种,分别是 IE 盒子模型(怪异盒模型)和标准 W3C 盒子模型。

先来看看我们熟悉的标准盒子模型:

  

css盒模型总结 

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

盒子总宽度/高度=width/height+padding+border+margin 

 

css盒模型总结

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

盒子总宽度/高度=width/height + margin = 内容区宽度/高度 + padding + border + margin;

 

怎么样才算是选择了“标准 W3C 盒子模型”呢?

很简单,就是在网页的顶部加上 DOCTYPE 声明。如果不加 DOCTYPE 声明,那么各个浏览器会根据自己的行为去理解网页,即 IE 浏览器会采用 IE 盒子模型去解释你的盒子,而 FF 会采用标准 W3C 盒子模型解释你的盒子,所以网页在不同的浏览器中就显示的不一样了。

反之,如果加上了 DOCTYPE 声明,那么所有浏览器都会采用标准 W3C 盒子模型去解释你的盒子,网页就能在各个浏览器中显示一致了。

 

在此基础上介绍一下css3中的box-sizing属性

box-sizing有两个值一个是content-box,另一个是border-box。

当设置为box-sizing:content-box时,将采用标准模式解析计算,也是默认模式;

当设置为box-sizing:border-box时,将采用怪异模式解析计算;

目前使用此属性需要前缀如下:

-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;