HTML 表格学习指南 - 打造精美且高效的数据展示方式

news/2024/10/30 9:29:32/

引言

HTML 表格是一种常见且重要的网页元素,它能够以结构化的方式展示数据、信息和内容。在本详细指南中,我们将深入学习 HTML 表格的创建方法,包括表格的基本结构、样式设计、合并单元格、排序功能及无障碍访问性等,帮助你打造精美且高效的数据展示方式。

目录

  1. HTML 表格基础
    • 表格的基本结构
    • 添加表头和单元格
  2. 表格样式设计
    • 修改表格样式
    • 改变表格边框、颜色和间距
    • 添加背景颜色和边框效果
  3. 表格合并单元格
    • 合并行或列
    • 跨越多行或多列合并单元格
  4. 表格排序功能
    • 利用 JavaScript 实现表格排序
  5. 表格的无障碍访问性
    • 添加适当的语义信息
    • 使用 ARIA 属性提升无障碍性

1. HTML 表格基础

HTML 表格的基本结构由 <table> 元素开始,然后使用 <tr> 元素表示表格的行,再在行中使用 <th> 元素定义表头单元格,使用 <td> 元素定义数据单元格。

1.1 表格的基本结构

基本结构示例:

<table><tr><th>表头1</th><th>表头2</th><th>表头3</th></tr><tr><td>数据1</td><td>数据2</td><td>数据3</td></tr><tr><td>数据4</td><td>数据5</td><td>数据6</td></tr>
</table>

1.2 添加表头和单元格

使用 <th> 元素定义表格的表头单元格,使用 <td> 元素定义数据单元格。

表头和单元格示例:

<table><tr><th>姓名</th><th>年龄</th><th>性别</th></tr><tr><td>张三</td><td>25</td><td></td></tr><tr><td>李四</td><td>30</td><td></td></tr>
</table>

2. 表格样式设计

通过 CSS 可以对表格进行样式设计,包括修改表格样式、改变表格的边框、颜色和间距,以及添加背景颜色和边框效果。

2.1 修改表格样式

修改表格样式示例:

table {border-collapse: collapse; /* 合并边框 */width: 100%; /* 表格宽度占满父容器 */
}th, td {padding: 10px; /* 设置单元格内边距 */
}

2.2 改变表格边框、颜色和间距

改变表格边框、颜色和间距示例:

table {border: 2px solid #ddd; /* 表格边框 */border-spacing: 0; /* 单元格间距 */
}

2.3 添加背景颜色和边框效果

可以使用 CSS 的背景颜色和边框效果来增加表格的可读性和美观度,例如:

th {background-color: #f2f2f2; /* 表头背景色 */border-bottom: 2px solid #ddd; /* 表头下边框 */
}td:hover {background-color: #ddd; /* 鼠标悬停背景色 */
}tr:nth-child(even) td {background-color: #f2f2f2; /* 奇数行背景色 */
}

3. 表格合并单元格

在 HTML 表格中,有时候需要合并单元格以方便查看数据。我们可以使用 rowspancolspan 属性来实现合并单元格的功能。

3.1 合并行或列

使用 rowspan 属性来合并单元格,例如:

<table><tr><th rowspan="2">姓名</th><th>年龄</th><th>性别</th></tr><tr><td>25</td><td></td></tr><tr><td>李四</td><td>30</td><td></td></tr>
</table>

rowspan="2" 表示要将单元格合并为两行。

3.2 跨越多行或多列合并单元格

使用 rowspancolspan 属性来合并多个单元格,例如:

<table><tr><th rowspan="2">姓名</th><th colspan="2">个人信息</th></tr><tr><td>年龄</td><td>性别</td></tr><tr><td>张三</td><td>25</td><td></td></tr><tr><td>李四</td><td>30</td><td></td></tr>
</table>

rowspan="2" 表示跨越两行单元格,colspan="2" 表示跨越两列单元格。

4. 表格排序功能

在 HTML 表格中,我们可以使用 JavaScript 实现简单的表格排序功能。

4.1 利用 JavaScript 实现表格排序

我们可以使用 JavaScript 来实现表格排序功能,例如:

<table id="myTable"><tr><th onclick="sortTable(0)">姓名</th><th onclick="sortTable(1)">年龄</th><th onclick="sortTable(2)">性别</th></tr><tr><td>张三</td><td>25</td><td></td></tr><tr><td>李四</td><td>30</td><td></td></tr>
</table><script>
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.rows;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;}}}
}
</script>

该代码使用了一个排序算法,根据点击的表头进行排序,支持升序和降序排序。

5. 表格的无障碍访问性

为了提升无障碍访问性,我们需要为 HTML 表格添加适当的语义信息和 ARIA 属性。

5.1 添加适当的语义信息

