“从零开始的HTML 表格”——WEB开发系列09

news2025/2/27 2:40:46

HTML 表格是一种用于在网页上组织和显示信息的结构性元素,它能够将数据以行和列的形式呈现,帮助用户更清晰地理解数据关系。表格在展示统计数据、产品列表、日程安排等方面非常实用。


一、HTML 表格的基本结构

HTML 表格用 ​​<table>​​ 标签来定义,是用来展示结构化数据的一种元素。每个表格包含若干行(用 ​​<tr>​​ 标签),每行由多个单元格组成(用 ​​<td>​​ 标签)。表格还可以有标题行(用 ​​<th>​​ 标签),用于显示列的标题。

  • ​tr​​ 是 "table row" 的缩写,表示表格中的一行。
  • ​td​​ 是 "table data" 的缩写,表示表格中的数据单元格。
  • ​th​​ 是 "table header" 的缩写,表示表格中的表头单元格。

数据单元格里可以放文本、图片、列表、段落、表单、水平线,甚至其他表格。


下面是一个简单的例子,展示了一个包含姓名、年龄和职业的表格:

<table>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>职业</th>
</tr>
<tr>
<td>张三</td>
<td>30</td>
<td>软件工程师</td>
</tr>
<tr>
<td>李四</td>
<td>25</td>
<td>产品经理</td>
</tr>
</table>


二、表格边框属性

表格的边框可以增加表格的可读性,用户可以更清晰地看到数据的划分。可以通过给 ​​<table>​​ 标签添加 ​​border​​​ 属性来设置边框的宽度(以像素为单位)。

<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>职业</th>
</tr>
<tr>
<td>张三</td>
<td>30</td>
<td>软件工程师</td>
</tr>
<tr>
<td>李四</td>
<td>25</td>
<td>产品经理</td>
</tr>
</table>

解释

​border="1"​​​ 设置了 1 像素宽的边框。可以根据实际需求调整数字,增加或减少边框的厚度。


三、没有边框的表格

在某些情况下,可能希望表格没有明显的边框以呈现一种简洁的样式。我们可以将 ​​border​​​ 属性设置为 0,或者完全省略该属性。

<table border="0">
<tr>
<th>水果</th>
<th>颜色</th>
</tr>
<tr>
<td>苹果</td>
<td>红色</td>
</tr>
<tr>
<td>香蕉</td>
<td>黄色</td>
</tr>
</table>


四、表头 (Heading) 的使用

表头单元格可以使用 ​​<th>​​ 标签来定义,相比于数据单元格 ​​<td>​​​,表头单元格通常是加粗并居中的样式,因此非常适合用作列的标题。例如:

<table border="1">
<tr>
<th>产品</th>
<th>价格</th>
<th>数量</th>
</tr>
<tr>
<td>笔记本</td>
<td>15.00</td>
<td>50</td>
</tr>
<tr>
<td>鼠标</td>
<td>25.00</td>
<td>100</td>
</tr>
</table>


五、带有标题的表格

使用 ​​<caption>​​​ 标签可以为表格提供一个标题。标题可以在表格上方或下方显示,旨在帮助用户理解表格的数据内容。以下示例展示了如何为表格添加标题:

<table border="1">
<caption>产品列表</caption>
<tr>
<th>产品</th>
<th>价格</th>
</tr>
<tr>
<td>电视</td>
<td>1200.00</td>
</tr>
<tr>
<td>冰箱</td>
<td>800.00</td>
</tr>
</table>


六、跨行和跨列的表格单元格

在某些情况下,可能需要单元格跨越多行或多列。在 HTML 中,我们使用 ​​rowspan​​ 和 ​​colspan​​​ 属性来实现。

1、跨行 (rowspan)

使用 ​​rowspan​​​ 属性可以让一个单元格跨越多个行。例如:

<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>职业</th>
</tr>
<tr>
<td rowspan="2">张三</td>
<td>30</td>
<td>软件工程师</td>
</tr>
<tr>
<td>31</td>
<td>项目经理</td>
</tr>
</table>

