最简表格结构为<table><tr><td></td></tr></table>,必须包含table、tr、td三层标签,缺一不可;th用于表头,td用于数据;需用CSS设置border和border-collapse:collapse来控制边框。

用 <table>、<tr>、<td> 搭出最简表格结构
HTML 表格不是靠一个标签撑起来的,必须用 <table> 包裹,里面用 <tr> 表示行,再用 <td>(或 <th>)填单元格。漏掉任意一层,浏览器可能渲染错乱,或者开发者工具里看到 DOM 结构塌陷。
-
<th>专用于表头单元格,默认加粗居中;普通数据用<td> - 没有
<tbody>也能显示,但手动加上能提升语义性,也方便后续 JS 操作整块数据 - 空单元格别留空白:写
<td></td>,而不是<td> </td>(后者会多一个空格,影响对齐)
表格边框不显示?检查 border 和 CSS 冲突
老教程里写 <table border="1"> 能出边框,但现在默认不生效——因为现代浏览器把 border 属性当废弃属性处理了,实际起作用的是 CSS 的 border 声明。
- 纯 HTML 方式(不推荐):
<table border="1" cellspacing="0" cellpadding="4">,但cellspacing和cellpadding已被废除,兼容性差 - 推荐做法:用 CSS 控制,比如
table, th, td { border: 1px solid #ccc; border-collapse: collapse; } - 漏掉
border-collapse: collapse会导致双线边框,看着像边框变粗了,其实是默认的separate模式
<colgroup> 和 <col> 是控制列样式最轻量的方式
想让第 2 列统一设成 120px 宽、右对齐,不用给每行每个 <td> 加 class。用 <colgroup> + <col> 更直接,也更利于维护。
-
<colgroup>必须放在<thead>或第一行<tr>之前,否则被忽略 -
<col>标签自闭合,不能写</col>;支持width、span、style等属性 - 示例:
<colgroup><col><col style="width:120px;text-align:right"></colgroup> - 注意:IE 对
<col>的background支持不稳定,慎用背景色
可访问性坑点:scope 和 headers 别漏掉
屏幕阅读器读表格时,靠 scope(在 <th> 上)或 headers(在 <td> 上)关联数据单元格和表头。没加的话,视障用户根本不知道某列代表什么。
立即学习“前端免费学习笔记(深入)”;
- 单层表头用
scope="col"或scope="row"就够,比如<th scope="col">姓名</th> - 复杂表头(比如“成绩”下分“数学”“英语”)才需要
id+headers配对 - 用 Lighthouse 或 axe 测试时,“
<th>元素缺少scope” 是常见失败项
scope 和 border-collapse 这类不起眼的细节,上线后才被发现,往往要翻好几屏代码。



