可以使用 caption 元素来为表格添加标题、thead 元素来表示表格的表头、tbody 元素来表示表格的主体部分、tfoot 元素来表示表格的页脚部分等。

适当语义信息示例:

<table><caption>学生信息表</caption><thead><tr><th>姓名</th><th>年龄</th><th>性别</th></tr></thead><tbody><tr><td>张三</td><td>25</td><td></td></tr><tr><td>李四</td><td>30</td><td></td></tr></tbody><tfoot><tr><td colspan="3">共 2 个学生</td></tr></tfoot>
</table>

5.2 使用 ARIA 属性提升无障碍性

可以使用 ARIA 属性来为表格添加无障碍访问功能,例如:

<table role="table" aria-label="学生信息表"><caption>学生信息表</caption><thead><tr role="row"><th role="columnheader">姓名</th><th role="columnheader">年龄</th><th role="columnheader">性别</th></tr></thead><tbody><tr role="row"><td role="cell">张三</td><td role="cell">25</td><td role="cell"></td></tr><tr role="row"><td role="cell">李四</td><td role="cell">30</td><td role="cell"></td></tr></tbody><tfoot><tr role="row"><td role="cell" colspan="3">共 2 个学生</td></tr></tfoot>
</table>

该代码为表格添加了 rolearia-label 属性来提高无障碍用户的访问性。


http://www.ppmy.cn/news/460273.html

相关文章

【libdatachannel】Transport的设计实现

作为ice传输实现的基类 具有实际的作用。 D:\XTRANS\thunderbolt\ayame\ZHB_LIB_DATACHANNEL\src\impl\transport.cpp 最重要的是封装了对impl的调用 Transport 比较牛,抽象了传输的基础能力 发送(调用ice接口发送) send(message_ptr message);接收(通过ice收到后使用回调方…

java自行车DH32,中国国际自行车嘉年华之Enduro、DH装备篇

短短三天中国国际自行车嘉年华已经完美落下帷幕&#xff0c;展位之多令人眼花缭乱&#xff0c;相信许多车友依然意犹未尽&#xff0c;作为一个资深软尾玩家&#xff0c;除了欣赏美丽的单车宝贝、精彩刺激的比赛之外&#xff0c;最能吸引小编眼球当然要数AM和DH相关零配件和人身…

月入过万到底还配不配骑自行车?

自行车可能是2022年通胀率最高的东西了。 夜幕降临&#xff0c;北京繁忙的交通路口&#xff0c;身着紧身骑行服&#xff0c;踏着锁鞋的公路车大佬&#xff0c;排在车流的最前列&#xff0c;绿灯亮起&#xff0c;第一个冲了出去&#xff0c;将身后的电动车瞬间甩开了很远。 这是…

2020第三届进博会球第一自行车品牌辐轮王耐克迪卡侬火爆首秀

中国在全世界首创进口博览会&#xff0c;主动向全世界开放市场。每一届展会都吸引了包括众多世界500强在内的大牌企业蜂拥而至。进博会可以说是为全球优秀企业充分展示自我提供了一个高端的平台&#xff0c;其举办之时就是这些优秀品牌的一场年度盛会。 于2020年11月开幕的中国…

618运动装备推荐、运动必备好物清单

618电商节又要来啦&#xff0c;是不是又准备犒劳一下拼命打工的自己&#xff1f;相信很多朋友们就等着618大促一键清空了早早挑选好的购物车了&#xff0c;但如果你还没想好买什么&#xff0c;又正好准备选购运动装备&#xff0c;下面我就日常健身运动需要的一些必买的运动装备…

长途骑行装备

转帖&#xff1a;http://bbs.bikehome.net/diz/thread-1545-1-9.html 长途骑行装备 (穷人版) 注&#xff1a;我非常业余&#xff0c;骑过最好的车子也才700元&#xff0c;对自行车行家们的术语几乎一无所知&#xff0c;所以本文只适合那些贫穷的只能享受风光和骑行的自称为“民…

自行车中长距离骑行知识讲座

介绍 所谓中长距离骑行&#xff0c;一般来说&#xff0c;即&#xff1a;500---1500公里路程或一星期左右的骑行为中等距离骑行&#xff1b;1500公里或一星期以上的骑行称为长距离骑行。 主要内容&#xff1a; *自行车中长距离骑行的目的、意义&#xff1b; *骑行的装备&#…

自行车总结

----变速器&#xff1a; 不过我还是推荐尽量用有变速器的山地车&#xff0c;一般路线总会遇到山坡&#xff0c;变速器会给你节省很多体力和时间&#xff0c;其他部件可以差点&#xff0c;变速器是第一考虑的东西&#xff0c;当然最好是喜玛诺了&#xff0c;这东西确实非常结实。…