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 定制技巧,能够帮助你构建结构清晰、样式美观、无障碍友好的数据表格。在实际开发中,建议结合语义化标签和合理的样式设计,让表格既易于阅读又便于维护。

相关推荐
gnip1 小时前
Flutter GetX 三件套开发规范(Skill)
前端·flutter
张小姐的猫1 小时前
【AI大模型接入SDK】 —— 前端页面 & 项目总结与拓展
前端·数据结构·数据库·c++·人工智能·chatgpt
web打印社区1 小时前
远程打印:WebSocket 与 HTTP 轮询怎么选
前端·vue.js·websocket·网络协议·http·electron·pdf
吴声子夜歌2 小时前
HTML——庞杂的表单控件元素(一)
前端·html
天天喝旺仔2 小时前
浏览器渲染原理:从解析 HTML/CSS、构建渲染树到重排重绘与首屏优化
前端·javascript·css·性能优化·html
明月_清风2 小时前
前端已死?别急,这可能只是所有行业的开始
前端·ai编程
明月_清风2 小时前
干了 6 年前端,我是怎么一步步转型到 AI 的?
前端·后端·ai编程
乘风gg2 小时前
花了 100 亿 Token 后,我发现 Code is cheap 是最大的谎言
前端·ai编程·claude
IMPYLH2 小时前
HTML 的 <textarea> 元素
前端·html