CSS margin-left 语法
在 CSS 中,margin-left 属性用于单独定义元素的左外边距。从下图所示的 CSS 盒子模型中可以看出,margin-left 位于 border 的左边。

语法:
margin-left: 数值;说明:
margin-left 的取值是一个数值,比如像素值(px)、百分比(%)、em、rem 等。
对于 margin-left 属性,小伙伴们要清楚以下几点。
- margin-left 是 margin 简写属性的组成部分。
- margin-left 属性会影响元素与其左侧元素之间的距离。
- margin-left 属性可以接受负值,这可能导致元素向左移动,与左侧元素重叠。
- margin-left 百分比值是相对于父元素的宽度进行计算的。
- 与垂直外边距不同,水平外边距(margin-left 和 margin-right)不会发生重叠。
- 对 inline 元素(如 span、strong 等)设置 width 和 height 是无效的,但对它们设置 padding 和 margin 是有效的。
CSS margin-left 摘要
| 属于 | CSS 外边距 |
|---|---|
| 使用频率 | 高 |
| 是否继承 | 否 |
| 默认值 | 0 |
| 兼容性 | 查看 |
| 官方文档 | 查看 |
| MDN | 查看 |
CSS margin-left 示例
接下来,我们通过几个简单的例子来讲解一下 CSS margin-left 属性是如何使用的。
示例 1:margin-left 基本用法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#father {
display: inline-block; /* 转换为inline-block元素 */
border: 1px solid blue;
}
#son {
display: inline-block; /* 转换为inline-block元素 */
padding: 20px;
margin-left: 50px;
border: 1px solid red;
background-color: #FFDEAD;
}
.brother {
height:50px;
background-color: skyblue;
}
</style>
</head>
<body>
<div id="father">
<div class="brother"></div>
<div id="son">绿叶网</div>
<div class="brother"></div>
</div>
</body>
</html>页面效果如下图所示。

示例 2:margin-left 使用负值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
div {
display: inline-block;
width: 200px;
height: 100px;
border: 1px solid gray;
}
.box1 {
background-color: hotpink;
}
.box2 {
margin-left: -100px;
background-color: lightskyblue;
}
</style>
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
</body>
</html>页面效果如下图所示。

分析:
由于我们给 box2 设置了 margin-left: -100px;,因此 box2 会向左移动 100px。此外由于 box2 是在 box1 后面,因此可以看成 box1 是被 box2 覆盖了。
margin 的派生子属性
margin 是一个复合属性,它有 4 个派生子属性(如下表所示),用于单独设置某个方向的 margin。
| 子属性 | 说明 |
|---|---|
| margin-top | 上外边距 |
| margin-right | 右外边距 |
| margin-bottom | 下外边距 |
| margin-left | 左外边距 |
