align属性在HTML5中已废弃,必须用CSS的text-align控制单元格内文字水平对齐;它仅作用于行内内容,对块级子元素无效,且易受继承、优先级和显示类型影响。

align 属性确实能设置 <td> 内文字的水平对齐,但它在 HTML5 中已废弃,**不能用于新项目,也不该出现在任何现代代码中**。
<h3>为什么 <code>align 还能“看起来有效”
浏览器为兼容旧网页,仍会解析 align 并悄悄转成等效的 text-align 行内样式。但这不是稳定行为:
- IE 对
justify值会当作center处理,Chrome 和 Firefox 表现不一致 -
char值几乎无浏览器支持,写了等于白写 - 与 CSS 框架(如 Bootstrap 的
.table类)叠加时,优先级混乱,极易被覆盖 - HTML 验证器报错,严格模式下属于无效标记
text-align 是唯一可靠方案
必须用 CSS 的 text-align 控制水平对齐。它只作用于块级容器内的行内内容,所以目标元素必须是 <td> 或其父级(<code><tr>、<code><table>),而不是里面的 <code><p></p> 或 <span></span>:
- 单个单元格:
<td style="text-align: right;">$100</td> - 整列控制:用
<col class="num-col">+.num-col { text-align: right; } - 整表统一:给
<table> 设 <code>text-align: center,再用更具体选择器覆盖例外项(如table .no-center { text-align: left; })常见失效场景和原因
text-align: center没生效?大概率是下面这些情况:- 把
text-align写在了<div> 或 <code><p></p>上 —— 它只对包含行内内容的块容器起作用 - 单元格里嵌套了
display: block的元素(比如加了样式的<div>),它不会随父级 <code>text-align居中,得自己设margin: 0 auto(且要有明确宽度) - 图片加了
display: block后,text-align失效 —— 改回默认行内或用flex - 父级(如
或某个 wrapper<div>)设置了 <code>text-align: left且未被重置,导致继承覆盖真正复杂的地方在于:对齐效果依赖内容类型和显示模型。行内文本、图片、块级
<div> 在同一 <code><td> 里可能响应不同规则,不能指望一个 <code>text-align通吃所有子元素。
- 把


















