html5已废弃cellpadding和cellspacing,不应再使用;应改用css的padding(作用于td/th)控制内容与边框距离,border-spacing(作用于table且需border-collapse: separate)控制单元格间间隙。

cellpadding 和 cellspacing 还能用吗?
不能直接用了。HTML5 已废弃 cellpadding 和 cellspacing 属性,强行写在 <table> 上虽然浏览器可能兼容渲染,但会触发 HTML 验证警告,且语义不清、维护困难。
<p>正确做法是用 CSS 控制:用 <code>padding 调整单元格内容与边框的距离,用 border-spacing 控制相邻边框之间的间隙(即旧 cellspacing 的替代)。
-
padding作用于<td> 或 <code><th>,影响文字/内容到单元格边框的距离 <li> <code>border-spacing必须设在<table> 上,且仅对 <code>border-collapse: separate生效(默认值) - 若用了
border-collapse: collapse,border-spacing会被忽略,此时单元格间无间隙,靠padding单独控制留白 - 推荐统一设置
box-sizing: border-box,让padding包含在设定的宽高内 - 对特定列调整:用类名如
.pl-12,定义padding-left: 12px - 避免直接写
style="padding-left: 16px"在每个<td> 上,不利于复用和主题切换 <li>示例:<pre class="brush:php;toolbar:false;">td.align-left { padding-left: 16px; padding-right: 8px; }</pre> </li> <h3>合并边框(collapse)下还有办法微调间距吗?</h3> <p>没有 <code>border-spacing,但仍有两个实用手段:一是用padding做内容级留白;二是用伪元素或透明边框“伪造”间隙。- 最常用的是
padding+border-box组合,安全可靠 - 若需在边框之间“挤”出 1px 空隙(比如深色背景上想让边线呼吸),可给
<td> 加 <code>border: 1px solid transparent,再配合background-clip: padding-box防止背景侵入边框区 - 慎用
margin:表格单元格不支持margin,写了也无效 - 注意:
border-collapse: collapse下,相邻单元格的边框会合并,此时单侧border可能被覆盖,优先用padding - 优先用
em或rem:如padding: 0.5em 0.75em,随字体大小自适应 - 小屏下减半:
@media (max-width: 480px) { td, th { padding: 0.35em 0.5em; } } - 避免在
<table> 上设 <code>font-size后忘记重置td的padding单位,否则 em 会套娃放大 - 移动端慎用左右大 padding,可改用
text-align: center+ 垂直居中缓解拥挤感
实际项目里最容易被忽略的,是
响应式表格里 padding 怎么不显得太挤?
固定
padding: 12px在小屏上会让内容局促,尤其配合字体缩放时。必须用相对单位或媒体查询动态调整。border-collapse的隐式状态和box-sizing的缺失——这两个不显眼的设置,往往让 padding 表现和预期完全相反。 - 最常用的是
怎么让文字离左边框远一点但不撑大整个列宽?
关键在于只给需要的方位加 padding,比如只加 padding-left,而不是全方向 padding。同时注意 box-sizing 默认是 content-box,padding 会额外增加宽度——如果列宽已用像素或百分比固定,容易溢出或换行。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











