html5 中 align 属性已废弃,应使用 text-align 实现文本水平对齐;必须作用于文本容器本身,注意继承链、字体、数据格式及 display 模式影响。

align 属性在 HTML5 中已完全废弃,不能靠它实现左右方向对齐 —— 浏览器“看起来有效”只是向后兼容,不是标准行为,上线后容易失效或被框架样式覆盖。
别再用 align="left" 或 align="right"
常见错误现象:<td align="right">123.45</td> 在本地 Chrome 里似乎右对齐了,但换到 iOS Safari 17+ 或严格模式 WebView 就变左对齐;用 Lighthouse 检测时直接标为“可访问性风险”。
- HTML5 规范明确移除了所有元素的
align属性(包括<p></p>、<div>、<code><table>、<code><td>) <li><code><table align="center"> 是控制整张表在页面中的位置,不是单元格内容对齐,该写法也已被 <code>margin: 0 auto取代 - React/Vue/Svelte 等现代框架模板中写
align属性,JSX 解析器直接忽略,等于白写 - 整列数字右对齐:用
<col class="num-col">+ CSS.num-col { text-align: right; } - 标题居中 + 副标题右对齐共存于同一行:必须用 Flexbox,
text-align无法让两个兄弟元素分别锚定左右边缘 - 避免滥用
!important:90% 的“加了text-align: right还是左对齐”问题,根源是 UI 框架(如 Bootstrap 的.table-sm)设了text-align: left !important,应优先检查 computed styles 定位冲突源
text-align 是唯一可靠的水平对齐方式
它必须作用在**文本容器本身**(如 <p></p>、<td>、<code><div>),而不是父级 <code><tr> 或 <code><tbody> —— 后者设了也大概率不生效。
<ul>
<li>单个单元格右对齐:<code><td style="text-align: right;">¥99.99</td>
表格中右对齐数字的真正难点不在写法,在继承链
即使写了 text-align: right,小数点和负号仍可能错位 —— 因为对齐效果受字体、空格、Unicode 字符、内部 display 模式共同影响。
- 等宽字体是前提:
font-family: 'SFMono-Regular', Consolas, monospace; - 数据必须干净:
<td>-123.45</td>,不能是<td> −123.45 </td>(注意全角空格和 Unicode 减号−) - 一旦单元格内用了
display: flex或float,text-align完全失效 —— 它只对“文本流”起作用 - 最易被忽略的一点:CSS 继承不是无条件的。
<table> 上设 <code>text-align: right,<td> 会继承,但若中间某层(比如 <code><tbody>)显式设了 <code>text-align: left,就会截断继承链真正调准表格对齐,靠的不是多写几行 CSS,而是打开浏览器 devtools 的 computed styles 面板,一层层看
text-align最终从哪来、被谁覆盖 —— 四层叠加(HTML 属性 → 全局 reset → 组件库样式 → 内联 style)下,不查 computed,光靠猜永远不准。











