<th>: 表头元素
Baseline 广泛可用 *
<th> HTML 元素将一个单元格定义为一组表格单元格的标题,并且可以用作 <tr> 元素的子元素。这组单元格的具体性质由 scope 和 headers 属性定义。
试一试
<table>
<caption>
Alien football stars
</caption>
<tr>
<th scope="col">Player</th>
<th scope="col">Gloobles</th>
<th scope="col">Za'taak</th>
</tr>
<tr>
<th scope="row">TR-7</th>
<td>7</td>
<td>4,569</td>
</tr>
<tr>
<th scope="row">Khiresh Odo</th>
<td>7</td>
<td>7,223</td>
</tr>
<tr>
<th scope="row">Mia Oolong</th>
<td>9</td>
<td>6,219</td>
</tr>
</table>
th,
td {
border: 1px solid rgb(160 160 160);
padding: 8px 10px;
}
th[scope="col"] {
background-color: #505050;
color: white;
}
th[scope="row"] {
background-color: #d6ecd4;
}
td {
text-align: center;
}
tr:nth-of-type(even) {
background-color: #eeeeee;
}
table {
border-collapse: collapse;
border: 2px solid rgb(140 140 140);
font-family: sans-serif;
font-size: 0.8rem;
letter-spacing: 1px;
}
caption {
caption-side: bottom;
padding: 10px;
}
属性
此元素包含全局属性。
缩写-
表头单元格内容的简短缩写描述,作为在其他上下文中引用该单元格时使用的替代标签。一些用户代理(例如屏幕阅读器)可能会在内容本身之前显示此描述。
colspan-
一个非负整数值,表示表头单元格跨越或扩展的列数。默认值为
1。用户代理会将大于 1000 的值视为不正确,并将其默认设置为1。 headers-
一个由空格分隔的字符串列表,对应于为该表头单元格提供标题的
<th>元素的id属性。 rowspan-
一个非负整数值,表示表头单元格跨越或扩展的行数。默认值为
1;如果其值设置为0,表头单元格将扩展到<th>所属的表格分组部分的末尾(<thead>、<tbody>、<tfoot>,即使是隐式定义的)。大于65534的值将被截断为65534。 scope-
定义标题(在
<th>中定义)元素所关联的单元格。可能的枚举值为row: 标题与其所属行的所有单元格相关联;col: 标题与其所属列的所有单元格相关联;rowgroup: 标题属于一个行组,并与其所有单元格相关联;colgroup: 标题属于一个列组,并与其所有单元格相关联。
如果未指定
scope属性,或者其值不是row、col、rowgroup或colgroup,则浏览器会自动选择表头单元格适用的单元格集。
已弃用属性
以下属性已弃用,不应使用。它们仅在更新现有代码时作为参考和出于历史兴趣而在此处记录。
align已弃用-
指定表头单元格的水平对齐方式。可能的枚举值为
left、center、right、justify和char。当支持时,char值将文本内容对齐到char属性中定义的字符以及charoff属性定义的偏移量。请改用text-alignCSS 属性,因为此属性已弃用。 axis已弃用-
包含一个由空格分隔的字符串列表,每个字符串对应于表头单元格所适用的单元格组的
id属性。请改用scope属性,因为此属性已弃用。 bgcolor已弃用-
定义表头单元格的背景颜色。该值是 HTML 颜色;可以是前缀为
#的 6 位十六进制 RGB 代码,也可以是颜色关键字。不支持其他 CSS<color>值。请改用background-colorCSS 属性,因为此属性已弃用。 char已弃用-
不执行任何操作。它最初旨在指定内容对齐到表头单元格的字符。典型的包括句点 (
.),当尝试对齐数字或货币值时。如果align未设置为char,则忽略此属性。 charoff已弃用-
不执行任何操作。它最初旨在指定表头单元格内容与
char属性指定的对齐字符之间的偏移字符数。 height已弃用-
定义建议的表头单元格高度。请改用
heightCSS 属性,因为此属性已弃用。 valign已弃用-
指定表头单元格的垂直对齐方式。可能的枚举值为
baseline、bottom、middle和top。请改用vertical-alignCSS 属性,因为此属性已弃用。 width已弃用-
定义建议的表头单元格宽度。请改用
widthCSS 属性,因为此属性已弃用。
用法说明
示例
请参阅 <table> 以获取一个完整的表格示例,其中介绍了常见的标准和最佳实践。
基本的列标题和行标题
本示例使用 <th> 元素在基本表格结构中引入列标题和行标题。
HTML
第一行(<tr> 元素)包含列标题(<th> 元素),它们充当列的“标题”,以使其更容易理解列中的信息并识别数据。为了表示每个列标题与相应列中的所有单元格相关联,scope 属性设置为 col(列)。
其余行包含表格的主要数据。这些行中的每一行都有一个行标题(<th> 元素)作为第一个单元格引入。这创建了一个以行标题为表格第一列的列。与列标题类似,scope 属性设置为 row,以指定每个行标题所关联的单元格,在下面的示例中是每个 row 中的所有数据单元格(<td> 元素)。
<table>
<tr>
<th scope="col">Symbol</th>
<th scope="col">Code word</th>
<th scope="col">Pronunciation</th>
</tr>
<tr>
<th scope="row">A</th>
<td>Alfa</td>
<td>AL fah</td>
</tr>
<tr>
<th scope="row">B</th>
<td>Bravo</td>
<td>BRAH voh</td>
</tr>
<tr>
<th scope="row">C</th>
<td>Charlie</td>
<td>CHAR lee</td>
</tr>
<tr>
<th scope="row">D</th>
<td>Delta</td>
<td>DELL tah</td>
</tr>
</table>
CSS
一些基本的 CSS 用于样式化表格及其单元格。我们使用 CSS 属性选择器根据其 scope 属性值定位标题单元格,突出显示列标题和行标题(<th> 元素),并将它们彼此以及与数据单元格(<td>)区分开来。
th,
td {
border: 1px solid rgb(160 160 160);
padding: 8px 10px;
}
th[scope="col"] {
background-color: #505050;
color: white;
}
th[scope="row"] {
background-color: #d6ecd4;
}
tr:nth-of-type(odd) td {
background-color: #eeeeee;
}
结果
列和行跨越
此示例通过添加第二行以提供额外的列标题,扩展和增强了 前一个示例 中的基本表格。
HTML
一个额外的表格行(<tr> 元素)作为表格的第二行标题添加,其中包含两个额外的列标题(<th> 元素)。通过这种方式,“发音”列被分成两列,一列用于 IPA(国际音标)符号,一列用于重拼(原始发音列)。相应的数据单元格(<td> 元素)被添加到每个后续行。
如 使用说明 所示,colspan 和 rowspan 属性可用于 <th> 元素,将标题单元格分配到正确的列和行。为了在表格结构中实现“两行”标题,第一个 <tr> 元素中的前两个标题单元格跨越两行。第三个标题单元格跨越两列宽(保留在第一行)。这种设置在第二行的第三和第四列中留下两个可用区域,其中第二个 <tr> 元素中的两个标题自动放置,colspan 和 rowspan 属性的默认值为 1。
<table>
<tr>
<th scope="col" rowspan="2">Symbol</th>
<th scope="col" rowspan="2">Code word</th>
<th scope="col" colspan="2">Pronunciation</th>
</tr>
<tr>
<th scope="col">IPA</th>
<th scope="col">Respelling</th>
</tr>
<tr>
<th scope="row">A</th>
<td>Alfa</td>
<td>ˈælfa</td>
<td>AL fah</td>
</tr>
<tr>
<th scope="row">B</th>
<td>Bravo</td>
<td>ˈbraːˈvo</td>
<td>BRAH voh</td>
</tr>
<tr>
<th scope="row">C</th>
<td>Charlie</td>
<td>ˈtʃɑːli</td>
<td>CHAR lee</td>
</tr>
<tr>
<th scope="row">D</th>
<td>Delta</td>
<td>ˈdeltɑ</td>
<td>DELL tah</td>
</tr>
</table>
CSS
CSS 与 前一个示例 相比没有变化。
结果
将表头单元格与其他表头单元格关联
对于表头单元格之间更复杂的关系,仅使用带有 scope 属性的 th 元素可能不足以用于辅助技术,尤其是屏幕阅读器。
HTML
为了提高 前一个示例 的可访问性,并允许屏幕阅读器(例如)读出与每个表头单元格关联的标题,可以引入 headers 属性以及 id 属性。由于“发音”列在示例中被分成两列,引入了“两行”标题,辅助技术(例如屏幕阅读器)可能无法识别“发音”表头单元格与哪些额外的表头单元格(th 元素)相关,反之亦然。因此,在“发音”、“IPA”和“重拼”表头单元格上使用 headers 属性,根据添加的 id 属性的唯一标识符值(以空格分隔的列表形式)关联相关的表头单元格。
<table>
<tr>
<th scope="col" rowspan="2">Symbol</th>
<th scope="col" rowspan="2">Code word</th>
<th scope="col" colspan="2" id="p" headers="i r">Pronunciation</th>
</tr>
<tr>
<th scope="col" id="i" headers="p">IPA</th>
<th scope="col" id="r" headers="p">Respelling</th>
</tr>
<tr>
<th scope="row">A</th>
<td>Alfa</td>
<td>ˈælfa</td>
<td>AL fah</td>
</tr>
<tr>
<th scope="row">B</th>
<td>Bravo</td>
<td>ˈbraːˈvo</td>
<td>BRAH voh</td>
</tr>
<tr>
<th scope="row">C</th>
<td>Charlie</td>
<td>ˈtʃɑːli</td>
<td>CHAR lee</td>
</tr>
<tr>
<th scope="row">D</th>
<td>Delta</td>
<td>ˈdeltɑ</td>
<td>DELL tah</td>
</tr>
</table>
结果
技术摘要
| 内容类别 | 无。 |
|---|---|
| 允许内容 | 流式内容,但没有页眉、页脚、分段内容或标题内容后代。 |
| 标签省略 | 开始标签是强制性的。 如果紧随其后的是 <th> 或 <td> 元素,或者其父元素中没有更多数据,则可以省略结束标签。 |
| 允许父级 | 一个 <tr> 元素。 |
| 隐式 ARIA 角色 |
columnheader 或 rowheader |
| 允许的 ARIA 角色 | 任意 |
| DOM 接口 | HTMLTableCellElement |
规范
| 规范 |
|---|
| HTML # the-th-element |
浏览器兼容性
加载中…
另见
- 学习:HTML 表格基础
<caption>,<col>,<colgroup>,<table>,<tbody>,<td>,<tfoot>,<thead>,<tr>: 其他与表格相关的元素background-color: 设置每个表头单元格背景色的 CSS 属性border: 控制表头单元格边框的 CSS 属性height: 控制建议的表头单元格高度的 CSS 属性text-align: 水平对齐每个表头单元格内容的 CSS 属性vertical-align: 垂直对齐每个表头单元格内容的 CSS 属性width: 控制建议的表头单元格宽度的 CSS 属性:nth-of-type,:first-of-type,:last-of-type: 选择所需表头单元格的 CSS 伪类
