内边距

内边距(Padding)是CSS盒模型中内容区域与边框之间的空间。它用于控制元素内容与边框之间的距离,使内容不紧贴边框,提高可读性。

padding属性

padding属性用于设置元素的内边距,可以同时设置上下左右四个方向的内边距。

语法

css
/* 简写形式 */
padding: <length> | <percentage>;

/* 分别设置四个方向 */
padding-top: <length> | <percentage>;
padding-right: <length> | <percentage>;
padding-bottom: <length> | <percentage>;
padding-left: <length> | <percentage>;

  • <length>:使用长度值指定内边距,如pxemremcm等。
  • <percentage>:相对于父元素内容区域宽度的百分比。

简写方式

padding属性支持多种简写方式:

  1. 单一值padding: 10px; - 上下左右内边距均为10px
  2. 两个值padding: 10px 20px; - 上下内边距10px,左右内边距20px
  3. 三个值padding: 10px 20px 30px; - 上内边距10px,左右内边距20px,下内边距30px
  4. 四个值padding: 10px 20px 30px 40px; - 上10px,右20px,下30px,左40px(顺时针方向)

示例

css
/* 单一值 */
.box1 { padding: 10px; }

/* 两个值 */
.box2 { padding: 10px 20px; }

/* 三个值 */
.box3 { padding: 10px 20px 30px; }

/* 四个值 */
.box4 { padding: 10px 20px 30px 40px; }

/* 单个方向 */
.box5 { padding-top: 10px; }
.box6 { padding-right: 20px; }
.box7 { padding-bottom: 30px; }
.box8 { padding-left: 40px; }

百分比值的计算

当内边距使用百分比值时,无论上下左右,都相对于父元素的宽度进行计算:

css
.parent {
  width: 400px;
  height: 200px;
}

.child {
  /* 上下内边距 = 400px × 5% = 20px */
  /* 左右内边距 = 400px × 10% = 40px */
  padding: 5% 10%;
}

行内元素的内边距

对于行内元素,内边距会影响元素的左右空间,但不会增加元素的上下行高。不过,上下内边距仍然会覆盖背景和边框。

css
span.highlight {
  display: inline;
  padding: 10px;
  background-color: yellow;
  border: 1px solid orange;
}

内边距与背景

内边距区域会显示元素的背景颜色或背景图片,这是内边距与外边距的重要区别之一(外边距是透明的)。

css
.box {
  padding: 20px;
  background-color: #f0f0f0;
  background-image: url('pattern.png');
}

内边距与盒模型

在标准盒模型中,内边距会增加元素的总宽度和总高度。例如:

css
.box {
  width: 200px;
  height: 100px;
  padding: 20px;
  /* 总宽度 = 200px + 20px × 2 = 240px */
  /* 总高度 = 100px + 20px × 2 = 140px */
}

使用box-sizing: border-box可以改变这种行为,使内边距包含在元素的宽度和高度内。

浏览器兼容性

所有现代浏览器都支持padding属性及其所有值。

浏览器 Chrome Firefox Safari Edge IE
支持情况 支持 支持 支持 支持 支持

最佳实践

  1. 使用相对单位:优先使用emrem等相对单位,使内边距与字体大小保持一致。
  2. 保持一致性:在整个网站中保持内边距的一致性,提高视觉统一性。
  3. 避免过度使用:过多的内边距会浪费空间,影响页面的信息密度。
  4. 考虑响应式设计:在小屏幕设备上适当减少内边距,提高内容的可见性。

小结

内边距是CSS盒模型的重要组成部分,用于控制元素内容与边框之间的空间。通过padding属性及其简写形式,可以灵活地设置元素四个方向的内边距。内边距会影响元素的总尺寸(在标准盒模型中),并且会显示元素的背景。合理使用内边距可以提高页面的可读性和美观度。

最后更新:2026-02-07