cellpadding是html5废弃的table属性,仅统一设置td/th内容与边框间距,不支持多方向控制、响应式及css单位;现代开发必须用css padding替代,如td,th{padding:8px}。

cellpadding 是 HTML <table> 标签的**过时属性**,它仅作用于表格单元格(<code><td> 或 <code><th>)内部,控制内容与单元格边框之间的距离,等效于给每个单元格统一设置 <code>padding。
但它的本质是内联样式、无继承、无法单独控制方向,且已被 HTML5 废弃。现代开发中必须用 CSS 替代。
为什么不能继续用 cellpadding
它只接受一个数值(如 cellpadding="5"),强制所有方向 padding 相同;不支持百分比、em、rem 等单位;无法响应式调整;与 CSS 优先级规则冲突(比如你写了 td { padding: 10px 20px; },cellpadding 会被忽略或引发不可预测覆盖)。
CSS 中替代 cellpadding 的写法
直接对 td 和 th 设置 padding 即可,支持全部 CSS padding 语法:
-
td, th { padding: 8px; }→ 四边统一 -
td, th { padding: 4px 12px; }→ 上下 4px,左右 12px -
td:first-child { padding-left: 0; }→ 首列左内边距清零 - 配合
box-sizing: border-box可让 width 计算更可控(尤其当单元格有 border 时)
cellpadding 和现代盒模型的兼容性陷阱
旧代码里混用 cellpadding 和 CSS padding 容易出问题:
- 浏览器仍会解析
cellpadding,但可能被后续 CSS 覆盖 —— 具体行为取决于解析顺序和 specificity -
border-collapse: collapse下,cellpadding依然生效,但视觉上容易误判“边框重叠”是 padding 没起作用 - 若表格设置了
table { font-size: 0; }(常见为消除 inline 元素间隙),而td内又用了em单位的 padding,实际值会意外缩放
padding 值会直接影响整行高度计算,尤其当内容是单行文本 + line-height 时,容易因 padding 与 line-height 叠加导致高度溢出或截断 —— 这个细节在纯 div 布局里反而不常遇到。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











