CSS盒子模型(对内外边距问题着重讲解)
CSS盒子模型
盒子是网页布局的关键点,,它帮助我们将网页中的文字,图片按照美工给我们的效果图排列得整齐有序。
网页布局得本质:
- 首先利用css设置盒子大小、位置
- 最后将网页元素放入盒子里面
1. 盒子模型的组成部分
盒子模型有元素的内容、边框(border)、内边距(padding)、和外边距(margin)组成。
- 盒子里面的文字和图片等元素是内容
- 盒子的厚度成为盒子的边框
- 盒子内容与边框的距离是内边距(类似单元格的 cellpadding)
- 盒子与盒子之间的距离是外边距(类似单元格的 cellspacing)

1.1 边框(border)
边框的综合设置如下:
border : border-width || border-style || border-color
| 属性 | 作用 |
|---|---|
| border-width | 定义边框粗细,单位是px |
| border-style | 边框的样式(1.none:没有边框即忽略所有边框的宽度;2.solid:边框为单实线(最为常用的) ;3.dashed:边框为虚线;4.dotted:边框为点线) |
| border-color | 边框颜色 |
注意:
1.通过表格的cellspacing=“0”,将单元格与单元格之间的距离设置为0,但是两个单元格之间的边框会出现重叠,从而使边框变粗。
border-collapse:collapse;表示相邻边框合并在一起,不会重叠加粗。
1.2 内边距(padding)
padding属性用于设置内边距。 是指边框与内容之间的距离。
当我们给盒子指定padding值之后, 发生了2件事情:
- 内容和边框 有了距离,添加了内边距。
- 盒子会变大了。
| 值的个数 | 表达意思 |
|---|---|
| 1个值 | padding:上下左右内边距; |
| 2个值 | padding: 上下内边距 左右内边距 ; |
| 3个值 | padding:上内边距 左右内边距 下内边距; |
| 4个值 | padding: 上内边距 右内边距 下内边距 左内边距 ; |
注意:
1.内盒尺寸计算
盒子的实际的大小 = 内容的宽度和高度 + 内边距 + 边框
2.内边距产生的问题
会撑大原来的盒子,通过设置了宽高的盒子,减去相应的内边距的值,维持了盒子原来的大小。
3.padding不影响盒子大小的使用方法
如果没有给一个盒子指定宽度, 此时,如果给这个盒子指定padding, 则不会撑开盒子。
1.3 外边距 (margin)
margin属性用于设置外边距。 margin就是控制盒子和盒子之间的距离。
margin值的简写 (复合写法)代表意思 跟 padding 完全相同。
2. 块级盒子水中居中
可以让一个块级盒子实现水平居中必须:
- 盒子必须指定了宽度(width)
- 给左右的外边距都设置为auto
常见写法:
margin-left: auto; margin-right: auto;
margin: auto;
margin: 0 auto;
2.1文字居中和盒子居中区别
- 盒子内的文字水平居中是 text-align: center, 而且还可以让 行内元素和行内块居中对齐
- 块级盒子水平居中 左右margin 改为 auto
2.2插入图片和背景图片区别
- 插入图片 我们用的最多 比如产品展示类 移动位置只能靠盒模型 padding margin
- 背景图片我们一般用于小图标背景 或者 超大背景图片 背景图片 只能通过 background-position
2.3清除元素的默认内外边距(重要)
为了更灵活方便地控制网页中的元素,制作网页时,我们需要将元素的默认内外边距清除
* {
padding:0; /* 清除内边距 */
margin:0; /* 清除外边距 */
}
3. 外边距合并
使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。
注意:这里只是对于垂直的方向有外边距合并,对于左右的方向是没有外边距合并。
3.1相邻块元素垂直外边距的合并
当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则取两个值中的较大者。 这种现象被称为相邻块元素垂直外边距的合并(也称外边距塌陷)。

解决方案:尽量给只给一个盒子添加margin值。
3.2嵌套块元素垂直外边距的合并(塌陷)
对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,父元素的上外边距会与子元素的上外边距发生合并,合并后的外边距为两者中的较大者。

解决方案:
1.可以为父元素定义上边框。
2.可以为父元素定义上内边距
3.可以为父元素添加overflow:hidden。
4. 盒子模型布局稳定性
根据稳定性来分,建议如下:
按照 优先使用 宽度 (width) 其次 使用内边距(padding) 再次 外边距(margin)。
width > padding > margin
原因:
- margin 会有外边距合并问题
- padding 会影响盒子大小, 需要进行加减计算(麻烦) 其次使用。
- width 没有问题(嗨皮)我们经常使用宽度剩余法 高度剩余法来做。
本文深入讲解CSS盒子模型的组成部分,包括边框、内边距、外边距的使用技巧,探讨块级盒子的水平居中方法,解析内外边距清除的重要性,并讨论外边距合并的问题及其解决方案。
&spm=1001.2101.3001.5002&articleId=100566764&d=1&t=3&u=132613a4cf4549c38240e1d85d814b41)
3248

被折叠的 条评论
为什么被折叠?



