align属性在html5中已废弃,表格对齐必须用css:text-align仅对td/th有效,整表居中用margin:0 auto(需设width),vertical-align控制单元格内内容垂直对齐,align-content对table无效。

直接说结论:align 属性在现代 HTML 中已完全废弃,所有对齐必须用 CSS 控制;用错位置(比如加在 <table> 上想居中整表)或混用旧写法,是 90% 对齐失效的根源。
<h3>text-align 只对 td/th 生效,table 上设无效</h3>
<p><code>text-align 是控制单元格内文字、图片等行内内容水平对齐的唯一标准方式,但它只在 <td> 或 <code><th> 上起作用。
<ul>
<li>✅ 正确:<code><td style="text-align: right;">¥123.45</td>
<table style="text-align: right;"> —— <code><table> 不渲染文本,无继承值可传
<li>⚠️ 危险:<code><tr align="right"> —— HTML5 废弃属性,部分 WebView 会覆盖你写的 CSS
<li>若用了 UI 框架(如 Ant Design),检查 computed styles,常见干扰是 <code>td { text-align: inherit !important; }
margin: 0 auto 是表格整体居中的唯一可靠方式
让整张 <table> 在页面中水平居中,不能靠 <code>align="center",必须用 margin: 0 auto,但有两个硬性前提:
- 必须显式设置
width,例如width: 80%、width: 600px或响应式组合width: 100%; max-width: 800px; - 父容器不能有
float、display: inline或overflow: hidden等干扰布局的样式 - 别用
display: flex包裹<table> 来居中——它会破坏 <code>colspan/rowspan渲染,打印和屏幕阅读器可能出错 - 更推荐方案:
<div style="display: flex; justify-content: center;"><table></table></div>(IE11+ 支持,无需固定宽) - 只能写在
<td>、<code><th> 或 <code><tr> 上,写在 <code><table> 上完全无效 <li>合法值只有 <code>top、middle、bottom、baseline;center是错的,写了也不生效 - 若单元格内容只有一行文本,
vertical-align: middle看起来没变化——因为默认就是middle,且行高由内容撑开 - 含图片时注意:
vertical-align作用于图片盒模型整体;若图片设了display: block,该属性即失效 - 表格语义是“关系型数据”,不是“视觉网格”;强行套 Flex/Grid 会牺牲可访问性和打印兼容性
- 真正难的不是写对一行样式,而是确认「谁在管这个对齐」——是 CSS 规则?框架默认?还是残留的
align属性在暗中干扰?
vertical-align: middle 仅作用于 td/th 内部,且需高度支撑
vertical-align 控制的是单元格内内容相对于该单元格自身的垂直对齐,不是整行统一居中,也不是让表格在页面中垂直居中。
align-content 在 table 中完全不生效
align-content 是 Flexbox 和 Grid 的属性,对原生 <table> 布局没有任何效果,浏览器会直接忽略。
<ul><li>常见错误:<code><table style="align-content: center;"> —— computed styles 里根本看不到该属性值
<li>想用 <code>align-content?说明你其实不需要 <table>,该换结构了:用 <code>display: grid 配 grid-auto-rows + align-content: center,或 display: flex; flex-wrap: wrap 配明确高度容器
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