解释

​rowspan="2"​​​ 属性让“张三”的单元格跨越了两行,因此在第二行再次显示的细节中,这个单元格不再重复。


2、跨列 (colspan)

同样地,​​colspan​​​ 属性可以让单元格跨越多个列。例如:

<table border="1">
<tr>
<th colspan="2">个人信息</th>
<th>职业</th>
</tr>
<tr>
<td>张三</td>
<td>30</td>
<td>软件工程师</td>
</tr>
</table>

解释

​colspan="2"​​​ 属性让“个人信息”的单元格跨越了两列,这通常用于合并表头信息。

七、表格内的标签

在表格单元格中,我们可以嵌套使用各种 HTML 标签,例如段落标签(​​<p>​​)、链接标签(​​<a>​​)、图像标签(​​<img>​​​)等,从而丰富表格的内容。

<table border="1">
<tr>
<th>网站</th>
<th>描述</th>
</tr>
<tr>
<td><a href="https://www.google.com">Google</a></td>
<td><p>一个强大的搜索引擎。</p></td>
</tr>
</table>

解释

在表格中使用链接标签 ​​<a>​​​,可以将某个单元格的内容变成一个可点击的链接,增强用户互动性。


八、单元格边距 (Cell padding)

​cellpadding​​​ 属性用于设置单元格内数据与单元格边框之间的空间,即单元格的内边距。这样可以提高表格的可读性。

<table border="1" cellpadding="10">
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>张三</td>
<td>30</td>
</tr>
</table>

解释

​cellpadding="10"​​​ 的作用是为每个单元格内部数据与单元格边框之间留出 10 像素的间隔,使得内容看起来更加舒适。


九、单元格间距 (Cell spacing)

​cellspacing​​​ 属性用于设置单元格之间的间距,调整单元格之间的空白距离。

<table border="1" cellspacing="5">
<tr>
<th>产品</th>
<th>价格</th>
</tr>
<tr>
<td>电视</td>
<td>1200.00</td>
</tr>
</table>

解释

​cellspacing="5"​​​ 表示在单元格之间留有 5 像素的空间,使得表格的整体视觉效果更为分明。


十、表格颜色

可以通过 CSS 来设置表格及单元格的背景颜色。这样可以提高表格的可视化效果。示例:

<table border="1" style="background-color: lightgray;">
<tr>
<th style="background-color: darkgray;">标题</th>
<td style="background-color: white;">内容</td>
</tr>
</table>


十一、嵌套表格

有时需要在表格单元格中嵌套另一个表格。这可以用于展示更复杂的数据。

<table border="1">
<tr>
<td>主表格单元格</td>
<td>
<table border="1">
<tr>
<td>嵌套表格单元格 1</td>
<td>嵌套表格单元格 2</td>
</tr>
</table>
</td>
</tr>
</table>


题目:创建一个学校课程表

请根据以下要求,使用HTML代码创建一个课程表。

课程表要求:

表格结构

  • 表格应该有 5 列:时间、周一、周二、周三、周四。
  • 表头使用 ​​<th>​​ 标签,并使用 ​​<thead>​​ 和 ​​<tbody>​​ 标签分别标识表头和表体。
  • 表格应列出“时间”在第一列,后面是每周各天的课程安排。

课程内容

  • 在“时间”列中填写:
  • 08:00 - 09:00
  • 09:00 - 10:00
  • 10:00 - 11:00
  • 11:00 - 12:00
  • 13:00 - 14:00
  • 14:00 - 15:00
  • 15:00 - 16:00
  • 各日的课程安排可以随意填写,可以使用跨行和跨列单元格(如等课程在两个时间段上课)。

样式设置

  • 给表格添加边框,使用CSS设置边框的颜色和样式。
  • 表格头部的背景颜色为浅蓝色,字体为加粗。
  • 单元格内容居中。
  • 表格应有 10 像素的内边距,单元格之间的间距为 5 像素。

