不能直接用了。html5已废弃valign属性,w3c不支持且校验报错;现代浏览器虽可能兼容渲染,但在flex/grid布局中完全失效;应改用css的vertical-align(单行文本)或display: flex + align-items(复杂内容)替代。

HTML 中 <td> 的 <code>valign 属性还能用吗?
不能直接用了。HTML5 已废弃 valign 这类表现型属性,浏览器虽可能兼容渲染,但 W3C 不再支持,校验会报错,且在现代 CSS 布局(如 Flex、Grid)中完全失效。
用 CSS 替代 valign 的三种可靠方式
核心是给 <td> 设置 <code>vertical-align,它才是标准方案。注意:该属性只对「表格单元格」和「行内/替换元素」生效,对普通 <div> 无效。
<ul><li>
<strong>基础写法</strong>:直接在 <code><td> 上加内联样式 <code>style="vertical-align: middle;",支持值包括 top、middle、bottom、baseline
td { vertical-align: middle; } 或更精确的 table.data-table td { vertical-align: top; }
vertical-align 可能不够,需确保父 <tr> 或 <code><table> 有明确高度,或改用 Flex 布局包裹内容(见下一条)
<h3>当 <code>vertical-align 不起作用时,该检查什么?
常见失效不是代码写错,而是上下文限制导致:
<td> 内容是块级元素(比如嵌套了 <code><div>),而 <code>vertical-align默认只作用于行内内容——此时需给内部<div> 加 <code>display: inline-block;,或改用 Flex- 表格设置了
border-collapse: collapse;但没影响对齐,真正干扰的是padding和line-height,可临时设line-height: 1;排查 - 使用了
display: table-cell;模拟表格但忘了加vertical-align,这种模拟必须显式声明,CSS 表格模型不会继承 HTML 表格默认行为
更现代的替代方案:用 Flex 布局彻底绕过表格对齐限制
如果你的表格语义不强(比如只是排版需要),或要支持复杂垂直居中(如多行文本+图标+按钮),直接用 Flex 更可控:
<td style="display: flex; align-items: center; justify-content: center; height: 60px;"> <span>居中内容</span> </td>
注意:align-items 控制交叉轴(即垂直方向),justify-content 控制主轴(水平)。这里依赖 <td> 有明确高度,否则 Flex 容器高度由内容撑开,看起来仍像顶部对齐。
<p>真正容易被忽略的是:表格单元格的 <code>vertical-align 是相对整行基线计算的,而 Flex 的 align-items 是相对容器自身高度计算的——两者逻辑不同,混用时结果可能出人意料。











