442 字
2 分钟
CSS盒子模型

css盒子模型#

先看例子:

<style>
div {
width: 300px;
height: 400px;
border: 5px solid #ccc;
background-color: aqua;
padding: 20px;
}
</style>
<div></div>

如图所示:设置一个宽300px,高400px的div,border为5px,padding值设为20px.

这里我们会发现明明我们设置了300*400长宽比,为什么呈现出来的是一个350*450的盒子呢?

我们可以看一下这个图:

在这张图中,我们发现我们设置的300*400出现在了最里面的那个蓝框中,与此同时我们可以发现在这个盒模型中除了我们设置的内容(content),还有margin(外边距)、border(边框)、padding(内边框)

margin(外边距) - 清除边框外的区域,外边距是透明的。 border(边框) - 围绕在内边距和内容外的边框。 padding(内边距) - 清除内容周围的区域,内边距是透明的。 content(内容) - 盒子的内容,显示文本和图像。

为了正确设置元素在所有浏览器中的宽度和高度,你需要知道盒模型是如何工作的。

而我们在测试效果图看到的350*450盒子,

350(width) = 300(content) + 20(padding)* 2 + 5(border)* 2 450(height)= 400 (content)+ 20(padding)* 2 + 5(border)* 2

css的两种盒子模型#

css的两种盒子模型不同

W3C的标准盒模型#

在标准的盒子模型中,width指content部分的宽度

IE的盒模型#

在IE盒子模型中,width表示content+padding+border这三个部分的宽度

我们可以看出我们上面的使用的默认正是W3C标准盒模型

盒子模型类型的切换#

如果想要切换盒模型也很简单,这里需要借助css3的box-sizing属性

  • box-sizing: content-box 是W3C盒子模型
  • box-sizing: border-box 是IE盒子模型

box-sizing的默认属性是content-box

CSS盒子模型
https://nollieleo.github.io/posts/css盒子模型/
作者
翁先森
发布于
2020-03-25
许可协议
CC BY-NC-SA 4.0