表格嵌套

  • 在“周一”的某个课程单元格中,嵌套一个表格,显示该课程的教师和教室信息。

示例HTML代码模板:

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>课程表</title>
<style>
table {
border-collapse: collapse; /* 去掉单元格之间的空隙 */
width: 100%;
border: 1px solid #000; /* 表格边框 */
}
th, td {
border: 1px solid #000; /* 单元格边框 */
padding: 10px; /* 单元格内边距 */
text-align: center; /* 单元格内容居中 */
}
thead {
background-color: lightblue; /* 表头背景颜色 */
}
tbody tr {
background-color: #f9f9f9; /* 表体背景颜色 */
}
</style>
</head>
<body>

<table>
<thead>
<tr>
<th>时间</th>
<th>周一</th>
<th>周二</th>
<th>周三</th>
<th>周四</th>
</tr>
</thead>
<tbody>
<tr>
<td>08:00 - 09:00</td>
<td rowspan="2">数学</td>
<td>英语</td>
<td>物理</td>
<td>化学</td>
</tr>
<tr>
<td>09:00 - 10:00</td>
<td>美术</td>
<td colspan="2">生物</td> <!-- 跨列单元格 -->
</tr>
<tr>
<td>10:00 - 11:00</td>
<td colspan="2">历史</td> <!-- 跨列单元格 -->
<td>音乐</td>
<td rowspan="3">体育</td>
</tr>
<tr>
<td>11:00 - 12:00</td>
<td>地理</td>
<td>科学</td>
</tr>
<tr>
<td>13:00 - 14:00</td>
<td>
<!-- 嵌套表格 -->
<table style="width: 100%; border: 1px solid #aaa;">
<tr>
<td>教师:张老师</td>
</tr>
<tr>
<td>教室:101</td>
</tr>
</table>
</td>
<td>信息技术</td>
<td>体育</td>
<td>文言文</td>
</tr>
<tr>
<td>14:00 - 15:00</td>
<td>数学</td>
<td>科学</td>
<td rowspan="2">社会</td>
<td>物理</td>
</tr>
<tr>
<td>15:00 - 16:00</td>
<td>英语</td>
<td>地理</td>
</tr>
</tbody>
</table>

</body>
</html>

效果预览:

注意事项:

  • 请确保使用合理的HTML结构和CSS属性,以达到视觉上的美观和易读性。
  • 可以根据需要调整课程内容和时间。
  • 测试代码在浏览器中渲染效果,确保样式和结构符合预期。

扩展:

如上图的表格:tr 是行数,td 是单元格数,th 是标题性质的 td

确定 tr 和 td(th 同 td)的方法:

1、从上到下,最细分到几行便是几个 tr

2、如上是三种基本单元格形式。A 是基本单元格,其余的变种都是基本单元格合并而成。B 是合并上下单元格组合而成,

C 是合并左右单元格。合并后的 B 种单元格算到第二行第一个单元格中,C 种单元格算到第四行第一个单元格中(按上表

从上到下从左到右算),所以第一行 6 个 td,第二行 6 个 td,第三行 5 个 td,第四行 1 个,第五行 6 个 td,第六行 5 个 td。

合并后用 colspan 和 rowspan 来标示 B 和 C 变种单元格是横向还是纵向吃了几个单元格(算他自己)

3、第四种变种单元格是又横向又纵向合并,这个时候同时标示 rowspan 和 colspan(空格隔开)

合并后的单元格归属原则都是左上原则,即下归上,右归左,越往左上角越优先


如有表述错误及欠缺之处敬请批评指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2040777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创意无限!2024年热门视频剪辑软件精选

从专业级电影剪辑工具到简单易用的手机APP&#xff0c;再到集创意与高效于一身的桌面应用&#xff0c;各类剪辑软件如雨后春笋般涌现。本文将带你一窥2024年火热的剪辑视频的软件。 1.福昕视频剪辑 连接直达>>https://www.pdf365.cn/foxit-clip/ 这款视频编辑工具凭…

