CSS盒子模型的外边距(margin)是控制元素之间间距的重要属性。以下是与CSS盒子模型外边距相关的所有重要知识点:
一、外边距的概念
外边距是指盒子边框与其他元素边框之间的空白区域。它用于控制元素之间的距离,从而调整页面布局。
二、外边距的设置
在CSS中,可以使用margin属性或margin-top、margin-right、margin-bottom和margin-left属性来设置外边距。
属性 | 作用 |
---|---|
margin-left | 左外边距 |
margin-right | 右外边距 |
margin-top | 上外边距 |
margin-bottom | 下外边距 |
margin属性:
是一个简写属性,可以设置一个声明中的所有外边距属性。
可以接受一个或多个值,用于分别设置上、右、下和左边距的大小。
如果只指定一个值,则会应用于所有四个边距。
如果指定两个值,则第一个值应用于上下边距,第二个值应用于左右边距。
如果指定三个值,则第一个值应用于上边距,第二个值应用于左右边距,第三个值应用于下边距。
如果指定四个值,则分别应用于上、右、下和左边距。
margin-top、margin-right、margin-bottom和margin-left属性:
分别用于设置上、右、下和左边距的大小。
可以接受一个长度值(如像素、百分比等)或关键字(如auto、inherit等)。
三、外边距的取值
1.长度值:可以使用像素(px)、点(pt)、em等单位来定义外边距的大小。这些单位是固定的,可以精确地控制外边距的宽度。
2.百分比值:外边距也可以使用百分比值来设置。百分比值是相对于包含块(通常是父元素)的宽度计算的。例如,如果将一个元素的外边距设置为10%,则外边距的大小将是包含块宽度的10%。
3.自动值(auto):在某些情况下,可以使用auto值来让浏览器自动计算外边距的大小。例如,当使用margin: 0 auto;时,可以将块级元素水平居中。
四、外边距对盒子模型尺寸的影响
外边距不会增加元素本身的尺寸,但会影响元素与其他元素之间的距离。如果增加外边距,元素之间的距离会相应增大,而元素本身的宽度和高度不会发生变化。
五、外边距的合并(折叠)
1.相邻块级元素垂直外边距的合并:当上下相邻的两个块级元素相遇时,如果上面的元素有下外边距(margin-bottom),下面的元素有上外边距(margin-top),则它们之间的垂直间距不是这两个外边距之和,而是取这两个值中的较大者。这种现象被称为相邻块级元素垂直外边距的合并。
解决方案:尽量给只给一个盒子添加margin值
2.嵌套块级元素垂直外边距的塌陷:对于两个嵌套关系(父子关系)的块元素,如果父元素有上外边距同时子元素也有上外边距,此时父元素会塌陷(即采用)较大的外边距值。
解决方案:
- 可以为父元素定义上边框。
- 可以为父元素定义上内边距
- 可以为父元素添加overflow:hidden。
六、文字居中和盒子居中区别
- 盒子内的文字水平居中是 text-align: center, 而且还可以让 行内元素和行内块居中对齐
- 块级盒子水平居中 左右margin 改为 auto
text-align: center; /* 文字 行内元素 行内块元素水平居中 */
margin: 10px auto; /* 块级盒子水平居中 左右margin 改为 auto 就阔以了 上下margin都
可以 */
七、插入图片和背景图片区别
- 插入图片 我们用的最多 比如产品展示类 移动位置只能靠盒模型 padding margin
- 背景图片我们一般用于小图标背景 或者 超大背景图片 背景图片 只能通过 background-position
img {
width: 200px;/* 插入图片更改大小 width 和 height */
height: 210px;
margin-top: 30px; /* 插入图片更改位置 可以用margin 或padding 盒模型 */
margin-left: 50px; /* 插入当图片也是一个盒子 */
}
div {
width: 400px;
height: 400px;
border: 1px solid purple;
background: #fff url(images/sun.jpg) no-repeat;
background-position: 30px 50px; /* 背景图片更改位置 我用 backgroundposition */
}
八、外边距的常见问题及注意事项
1.负外边距值:允许指定负外边距值,这会使元素向其相邻元素移动。
2.外边距的自动计算:在使用auto值时,浏览器会自动计算外边距的大小。例如,在水平方向上使用margin: 0 auto;可以将块级元素水平居中。但请注意,这种方法要求块级元素必须指定宽度。
3.外边距的百分比取值:当使用百分比值来设置外边距时,该百分比是相对于包含块的宽度计算的。如果包含块的宽度发生变化,外边距的大小也会相应变化。
4.外边距与浮动元素:当元素浮动时,外边距的行为可能会发生变化。特别是当浮动元素与相邻的非浮动元素相遇时,可能会出现一些预期之外的布局效果。
综上所述,CSS盒子模型的外边距是控制元素之间间距的重要属性。通过合理设置外边距,可以实现更好的页面布局效果。
扩展
一、清除元素的默认内外边距(重要)
为了更灵活方便地控制网页中的元素,制作网页时,我们需要将元素的默认内外边距清除
* {
padding:0; /* 清除内边距 */
margin:0; /* 清除外边距 */
}
注意:行内元素为了照顾兼容性, 尽量只设置左右内外边距, 不要设置上下内外边距
二、圆角边框
语法:
border-radius:length;
其中每一个值可以为 数值或百分比的形式。
技巧:让一个正方形 变成圆圈。
三、盒子阴影
语法:
box-shadow:水平阴影 垂直阴影 模糊距离(虚实) 阴影尺寸(影子大小) 阴影颜色 内/外阴影; 1
标签:块级,盒子,auto,元素,详解,外边,margin,CSS
From: https://blog.csdn.net/2301_80409533/article/details/143859062