margin 外边距属性

最后更新:2026-09-13

margin margin 外边距属性

margin 属性用于设置元素周围的外部空间,即元素边框与其他元素之间的距离。它是 CSS 盒模型中最常用的属性之一,常用于控制元素之间的间距、实现水平居中以及在元素周围留出呼吸空间。margin 可以是固定长度、百分比,也可以使用 auto 让浏览器自动计算。

分类
初始值0
继承
适用于all
可动画length
CSS 版本CSS1
状态标准

📝 语法

margin: <length> | <percentage> | auto;

⚙️ 取值

类型描述
auto关键字浏览器自动计算外边距
<length>类型固定外边距值
<percentage>类型相对包含块宽度的百分比

▶ 示例

编辑下方代码,在 playground 中查看实时效果:

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
margin v1 v12 v1 v1 v1
所有主流浏览器均支持
注意: 相邻垂直方向的外边距会发生"外边距折叠"(margin collapse),实际间距取两者中的较大值,而非相加。
提示: 使用 margin: 0 auto; 可以让块级元素在其父容器中水平居中(需设置明确宽度)。

❓ 常见问题

Qmargin 和 padding 有什么区别?
Amargin 是元素边框之外的外边距,控制元素与相邻元素或容器边缘的距离,允许负值;padding 是内容与边框之间的内边距,控制内容与盒子边界的关系,不允许负值。另外 padding 会扩大背景色和点击区域范围,margin 不会;margin 会发生垂直方向的外边距折叠,padding 不会。
Q为什么 margin:auto 只能水平居中不能垂直居中?
A因为块级元素的水平外边距会自动瓜分剩余空间实现居中,而普通文档流的垂直方向没有此机制。垂直居中方案:flex 父元素 display:flex; align-items:center; justify-content:center;或 grid 父元素 display:grid; place-items:center。
Q什么是外边距折叠(margin collapse)?
A垂直方向上,相邻元素的上/下外边距不相加,而取较大值作为间距,即外边距折叠。子元素 margin-top 也可能穿透到父元素外。避免:父元素加 padding/border、设 overflow:hidden、或用 flex/grid。水平方向永不折叠。
Qmargin 的百分比是相对于谁的?
Amargin 的百分比始终相对于包含块的宽度(inline size)计算,包括 margin-top 和 margin-bottom 也按宽度算,而不是按高度。例如父容器宽度 400px 时,margin-top:10% 等于 40px。这是 CSS 的既定规则,容易让人误解,需要特别留意。

📚 相关教程

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