Oracle 12.2集群搭建遇到ORA-ORA-15227,ORA-15031,ORA-15018问题处理

报错&#xff1a; [FATAL] [DBT-30056] Labeling of disks failed. ORA-15227: could not perform label set/clear operation ORA-15031: disk specification /dev/asmdisk/ocr01 matches no disks [FATAL] [DBT-30002] Disk group OCR creation failed. ORA-15018: diskgrou…

用Python实现9大回归算法详解——03. 岭回归算法

1. 岭回归的基本概念与动机 1.1 为什么使用岭回归&#xff1f; 在线性回归中&#xff0c;当特征之间存在强烈的相关性&#xff08;即多重共线性&#xff09;时&#xff0c;回归系数会变得不稳定&#xff0c;导致模型在新数据上的表现很差。多重共线性会导致普通最小二乘法&am…

stm32f407新建项目工程及烧录

1、新建一个文件夹&#xff0c;打开keil5将项目工程放入文件夹中 2、弹出选择对应型号设备 3、弹出选择对应库 可以看见出现下图&#xff1a;感叹号表示有错 最后如图所示&#xff1a;点击ok就行了 4、创建对应的文件夹存放文件 4、建立main.c 5、添加对应的设置 最后写一个空白…

sp-eric靶机

端口扫描 靶机ip地址为192.168.7.46 目录扫描 访问80端口 拼接访问 /admin.php 发现登录框 测试sql注入&#xff0c;弱口令等&#xff0c;无结果 扫描目录发现了.git文件&#xff0c;存在源码泄漏 将其下载到kali上读取 python2 GitHack.py -u http://192.168.7.180/.git/…

Linux11

Linux运行级别 graphical.target图形化模式 runlevel查看运行级别 init 6自动重启 centos7单用户模式修改密码 Windows安全模式可用来删除木马&#xff0c;更为方便 单用户模式修改密码 选择第一个 按e键进入编辑模式&#xff0c;并完成以下修改&#xff08;注意&#xff0…

linux上Java生成图片中文乱码

在生成图形二维码时&#xff0c;设置底部中文导出空白乱码&#xff0c;效果如下&#xff1a; 这里服务器使用的是centos7&#xff0c;解决方案下载simsun.ttc文件&#xff0c;放入至jdk安装目录“/opt/jdk/jre/lib/fonts”中&#xff0c;具体根据自身本机jdk安装路径存放&…

ZOOKEEPER+KAFKA消息队列群集

前言 消息队列(Message Queue)&#xff0c;是分布式系统中重要的组件&#xff0c;其通用的使用场景可以简单地描述为:当不需要立即获得结果&#xff0c;但是并发量又需要进行控制的时候&#xff0c;差不多就是需要使用消息队列的时候。 消息队列 什么是消息队列 消息(Messa…

CAD二次开发IFoxCAD框架系列(19)-图层操作

