CSS 盒子模型
在 CSS 中,术语“盒子模型”用于谈论设计和布局。
CSS 盒子模型本质上是一个包裹每个 HTML 元素的盒子。它由边距、边框、填充和实际内容组成。下图说明了盒子模型:

为了更好地理解这个概念,让我们举一个例子。创建一个 index.html 文档
1  | 
  | 
这是一个经典的 html 文档,带有指向外部 css (main.css) 的链接和三个简单的 div
在 main.css 中插入以下行:
1  | div {  | 
这个 css 为我们的 div 创建了一个样式

边距、边框、填充
现在让我们回顾一下这 3 个属性,并了解它们如何影响 CSS 框。
填充
填充是内容周围的空间。在我们的示例中,填充是 div 文本和 div 边框之间的空间。让我们将填充更改为零,看看会有什么附加内容。
1  | div {  | 

将填充设为零可消除边框和内容之间的空间。
边框
边框围绕填充和内容。边框可以是可见的,也可以是不可见的,并且可以具有不同的样式和高度。
边距
边距是边框外的空间。在我们的示例中,div 之间没有空间。让我们改变这一点。
1  | div {  | 
将边距设置为 10px;在每个 div 周围设置 10px 的空间:

块与内联
CSS 框模型可以有两种显示样式:块或内联块。
块级元素始终从新行开始并占据整个可用宽度(尽可能向左和向右延伸)。
块元素示例:div、h1 和 form
内联
内联元素不从新行开始,只占用必要的宽度。
内联元素示例:span、a 和 img
让我们回顾一下我们之前的例子。如前所述,div 默认具有块显示样式。让我们将其更改为内联块样式。
1  | div {  | 

内联与内联块
与 display: inline 相比,主要区别在于内联块允许设置元素的宽度和高度。此外,使用 display: inline 时,顶部和底部边距和填充不受尊重,而使用 display: inline-block 时则受尊重。
让我们将示例更改为 display: inline-block
1  | div {  | 

与内联相比,宽度、顶部和底部边距和填充均受尊重。
边距和填充
到目前为止,我们使用一个边距和填充数字值,但很高兴知道我们可以单独应用边距和填充。
可用属性为:
- margin-top | padding-top
 - margin-right | padding-right
 - margin-bottom | padding-bottom
 - margin-left | padding-left
 
1  | div {  | 
还可以使用简写属性设置边距和填充:
1  | div {  | 
这相当于:
1  | div {  | 
边框
CSS 边框属性允许你指定元素边框的宽度、样式和颜色。
border-style 属性指定要显示的边框类型。
border-style 的一些示例如下:
- solid 实线
 - dotted 点线
 - dashed 虚线
 - double 双线
 - none 无
 
border:宽度 样式 颜色;
1  | div {  | 
我们还可以使用 border-radius 来设置圆形边框:
1  | div {  | 

高度和宽度
CSS 高度和宽度属性用于设置元素的高度和宽度
高度和宽度属性不包括填充、边框或边距。它设置元素填充、边框和边距内区域的高度/宽度。
1  | div {  | 
因此在该示例中,元素的高度为 100px,宽度为包含块的 50%。

相关文章: