国际访客建议访问 Primers 编程伙伴 国际服 以获得更好的体验。 快速访问 HTML 样式 内外边距

# CSS 的内外边距

在 CSS 中通过 margin, padding,属性分别设置外边距和内边距。

/* 外边距 */
margin: A;          /* 上下左右外边距均为 A */
margin: A B;        /* 上下外边距为 A,左右外边距为 B */
margin: A B C D;    /* 上右下左 外边距分别为 A B C D */
margin-top: A     /* 上外边距为 A */
margin-bottom: A  /* 下外边距为 A */
margin-left: A    /* 左外边距为 A */
margin-right: A   /* 右外边距为 A */

/* 内边距 */
padding: A;         /* 上下左右内边距均为 A */
padding: A B;       /* 上下内边距为 A,左右内边距为 B */
padding: A B C D;   /* 上右下左 内边距分别为 A B C D */
padding-top: A    /* 上内边距为 A */
padding-bottom: A /* 下内边距为 A */
padding-left: A   /* 左内边距为 A */
padding-right: A  /* 右内边距为 A */

示例:

<div style="background-color:green;">
    <div style="margin: 30px; padding: 30px; background-color:#212121; color:cyan;">
        margin: 30px; <br/>
        padding: 30px; <br/>
    </div>
</div>

这个示例中可以看到,内层 div 的外边距好像只有左右两边有效,上下两边无效。其实上下外边距“溢出”到外层 div 之外去了。

这种现象称为 外边距折叠(Margin Collapse) ,即多层元素同时拥有外边距时,上下外边距合并为最大值。

可以通过将 overflow 属性设为 visible 以外的值消除外边距折叠:

<div style="background-color:green; overflow:hidden;">
    <div style="margin: 30px; padding: 30px; border: 3px solid red; background-color:#212121; color:cyan;">
        margin: 30px; <br/>
        padding: 30px; <br/>
        border: 3px solid red; <br/>
    </div>
</div>
本文 更新于: 2025-06-05 19:13:11 创建于: 2025-06-05 19:13:11