<caption>必须作为<table>的第一个子元素,置于最顶部;若放外部或<thead>内则非法,浏览器纠错不可靠;默认居中显示于表格上方。

用 <caption> 放在 <table> 内部最顶部
<caption> 必须作为 <table> 的第一个子元素,否则浏览器可能忽略或渲染异常。它默认居中显示在表格上方,不需要额外 CSS。
常见错误是把它写在 <table> 外面,或者放在 <thead> 里——这两种写法都不合法,HTML 解析器会尝试纠错,但结果不可靠。
- ✅ 正确位置:
<table><caption>销售汇总表</caption><thead>...</thead>...</table></li> <li>❌ 错误位置:<code><caption>...</caption><table>...</table></li> <li>❌ 错误位置:<code><table><thead><caption>...</caption></thead>...</table></li> </ul> <H3><code><caption>
默认样式和微调方式所有现代浏览器都让
<caption>水平居中、加粗、字号略大于表格内容(通常为font-weight: bold,text-align: center)。如果需要调整,直接写 CSS 即可,无需 hack。注意:用
caption-side可以控制标题出现在表格上方(top)还是下方(bottom),但不能用margin: auto或text-align强行“再居中”——它本来就是居中的。- 让标题在下方:
caption { caption-side: bottom; } - 取消加粗:
caption { font-weight: normal; } - 改字体大小:
caption { font-size: 0.9em; }
语义重要性:屏幕阅读器依赖
<caption>理解表格用途对无障碍访问而言,
<caption>不只是视觉装饰。屏幕阅读器会把它的文本作为表格的“名称”播报出来,比如:“表格:2024 年各季度营收(共 4 行 5 列)”。没有它,用户只能靠上下文猜这张表是干啥的。所以别用
<div>或<p>模拟标题——即使看起来一样,语义丢失了,辅助技术就失效了。- ✅ 语义正确:
<caption>用户注册时间分布统计</caption> - ❌ 语义缺失:
<p style="text-align:center;font-weight:bold">用户注册时间分布统计</p>
兼容性与常见陷阱
<caption>是 HTML 4 就支持的标签,IE6+ 全都支持,不存在兼容问题。真正容易出错的是嵌套结构和 CSS 覆盖。比如给整个
<table>设了text-align: left,会导致<caption>也左对齐——因为部分老浏览器(如 IE8-)不完全隔离 caption 的文本对齐逻辑。这时候得单独重置:caption { text-align: center; }。- 避免在
<table>上设全局text-align,或务必单独覆盖caption - 不要给
<caption>套<div>或<span>—— 它只接受流内容,嵌套块级元素会破坏验证 - 如果表格动态生成(如 JS 渲染),确保
<caption>是第一个插入的子节点
- 让标题在下方:

















