HTML 的 <td> 元素

1. 什么是 <td> 元素

&lt;td&gt; 是 HTML 中用于定义表格单元格(Table Data)的元素,全称为 "Table Data Cell"。它是构成 HTML 表格的基本单元之一,用于存放表格中的具体数据内容。

在 HTML 表格结构中,&lt;td&gt; 元素必须嵌套在 &lt;tr&gt;(表格行)元素内部,而 &lt;tr&gt; 又必须位于 &lt;table&gt; 元素之中。一个完整的表格结构通常如下:

html 复制代码
<table>
  <tr>
    <td>姓名</td>
    <td>年龄</td>
  </tr>
  <tr>
    <td>张三</td>
    <td>25</td>
  </tr>
</table>

2. <td> 与 <th> 的区别

在表格中,除了 &lt;td&gt; 之外,还有一个与之密切相关的元素 &lt;th&gt;(Table Header)。两者虽然都用于定义单元格,但在语义和使用场景上有明显区别:

对比项 <td> <th>
全称 Table Data Cell Table Header Cell
语义 普通数据单元格 表头单元格
默认样式 无特殊样式,左对齐 加粗、居中显示
使用场景 存放表格数据 存放列标题或行标题
无障碍支持 无特殊标识 会被屏幕阅读器识别为标题
html 复制代码
<table>
  <tr>
    <th>产品名称</th>
    <th>价格</th>
  </tr>
  <tr>
    <td>笔记本电脑</td>
    <td>¥6999</td>
  </tr>
</table>

3. <td> 元素的常用属性

3.1 colspan(跨列合并)

colspan 属性用于让一个单元格横向跨越多个列:

html 复制代码
<table border="1">
  <tr>
    <td colspan="2">合并两列的单元格</td>
  </tr>
  <tr>
    <td>单元格 A</td>
    <td>单元格 B</td>
  </tr>
</table>

3.2 rowspan(跨行合并)

rowspan 属性用于让一个单元格纵向跨越多个行:

html 复制代码
<table border="1">
  <tr>
    <td rowspan="2">跨两行的单元格</td>
    <td>单元格 1</td>
  </tr>
  <tr>
    <td>单元格 2</td>
  </tr>
</table>

3.3 headers(关联表头)

headers 属性用于无障碍访问,将数据单元格与对应的表头单元格关联起来:

html 复制代码
<table>
  <tr>
    <th id="name">姓名</th>
    <th id="score">成绩</th>
  </tr>
  <tr>
    <td headers="name">李四</td>
    <td headers="score">92</td>
  </tr>
</table>

3.4 全局属性

&lt;td&gt; 元素同样支持所有 HTML 全局属性,如 class、id、style、data-* 等,方便进行样式定制和数据绑定。

4. <td> 元素的默认样式与 CSS 定制

浏览器对 &lt;td&gt; 元素有一套默认样式,但通常我们会通过 CSS 对其进行定制:

css 复制代码
td {
  padding: 8px 12px;
  border: 1px solid #ddd;
  text-align: left;
  vertical-align: middle;
  background-color: #f9f9f9;
}

4.1 常用 CSS 属性

  • padding:控制单元格内边距
  • border:设置单元格边框
  • text-align:控制文本水平对齐方式
  • vertical-align:控制内容垂直对齐方式
  • background-color:设置单元格背景色
  • white-space:控制单元格内文本是否换行

5. 实际应用示例

下面是一个完整的综合示例,展示 &lt;td&gt; 元素在实际项目中的典型用法:

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>员工信息表</title>
  <style>
    table {
      border-collapse: collapse;
      width: 100%;
    }
    th, td {
      border: 1px solid #ccc;
      padding: 10px;
      text-align: center;
    }
    th {
      background-color: #4CAF50;
      color: white;
    }
    tr:nth-child(even) td {
      background-color: #f2f2f2;
    }
  </style>
</head>
<body>
  <table>
    <tr>
      <th>部门</th>
      <th>姓名</th>
      <th>职位</th>
      <th>入职年份</th>
    </tr>
    <tr>
      <td rowspan="2">技术部</td>
      <td>王小明</td>
      <td>前端工程师</td>
      <td>2021</td>
    </tr>
    <tr>
      <td>李小红</td>
      <td>后端工程师</td>
      <td>2022</td>
    </tr>
    <tr>
      <td>市场部</td>
      <td>张伟</td>
      <td>市场专员</td>
      <td>2020</td>
    </tr>
  </table>
</body>
</html>

6. 注意事项与最佳实践

6.1 语义化使用

  • 数据单元格使用 &lt;td&gt;,表头单元格使用 &lt;th&gt;,不要混用
  • 合理使用 colspan 和 rowspan 减少冗余单元格

6.2 无障碍访问

  • 为复杂表格添加 headers 属性关联表头
  • 使用 <caption> 元素为表格提供标题说明

6.3 避免嵌套表格

除非必要,尽量避免在 &lt;td&gt; 中嵌套另一个表格,这会增加页面复杂度和维护成本。

6.4 响应式处理

在移动端,宽表格可能溢出屏幕,可通过 CSS 设置 overflow-x: auto 或使用响应式表格方案:

css 复制代码
.table-wrapper {
  overflow-x: auto;
}

7. 总结

&lt;td&gt; 元素是 HTML 表格中最基础也最常用的元素之一。掌握它的属性用法、与 &lt;th&gt; 的区别以及 CSS 定制技巧,能够帮助你构建结构清晰、样式美观、无障碍友好的数据表格。在实际开发中,建议结合语义化标签和合理的样式设计,让表格既易于阅读又便于维护。

相关推荐
掘金挖土19 分钟前
前端手摸手跑路之 AI 应用开发(九)
前端·后端
中文呀3 小时前
三维 GIS 离线缓存实战:逆向 CesiumOfflineCache,并亲手为它补上"自动更新"能力
前端
前进前进前进3 小时前
TRAE 全链路实战:做了一个警示牌一键生成器:纯 Canvas、单文件、零依赖
前端
小万7424 小时前
God‘s Eye View 深度解析:15 路公开信号 + CesiumJS 的浏览器级 OSINT 控制台,60 帧渲染的“真实间谍卫星模拟器”
前端
IT星宿4 小时前
浏览器标签页全是一个图标:我用名字哈希生成 favicon,让每个项目都有身份标识
前端
全栈项目管理程序猿5 小时前
ArcGIS JS 基础教程(32):体元系列 - VoxelSlice 体元切片
前端·javascript
拖孩7 小时前
AI 帮我写的小程序「厨菜记」上线满月了,挣了两百块!!!
前端·后端·微信小程序
用户360055579007 小时前
Kestrel_VLLM - 13 · 为什么排除 MoE FFN Tiling 与 Tensor Core
前端
Hilaku7 小时前
AI 流式输出都用 SSE,什么时候必须换 WebSocket?
前端·javascript·程序员
奇牙coding7 小时前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai