html5已废弃align属性,ie8及以下虽能解析但行为不稳定;可靠居中须用css:width设固定值或百分比(非100%)、table保持display:table、父容器禁用float/absolute,且ie8不支持max-width。

旧版IE中用
会失效吗
会,而且是必然失效。HTML5 已移除 align 属性,IE8 及以下虽能解析,但行为不稳定:它实际触发的是浮动(float: left + 自动 margin),不是块级居中;在嵌套容器或有 CSS 重置时极易错位,W3C 验证器直接报错。
IE8–IE10 兼容的 table 水平居中写法
必须放弃 align,改用纯 CSS,且需兼顾旧引擎限制:
-
margin: 0 auto 是首选,但必须同时满足:width 为固定值或百分比(不能是 100%),且 table 保持默认 display: table
- 避免父容器设
float、position: absolute 或 display: inline-block,否则 IE 下 margin: auto 被忽略
- IE8 不支持
max-width,所以响应式方案得降级:width: 90% 或 width: 720px,不加 max-width
- 示例:
<table style="width: 720px; margin: 0 auto;">
<h3>vertical-align: middle 在 IE 中为什么没反应</h3>
<p>不是写错了,而是缺少高度支撑。IE8–IE10 对 <code>vertical-align: middle 的计算依赖单元格显式高度,仅靠 padding 或默认行高不够:
-
tr 上设 height: 40px 最可靠(IE8 支持,min-height 在部分版本中被忽略)
- 避免在
td 上同时设 height 和 vertical-align: middle —— IE 可能优先按 height 截断内容
- 若内容含图片或子元素,
vertical-align 仍只作用于“行内盒”,需确保子元素是 inline 或 inline-block,否则无效
要不要给 table 加 border-collapse: collapse
要,而且必须显式写。IE 和 Chrome/Firefox 默认不同:border-collapse: separate + border-spacing: 2px 是现代浏览器默认,IE 旧版可能强制 collapse 或忽略 border-spacing,导致列宽、间距不一致:
- 统一加:
table { border-collapse: collapse; border-spacing: 0; }
- 同时重置
th, td { padding: 6px; vertical-align: middle; },避免 IE 默认 padding 干扰对齐
- 不加的话,同一张表在 IE8 和 Chrome 中可能列宽差 4–6px,表格整体偏移
真正麻烦的不是写法本身,而是旧版 IE 对盒模型和继承规则的特殊处理——比如 text-align: center 写在 table 上完全无效,必须落在 td, th 上;而一旦用了 display: inline-table,又会让 margin: 0 auto 彻底失效。这些细节不验证到真机或 IE 虚拟机,光看文档根本发现不了。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!