html table 使用详解

html 里 table 是常用的数据展现方式,在此通过几个实例总结一下它的使用方法。

与 table 有关的全部标签

<table>
  <colgroup>
    <col width="60" />
    <col width="120" span="2"/>
  </colgroup>
  <caption>表格标题</caption>
  <thead>
    <tr>
      <th>表头1</th><th>表头2</th><th>表头3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>数据1</td><td>数据2</td><td>数据3</td>
    </tr>
    <tr>
      <td>表头1</td><td>表头2</td><td>表头3</td>
    </tr>
  </tbody>
</table>
  • table 标签标识一个表格,其他与表格相关的标签都应该放到 table 内
  • colgroup 标签和 col 标签配合使用来方便设置表格中每列的宽度,
    考虑到兼容性问题应该只使用 width 属性来指定列宽,用 span 属性来指定同时设置多列的宽度。可以省略该标签
  • caption 标签标识表格的标识,默认它将居中显示在表格之上。可以省略该标签
  • thead 标签用来标识表头。可以省略该标签
  • tbody 标签用来标识表格主体。可以省略该标签
  • tr 标签用来标识表格的一行,th 和 td 标签要放到 tr 内
  • th 标签标识表头单元格,默认它将加粗显示
  • td 标签用来标识单元格

跨行跨列的单元格

  <table border="1" style="border-collapse: collapse">
  <tr>
    <th>表头1</th>    
    <th colspan="2">跨两列的单元格</th>    
  </tr>
  <tr>    
    <td rowspan="2">跨两行的单元格</td>
    <td>数据2</td>
    <td>数据3</td>
  </tr>
  <tr>    
    <td>表头2</td>
    <td>表头3</td>
  </tr>
  </table>
  • 设置单元格的 colspan 属性,让它跨列
  • 设置单元格的 rowspan 属性,让它跨行

列宽控制和自动换行

<table style="width: 600px; table-layout: fixed; word-wrap: break-word;">
  <colgroup>
    <col width="60" />
    <col width="120" span="2"/>
  </colgroup>    
  <tr>
    <th>表头1</th><th>表头2</th><th>表头3</th>
  </tr>
  <tr>
    <td>数据111111111111111111111111111111111111</td><td>数据2</td><td>数据3</td>
  </tr>
  <tr>
    <td>表头1</td><td>表头2</td><td>表头3</td>
  </tr>
</table>
  • 默认情况下 table 每列的实际宽度根据 table 的总宽度,每列内容的长度和列单元格宽度自动计算得出
  • 若要固定列的宽度,给 table 加上table-layout: fixed,则列的实际宽度只与 table 宽度和列宽有关,与列的内容无关
  • 给 table 加上word-wrap: break-word可以实现固定宽度下列内容的自动换行

边框

<table border="1" style="border-collapse: collapse">
  <tr>
    <th>表头1</th><th>表头2</th><th>表头3</th>
  </tr>
  <tr>
    <td>数据1</td><td>数据2</td><td>数据3</td>
  </tr>
  <tr>
    <td>表头1</td><td>表头2</td><td>表头3</td>
  </tr>
</table>
  • 默认情况下 table 没有边框
  • 为 table 设置 border 属性显示边框
  • 默认情况下单元格的边框之间有间距比较难看,为 table 设置样式 border-collapse: collapse 去除边框间距

单元格样式

<style>
  .mytable {width: 600px; border-collapse: collapse;}
  .mytable td, .mytable th {padding: 5px;}
  .mytable tr td:first-child, .mytable tr th:first-child {height: 100px; text-align: right; vertical-align: bottom;}
</style>

<table class="mytable" border="1">
  <tr>
    <th>表头1</th><th>表头2</th><th>表头3</th>
  </tr>
  <tr>
    <td>数据1</td><td>数据2222222222222222222222222222</td><td>数据3</td>
  </tr>
  <tr>
    <td>表头1</td><td>表头2</td><td>表头3</td>
  </tr>