1. 根据名称查询指定的图层 查看层表中是否含有名为“MyLayer”的图层。 using var tr new DBTrans();if(tr.LayerTable.Has("MyLayer")){//要执行的操作}2. 遍历图层名称 遍历图层表并打印每个图层的名字 。 using var tr new DBTrans();tr.LayerTable.GetRecor…

MySQL源码安装与MySQL基础学习

1、安装MySQL ​ 本次安装使用的是绿色硬盘版本&#xff0c;无需额外安装依赖环境&#xff0c;比较简单 修改相关配置文件&#xff1a; 设置环境变量&#xff0c;声明/宣告MySQL命令便于系统识别&#xff1a; 初始化数据库&#xff1a; 设置系统识别&#xff0c;进行操作&…

【代码随想录】数组总结篇

本博文为《代码随想录》的学习笔记&#xff0c;原文链接&#xff1a;代码随想录 数组理论基础 首先要知道数组在内存中的存储方式&#xff0c;数组时存放在连续内存空间上的相同类型数据的集合。数组可以方便地通过下标索引的方式获取到下标对应的数据。举例如下&#xff1a;…

电信优惠套餐到期会自动延续吗?这个问题你了解过吗?

电信优惠套餐到期会自动延续吗&#xff1f;看选择的套餐&#xff0c;不同的套餐情况不同。 对于电信流量卡的优惠期限&#xff0c;有以下几种情况&#xff1a; 短期套餐&#xff1a; 6个月、12个月、24个月等&#xff0c;套餐到期后会恢复原来的资费&#xff0c;不会自动延续…

分组汇总时保留不变列

Excel表格的ID列是分类&#xff0c;Value1和Value2是数值&#xff0c;ID相同时Descr 1和Descr 2保持不变。 ABCDE1IDValue 1Value 2Descr 1Descr 22112.51.8ax13112.31.1ax14111.91.6ax15123.73.5bx26123.91.5bx27132.50.2cx38132.64.1cx391324.8cx310132.71.8cx3 要求&#…

Linux Shell实例

1.查空行 答案&#xff1a; awk /^$/{print NR} file1.txt#awk:一个强大的文本分析工具&#xff0c;把文件逐行的读入&#xff0c;以空格为默认分隔符将每行切片&#xff0c;切开的部分再进行分析#处理。 #1&#xff09;基本语法 #awk [选项参数]/pattern1/{action1} /pattern…

【数据结构详解】——计数排序(动图详解)

目录 &#x1f552; 1. 计数排序 &#x1f552; 1. 计数排序 &#x1f4a1; 算法思想&#xff1a;计数排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用&#xff0c;操作步骤&#xff1a; 统计相同元素出现次数根据统计的结果将序列回收到原来的序列中 void Coun…

Windows11 WSL2 Ubuntu编译安装perf工具

在Windows 11上通过WSL2安装并编译perf工具&#xff08;Linux性能分析工具&#xff09;可以按以下步骤进行。perf工具通常与Linux内核一起发布&#xff0c;因此你需要确保你的内核版本和perf版本匹配。以下是安装和编译perf的步骤&#xff1a; 1. 更新并升级系统 首先&#x…

【算法】并查集的介绍与使用

1.并查集的概论 定义&#xff1a; 并查集是一种树型的数据结构&#xff0c;用于处理一些不相交集合的合并及查询问题&#xff08;即所谓的并、查&#xff09;。比如说&#xff0c;我们可以用并查集来判断一个森林中有几棵树、某个节点是否属于某棵树等。 主要构成&#xff1a; …

three.js的粒子和粒子系统基础知识扫盲,附案例图

绚烂的烟花、急促的雨滴、深邃的宇宙等等这些效果都可以通过three.js的粒子效果模拟出来&#xff0c;已达到以假乱真的程度了&#xff0c;本文来分享一下three.js的粒子系统&#xff0c;欢迎大家点赞评论收藏。 一、什么是粒子和粒子系统 粒子&#xff1a;可以简单理解为一个具…

JDBC1 Mysql驱动,连接数据库

JDBC 一、JDBC Java Database Connectivity&#xff1a;Java访问数据库的解决方案 JDBC定义了一套标准接口&#xff0c;即访问数据库的通用API&#xff0c; 不同的数据库厂商根据各自数据库的特点去实现这些接口。 JDBC希望用相同的方式访问不同的数据库&#xff0c;让具体的…

集成OpenFeign和Sentinel实现自定义服务降级Fallback及网关流量控制

文章目录 sentinel下载安装启动sentinel访问sentinelpmhub-gateway 整合 sentinel引入依赖YML配置文件Nacos持久化配置 启动pmhub-gateway, 查看sentinel控制台启动结果如图相关名词解释 OpenFeign和 Sentinel 集成实现自定义 fallback 服务降级 Sentinel 和 Gateway 集成实现网…