--- title: margin slug: Web/CSS/margin tags: - CSS - CSS Property - Reference translation_of: Web/CSS/margin translation_of_original: Web/CSS/margin-new ---
margin
属性为给定元素设置所有四个(上下左右)方向的外边距属性。也就是 {{cssxref("margin-top")}},{{cssxref("margin-right")}},{{cssxref("margin-bottom")}},和 {{cssxref("margin-left")}} 四个外边距属性设置的简写。
这个可交互示例的源码保存在一个 GitHub 仓库中。如果你有兴趣为这个交互示例项目做作出贡献,请 clone 下 https://github.com/mdn/interactive-examples 然后给我们提一个 pull request.
上、下外边框的设置对不可替换内联元素,如 {{HTMLElement("span")}} 和 {{HTMLElement("code")}},无效。
注意: 外边距控制的是元素外部空出的空间。相反,{{cssxref("padding")}} 操作元素内部空出的空间。
/* 应用于所有边 */ margin: 1em; margin: -3px; /* 上边下边 | 左边右边 */ margin: 5% auto; /* 上边 | 左边右边 | 下边 */ margin: 1em auto 2em; /* 上边 | 右边 | 下边 | 左边 */ margin: 2px 1em 0 auto; /* 全局值 */ margin: inherit; margin: initial; margin: unset;
margin
属性接受 1~4 个值。每个值可以是 {{cssxref("<length>")}},{{cssxref("<percentage>")}},或 auto
。取值为负时元素会比原来更接近临近元素。
auto
{{csssyntax}}
<div class="center">此元素会被居中。</div> <div class="outside">此元素会显示在包含块之外。</div>
.center { margin: auto; background: lime; width: 66%; } .outside { margin: 3rem 0 0 -3rem; background: cyan; width: 66%; }
{{ EmbedLiveSample('简单的例子','100%',120) }}
margin: 5%; /* 所有边:5% 的外边距 */ margin: 10px; /* 所有边:10px 的外边距 */ margin: 1.6em 20px; /* 上边和下边:1.6em 的外边距 */ /* 左边和右边:20px 的外边距 */ margin: 10px 3% -1em; /* 上边: 10px 的外边距 */ /* 左边和右边:3% 的外边距 */ /* 下边: -1em 的外边距 */ margin: 10px 3px 30px 5px; /* 上边:10px 的外边距 */ /* 右边:3px 的外边距 */ /* 下边:30px 的外边距 */ /* 左边:5px 的外边距 */ margin: 2em auto; /* 上边和下边:2em 的外边距 */ /* 水平方向居中 */ margin: auto; /* 上边和下边:无外边距 */ /* 水平方向居中 */
在现代浏览器中实现水平居中,可以使用 {{cssxref("display")}}: flex;
{{cssxref("justify-content")}}: center;
。
不过,在 IE8-9 这样的不支持弹性盒布局的旧式浏览器中,上述代码并不会生效。此时要实现在父元素中居中,可使用 margin: 0 auto;
。
上下元素的下上外边距有时会重叠,实际空出的空间长度变为两外边距中的较长值。查看外边距重叠可找到更多信息。
规范 | 阶段 | 备注 |
---|---|---|
{{ SpecName('CSS3 Box', '#margin', 'margin') }} | {{ Spec2('CSS3 Box') }} | 没有明显变更。 |
{{ SpecName('CSS2.1', 'box.html#margin-properties', 'margin') }} | {{ Spec2('CSS2.1') }} | 削去内联元素上下方向的外边距的作用。 |
{{ SpecName('CSS1', '#margin', 'margin') }} | {{ Spec2('CSS1') }} | 初始定义。 |
{{cssinfo}}
{{Compat("css.properties.margin")}}