</table>
  • 默认单元格是水平居左,垂直居中对齐
  • 通过设置 td, th 的样式来设置单元格内边距,背景色,水平和垂直对齐方式等
HTML 表格是一种用于在网页上呈现数据的标准方式。表格由行和列组成,其中每个单元格都可以包含文本、图像或其他内容。在这里,我将向你介绍 HTML 表格的基础知识和一些常见的用法。 1. 创建表格 要创建 HTML 表格,你需要使用`<table>`标签。`<table>`标签定义了表格的开始和结束,而其内部则包含一个或多个`<tr>`标签,表示表格的行。每个`<tr>`标签内部包含一个或多个`<td>`标签,表示表格的单元格。 下面是一个简单的例子: ```html <table> <tr> <td>单元格 1</td> <td>单元格 2</td> </tr> <tr> <td>单元格 3</td> <td>单元格 4</td> </tr> </table> ``` 这个例子创建了一个包含两行两列的表格,每个单元格中包含一些文本。在浏览器中查看这个 HTML 代码,你会看到一个简单的表格。 2. 合并单元格 有时候,你可能需要将多个单元格合并成一个单元格,以便呈现更复杂的数据。这可以通过使用`colspan`和`rowspan`属性来实现。 `colspan`属性指定要合并的列数,而`rowspan`属性指定要合并的行数。例如,如果你想将一个单元格合并到下一个单元格中,可以使用以下代码: ```html <table> <tr> <td>单元格 1</td> <td colspan="2">单元格 2 和 3</td> </tr> <tr> <td>单元格 4</td> <td>单元格 5</td> <td>单元格 6</td> </tr> </table> ``` 在这个例子中,第一行的第二个单元格和第三个单元格被合并成一个单元格。这个单元格跨越了两个列。 3. 设置表格样式 你可以使用 CSS 来为 HTML 表格设置样式。例如,你可以设置表格的边框、背景颜色、文本对齐方式等。 以下是一个简单的 CSS 代码,用于设置表格的样式: ```css table { border-collapse: collapse; width: 100%; } th, td { text-align: left; padding: 8px; } th { background-color: #f2f2f2; color: #333; } ``` 这个 CSS 代码设置了表格的边框合并、宽度、单元格内边距、文本对齐方式和表头的背景颜色。 4. 添加表头 在 HTML 表格中,你可以使用`<th>`标签来定义表头。表头通常用于显示每列的标题,并且会默认居中显示。 以下是一个带有表头的例子: ```html <table> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> <tr> <td>小明</td> <td>18</td> <td>男</td> </tr> <tr> <td>小红</td> <td>20</td> <td>女</td> </tr> </table> ``` 在这个例子中,第一行使用`<th>`标签定义了表头。表头的内容会默认居中显示,并且会呈现粗体字体。 5. 排序表格 HTML 表格还支持通过点击表头来对表格中的数据进行排序。要实现这个功能,你需要使用 JavaScript。 以下是一个基本的 JavaScript 代码,用于对表格中的数据进行排序: ```javascript function sortTable(n) { var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0; table = document.getElementById("myTable"); switching = true; dir = "asc"; while (switching) { switching = false; rows = table.getElementsByTagName("tr"); for (i = 1; i < (rows.length - 1); i++) { shouldSwitch = false; x = rows[i].getElementsByTagName("td")[n]; y = rows[i + 1].getElementsByTagName("td")[n]; if (dir == "asc") { if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { shouldSwitch= true; break; } } else if (dir == "desc") { if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) { shouldSwitch= true; break; } } } if (shouldSwitch) { rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); switching = true; switchcount ++; } else { if (switchcount == 0 && dir == "asc") { dir = "desc"; switching = true; } } } } ``` 这个 JavaScript 代码会为表格添加一个排序功能。你可以通过点击表头来对表格中的数据进行排序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值