CSS 词条目录
前端Wiki/CSS/基础/盒模型

margin 与 padding

padding 是内容与边框之间的「内衬」,属于盒子内部,背景色会延伸过来;margin 是盒子与其他盒子之间的「外部距离」,完全透明,不显示背景。

两者都支持四值速记,按上、右、下、左顺时针排列:

  • margin: 10px; 四边全为 10px
  • margin: 10px 20px; 上下 10px、左右 20px
  • margin: 10px 20px 30px; 上 10、左右 20、下 30
  • margin: 10px 20px 30px 40px; 上右下左各不相同

两个技巧:margin: 0 auto; 让块级元素在父容器中水平居中;margin 允许负值(用于微调重叠),padding 不允许负值。另外行内元素的 margin 上下方向不生效,需要注意。

本节要点padding 在盒内、有背景,margin 在盒外、透明;速记顺序「上右下左」;margin: 0 auto 水平居中;行内元素上下 margin 无效。
CSS
<style>
  .card {
    width: 260px;
    padding: 16px 24px;       /* 上下16 左右24 */
    margin: 20px auto;        /* 上下20,水平居中 */
    background: #eef6ff;
    border: 1px solid #b3d7ff;
  }
  .card p {
    margin: 0 0 8px;          /* 段落间留 8px */
  }
</style>
<div class="card">
  <p>卡片标题</p>
  <p>padding 让文字不贴边,margin 让卡片居中。</p>
</div>