源本科技 | 码上会

CSS padding

2026/03/02
23
0

学习目标

  • 理解 CSS 内边距(Padding)的概念及其在盒模型中与外边距(Margin)的区别。

  • 掌握 padding-toppadding-rightpadding-bottompadding-left 四个独立属性的用法。

  • 熟练运用 padding 简写属性的四种取值规则(1 值、2 值、3 值、4 值)。

  • 学会使用像素(px)、百分比(%)及 inherit 关键字设置内边距。

  • 能够通过调整内边距优化内容的可读性和视觉平衡。

什么是内边距

CSS 内边距(Padding)用于在元素的内容(Content)与元素的边框(Border)之间创建空间。它只影响元素内部,不会改变元素与其他相邻元素之间的距离。

核心区别:

  • 内边距 (Padding):内容与边框之间的空间(内部)。

  • 外边距 (Margin):边框与相邻元素边框之间的空间(外部)。

独立属性设置

CSS 允许我们单独控制元素四个方向的内边距:

属性

描述

padding-top

设置元素上方的内边距。

padding-right

设置元素右侧的内边距。

padding-bottom

设置元素下方的内边距。

padding-left

设置元素左侧的内边距。

可用单位:

  • 长度单位:如 px, cm, pt, em, rem 等。

  • 百分比 (%):相对于父元素宽度的百分比。

  • inherit:从父元素继承内边距值。

以下代码展示了如何为 div 的每个边单独设置不同的内边距:

<!DOCTYPE html>
<html>
<head>
    <title>独立内边距示例</title>
    <style>
        body {
            margin: 0;
            padding: 20px;
            font-family: sans-serif;
        }

        .myDiv {
            background-color: lightblue;
            border: 2px solid black;
            
            /* 单独设置每个方向的内边距 */
            padding-top: 80px;    /* 上方 80px */
            padding-right: 100px; /* 右侧 100px */
            padding-bottom: 50px; /* 下方 50px */
            padding-left: 80px;   /* 左侧 80px */
        }

        .inner {
            background-color: pink;
            border: 1px solid black;
            width: 70px;
            height: 50px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 12px;
        }
    </style>
</head>
<body>
    <div class="myDiv">
        <div class="inner">内容块</div>
    </div>
    <p>注意粉色内容块与蓝色容器边框之间的巨大间距差异。</p>
</body>
</html>

简写属性

为了简化代码,CSS 提供了 padding 简写属性,允许在一行声明中设置所有四个方向的内边距。根据提供的值的数量,其行为分为四种情况。

1. 一个值

如果只提供一个值,该值将应用于所有四个方向(上、右、下、左)。

语法:

padding: 值;

示例:

/* 上下左右均为 20px */
padding: 20px;

演示代码:

<style>
    .box-one {
        background-color: gray;
        border: 2px solid black;
        padding: 20px; /* 四边均为 20px */
        color: white;
        text-align: center;
    }
</style>
<div class="box-one">四周留白均匀 (20px)</div>

2. 两个值

如果提供两个值:

  • 第一个值:应用于

  • 第二个值:应用于

语法:

padding: 上下 左右;

示例:

/* 上下 10px,左右 20px */
padding: 10px 20px;

演示代码:

<style>
    .box-two {
        background-color: gray;
        border: 2px solid black;
        padding: 10px 20px; 
        color: white;
        text-align: center;
    }
</style>
<div class="box-two">上下 10px,左右 20px</div>

3. 三个值

如果提供三个值:

  • 第一个值:应用于

  • 第二个值:应用于

  • 第三个值:应用于

语法:

padding: 上 左右 下;

示例:

/* 上 10px,左右 20px,下 30px */
padding: 10px 20px 30px;

演示代码:

<style>
    .box-three {
        background-color: yellowgreen;
        border: 2px solid black;
        padding: 10px 20px 30px;
        color: white;
        text-align: center;
    }
</style>
<div class="box-three">上 10px,左右 20px,下 30px</div>

4. 四个值

如果提供四个值,顺序遵循顺时针方向:

  1. 上 (Top)

  2. 右 (Right)

  3. 下 (Bottom)

  4. 左 (Left)

语法:

padding: 上 右 下 左;

示例:

/* 上 10px,右 20px,下 15px,左 25px */
padding: 10px 20px 15px 25px;

演示代码:

<style>
    .box-four {
        background-color: cyan;
        border: 2px solid black;
        padding: 10px 20px 15px 25px;
        color: black;
        text-align: center;
        font-weight: bold;
    }
</style>
<div class="box-four">上 10 / 右 20 / 下 15 / 左 25</div>

内边距属性

结合独立属性和简写属性,CSS 中共有 5 个主要的内边距相关属性:

属性

描述

padding

简写属性:一次性设置所有四个方向的内边距。

padding-top

设置元素顶部的内边距。

padding-right

设置元素右侧的内边距。

padding-bottom

设置元素底部的内边距。

padding-left

设置元素左侧的内边距。

重点总结

  • 内部空间:内边距是内容与边框之间的区域,背景色会延伸至此区域。

  • 顺时针记忆法:在使用 4 个值的简写时,牢记 上 -> 右 -> 下 -> 左 的顺时针顺序。

  • 简写逻辑

    • 1 值:全同。

    • 2 值:上下 / 左右。

    • 3 值:上 / 左右 / 下。

    • 4 值:上 / 右 / 下 / 左。

  • 百分比陷阱:当使用百分比(%)设置 padding 时,无论是水平还是垂直方向,其计算基准通常都是父元素的宽度

  • 布局影响:增加内边距会增加元素的总宽度(在默认 box-sizing: content-box 下),需注意对布局的影响。

思考题

  1. 如果我想要一个元素上下内边距为 15px,左右内边距为 30px,应该如何使用简写属性 padding

  2. 在 CSS 盒模型中,如果我将 padding 设置为 10%,这个 10% 是相对于谁的宽度或高度计算的?

  3. 为什么有时候我们在按钮设计中 prefer 使用 padding 而不是固定宽度的 width 来控制按钮大小?这样做有什么好处?