HTML 表格

html 中的表格由 <table> 标签来定义。每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义)。字母 td 即指表格数据(table data),即数据单元格的内容。一般而言,数据单元格的内容可以包含文本、图片、列表、段落、表单、水平线、表格等等。

一个简单的表格示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTML 表格示例</title>
</head>
<body>

    <table border="1">
        <tr>
            <td></td>
            <td>张三</td>
            <td>李四</td>
        </tr>
        <tr>
            <td>语文</td>
            <td>80</td>
            <td>90</td>
        </tr>
        <tr>
            <td>数学</td>
            <td>85</td>
            <td>80</td>
        </tr>
        <tr>
            <td>英语</td>
            <td>90</td>
            <td>90</td>
        </tr>
    </table>
    <hr />

</body>
</html>

上图所示就是一个简单的表格示例,没有什么特别复杂的逻辑。<table> 标签中间的内容都是表格的内容,如果要知道这个表格有多少行的话就直接看 <table>  标签中定义了几个 <tr> 标签,有几个 <tr> 标签,就证明该表格有多少行。如上图所示,该表格就有 4 行。那么要想知道表格的每一行都有多少列的话,则直接看每个 <tr> 标签内有几个 <td> 标签即可。如上图所示,该表格的每一行多有三列。也就是说,上图我们创建了一个 4 行 3 列的表格。

表格中需要展示的内容写在数据单元格的开始标签 <td> 与结束标签 </td> 中间。观察上面的代码可以发现,<table> 标签中设置了 border 属性的值。border 属性用来规定围绕表格的边框的宽度。border 属性会为每个单元格设置边框,并用边框围绕表格。如果 border 属性的值发生改变,那么只有表格周围边框的尺寸会发生变化。表格内部的边框则是 1 像素宽。可以通过设置 border="0" 或不设置此属性来显示没有边框的表格。如下图所示,可以观察一下边框为 0、1、10 时的表格的展示情况。(代码文后展示)

 

还可以通过 <th> 标签来为表格设置表头,通过 <caption> 标签为表格设置标题。一般来说浏览器会将表头加粗显示。如:

注意:<th> 标签与 <td> 标签同级,都是单元格维度的。 (代码文后展示)

一般来说,还会涉及到单元格合并的表格。那这种的话是通过在 <td> 或者 <th> 标签中设置 rowspan(合并行) 或 colspan(合并列)的属性来实现的。(代码文后展示)如:

 

该开始时说过,表格的数据单元格的内容不仅仅是简单的文字,还可能包含列表、段落,甚至表格等。(代码文后展示)如:

还有,我们可以通过 <table> 标签的 cellpadding 属性来设置单元格边距,即单元格的内容与当前单元格边框的距离,也可以通过 cellspacing 属性来设置单元格间距,即单元格与单元格之间的距离。(代码文后展示)如:

html 表格综合实践:通过引入外部 css 样式来实现较美观的表格。需要在 html 文件的头部 <head> 中使用 <link> 标签来表明引入的外部 css 样式。

 

所涉及到的完整代码为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTML 表格示例</title>
    <!-- html 引入外部样式 -->
    <link rel="stylesheet" type="text/css" href="../resource/css/tableStyle.css">
</head>
<body>

    <h3>无边框(border = 0)的表格</h3>
    <table border="0">
        <tr>
            <td></td>
            <td>张三</td>
            <td>李四</td>
        </tr>
        <tr>
            <td>语文</td>
            <td>80</td>
            <td>90</td>
        </tr>
        <tr>
            <td>数学</td>
            <td>85</td>
            <td>80</td>
        </tr>
        <tr>
            <td>英语</td>
            <td>90</td>
            <td>90</td>
        </tr>
    </table>
    <hr />

    <h3>边框为1(border = 1)的表格</h3>
    <table border="1">
        <tr>
            <td></td>
            <td>张三</td>
            <td>李四</td>
        </tr>
        <tr>
            <td>语文</td>
            <td>80</td>
            <td>90</td>
        </tr>
        <tr>
            <td>数学</td>
            <td>85</td>
            <td>80</td>
        </tr>
        <tr>
            <td>英语</td>
            <td>90</td>
            <td>90</td>
        </tr>
    </table>
    <hr />

    <h3>边框为10(border = 10)的表格</h3>
    <table border="10">
        <tr>
            <td></td>
            <td>张三</td>
            <td>李四</td>
        </tr>
        <tr>
            <td>语文</td>
            <td>80</td>
            <td>90</td>
        </tr>
        <tr>
            <td>数学</td>
            <td>85</td>
            <td>80</td>
        </tr>
        <tr>
            <td>英语</td>
            <td>90</td>
            <td>90</td>
        </tr>
    </table>
    <hr />

    <h3>带有标题和表头的表格</h3>
    <table border="2">
        <caption>学生语数外成绩表</caption>
        <tr>
            <th></th>
            <th>张三</th>
            <th>李四</th>
        </tr>
        <tr>
            <th>语文</th>
            <td>80</td>
            <td>90</td>
        </tr>
        <tr>
            <th>数学</th>
            <td>85</td>
            <td>80</td>
        </tr>
        <tr>
            <th>英语</th>
            <td>90</td>
            <td>90</td>
        </tr>
    </table>
    <hr />

    <h3>单元格合并</h3>
    <table border="2">
        <tr>
            <td>第一行第一列</td>
            <td colspan="2">合并列</td>
        </tr>
        <tr>
            <td>第二行第一列</td>
            <td>80</td>
            <td>90</td>
        </tr>
        <tr>
            <td rowspan="2">合并行</td>
            <td>80</td>
            <td>90</td>
        </tr>
        <tr>
            <td>80</td>
            <td>90</td>
        </tr>
        <tr>
            <td>第五行第一列</td>
            <td>80</td>
            <td>90</td>
        </tr>
    </table>
    <hr />

    <h3>表格内标签</h3>
    <table border="2">
        <tr>
          <td>
           <p>这是一个段落</p>
           <p>这是另一个段落</p>
          </td>
          <td>这个单元格包含一个表格:
           <table border="1">
           <tr>
             <td>A</td>
             <td>B</td>
           </tr>
           <tr>
             <td>C</td>
             <td>D</td>
           </tr>
           </table>
          </td>
        </tr>
        <tr>
          <td>这个单元格包含一个列表
           <ul>
            <li>apples</li>
            <li>bananas</li>
            <li>pineapples</li>
           </ul>
          </td>
          <td>HELLO</td>
        </tr>
    </table>
    <hr />

    <h3>设置单元格间距与边距</h3>
    <table border="2" cellpadding="10" cellspacing="10">
        <tr>
            <td></td>
            <td>张三</td>
            <td>李四</td>
        </tr>
        <tr>
            <td>语文</td>
            <td>80</td>
            <td>90</td>
        </tr>
        <tr>
            <td>数学</td>
            <td>85</td>
            <td>80</td>
        </tr>
        <tr>
            <td>英语</td>
            <td>90</td>
            <td>90</td>
        </tr>
    </table>
    <hr />


    <h2>HTML 表格综合实践</h2>
    <!-- 以表格的形式实现标题等, 设置表格居中
        该表格有两行一列, 第一行为标题, 第二行为一个时间戳标记
     -->
    <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
        <tr>
            <!-- 设置标题居中, 高度为 60, 以及使用 css 样式中 class 为 biaoti 的样式 -->
            <td align="center" class="biaoti" height="60">受理员业务统计表</td>
        </tr>
        <tr>
            <td align="right" height="25">2022-09-22</td>
        </tr>
    </table>
    <!-- 新的表格, 承接上一个表格, 设置表格居中、单元格间距为 1、单元格边距为 4、单元格背景色以及使用的样式
        上一个表格为该表格设置了标题
     -->
    <table width="100%" border="0" cellspacing="1" cellpadding="4" bgcolor="#cccccc" class="tabtop13" align="center">
        <!-- 第1行开始, 合并之后共有7列, 合并之前共有12列 -->
        <tr>
            <!-- 第1列为受理员列, 为合并行, 合并了2行2列, 使用了3个样式 -->
            <td colspan="2" class="btbg font-center titfont" rowspan="2">受理员</td>
            <!-- 第2列为受理数列, 合并了2行, 使用了3个样式, 列宽占表格总宽度的10% -->
            <td width="10%" class="btbg font-center titfont" rowspan="2">受理数</td>
            <!-- 第3列为自办数列, 合并了2行, 使用了3个样式, 列宽占表格总宽度的10% -->
            <td width="10%" class="btbg font-center titfont" rowspan="2">自办数</td>
            <!-- 第4列为直接解答数列, 合并了2行, 使用了3个样式, 列宽占表格总宽度的10% -->
            <td width="10%" class="btbg font-center titfont" rowspan="2">直接解答</td>
            <!-- 第5列为拟办意见列, 合并了2列(即第2行的第5列(同意)和第6列(比例)), 使用了3个样式 -->
            <td colspan="2" class="btbg font-center titfont">拟办意见</td>
            <!-- 第6列为返回修改列, 合并了2列, 使用了3个样式 -->
            <td colspan="2" class="btbg font-center titfont">返回修改</td>
            <!-- 第7列为工单类型列, 合并了3列, 使用了3个样式 -->
            <td colspan="3" class="btbg font-center titfont">工单类型</td>
        </tr>
        <!-- 第1行结束 -->

        <!-- 第2行开始, 为每列设置内容, 第2行与第1行为合并行 -->
        <tr>
            <!-- 从第5列开始赋值, 因为第1列、第2列、第3列和第4列已经在第一行赋过值了
                使用了3个样式, 列宽占表格总宽度的8% -->
            <td width="8%" class="btbg font-center">同意</td>
            <!-- 第6列赋值, 第5列和第6列同属于第1行的第5列(拟办意见列)
                使用了3个样式, 列宽占表格总宽度的8%
                因为第5列和第6列属于第1行第5列(拟办意见列)的合并列, 所以第1行第5列(拟办意见)列宽占表格总宽度的16%
             -->
            <td width="8%" class="btbg font-center">比例</td>

            <!-- 第7列和第8列赋值, 第7列为数量列, 第8列为比例列, 使用了3个样式, 列宽各占表格总宽度的8%
                同属于第1行第6列(返回修改列)的合并列, 所以第1行第6列列宽占表格总宽度的16% -->
            <td width="8%" class="btbg font-center">数量</td>
            <td width="8%" class="btbg font-center">比例</td>

            <!-- 第9列、第10列和第11列赋值, 第9列为建议件列, 第10列为诉求件列, 第11列为咨询件列, 
                使用了3个样式, 列宽各占表格总宽度的8%
                同属于第1行第7列(工单类型列)的合并列, 所以第1行第7列列宽占表格总宽度的24% -->
            <td width="8%" class="btbg font-center">建议件</td>
            <td width="8%" class="btbg font-center">诉求件</td>
            <td width="8%" class="btbg font-center">咨询件</td>
        </tr>
        <!-- 第2行结束 -->

        <!-- 第3行开始, 即受理组数据赋值开始 -->
        <tr>
            <!-- 第1列与第2列同属于第1行第1列的合并列(第1行第1列合并了2行2列), 所以表格第1行第1列列宽占表格总宽度的14% -->
            <!-- 第1列为受理处列, 合并了5行, 使用了3个样式, 列宽占表格总宽度的7% -->
            <td width="7%" rowspan="5" class="btbg1 font-center">受理处</td>
            <!-- 第2列为张三列, 使用了1个样式, 列宽占表格总宽度的7% -->
            <td width="7%" class="btbg2">张三</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
        </tr>
        <!-- 第3行结束 -->

        <!-- 第4行开始, 该行为第3行的合并行 -->
        <tr>
            <!-- 从第2列开始赋值, 第1列为受理处列, 在第3行已经赋值过
                该列为李四列, 使用了1个样式 -->
            <td class="btbg2">李四</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
        </tr>
        <!-- 第4行结束 -->

        <!-- 第5行开始, 该行为第3行的和并行 -->
        <tr>
            <!-- 从第2列开始赋值, 第1列为受理处列, 在第3行已经赋值过, 使用了1个样式 -->
            <td class="btbg2"></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <!-- 第5行结束 -->

        <!-- 第6行开始, 该行为第3行的合并行 -->
        <tr>
            <!-- 从第2列开始赋值, 第1列为受理处列, 在第3行已经赋值过, 使用了1个样式 -->
            <td class="btbg2"></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <!-- 第6行结束 -->

        <!-- 第7行开始, 该行为第3行的合并行 -->
        <tr>
            <!-- 从第2列(总计列)开始赋值, 第1列为受理处列, 在第3行已经赋值过, 使用了2个样式 -->
            <td class="btbg2 font-center">总计</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
        </tr>
        <!-- 第7行结束, 即受理组数据赋值结束 -->

        <!-- 第8行开始, 即话务组数据赋值开始 -->
        <tr>
            <!-- 第1列与第2列同属于第1行第1列的合并列(第1行第1列合并了2行2列), 所以表格第1行第1列列宽占表格总宽度的14% -->
            <!-- 第1列为话务组列, 合并了5行, 使用了3个样式, 列宽占表格总宽度的7% -->
            <td width="7%" rowspan="5" class="btbg1 font-center">话务组</td>
            <!-- 第2列为张三列, 使用了1个样式, 列宽占表格总宽度的7% -->
            <td width="7%" class="btbg2">张三</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <!-- 第8行结束 -->

        <!-- 第9行开始, 该行为第8行的合并行 -->
        <tr>
            <!-- 从第2列开始赋值, 第1列为话务组列, 在第8行已经赋值过, 使用了1个样式 -->
            <td class="btbg2">李四</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
            <td>10</td>
        </tr>
        <!-- 第9行结束 -->

        <!-- 第10行开始, 该行为第8行的合并行 -->
        <tr>
            <!-- 从第2列开始赋值, 第1列为话务组列, 在第8行已经赋值过, 使用了1个样式 -->
            <td class="btbg2">王五</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <!-- 第10行结束 -->

        <!-- 第11行开始, 该行为第8行的合并行 -->
        <tr>
            <!-- 从第2列开始赋值, 第1列为话务组列, 在第8行已经赋值过, 使用了1个样式 -->
            <td class="btbg2"></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <!-- 第11行结束 -->

        <!-- 第12行开始, 该行为第8行的合并行 -->
        <tr>
            <!-- 从第2列开始赋值, 第1列为话务组列, 在第8行已经赋值过, 使用了2个样式 -->
            <td class="btbg2 font-center">总计</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
            <td class="btbg2 font-center">20</td>
        </tr>
        <!-- 第12行结束, 即话务组数据赋值结束 -->
      </table>

</body>
</html>

 样式代码为:

@charset "utf-8";
/* CSS Document */
.tabtop13 {
	margin-top: 13px;
}
.tabtop13 td{
	background-color:#ffffff;
	height:25px;
	line-height:150%;
}
.font-center{ text-align:center}
.btbg{background:#e9faff !important;}
.btbg1{background:#f2fbfe !important;}
.btbg2{background:#f3f3f3 !important;}
.biaoti{
	font-family: 微软雅黑;
	font-size: 26px;
	font-weight: bold;
	border-bottom:1px dashed #CCCCCC;
	color: #255e95;
}
.titfont {
	
	font-family: 微软雅黑;
	font-size: 16px;
	font-weight: bold;
	color: #255e95;
	background: url(../images/ico3.gif) no-repeat 15px center;
	background-color:#e9faff;
}
.tabtxt2 {
	font-family: 微软雅黑;
	font-size: 14px;
	font-weight: bold;
	text-align: right;
	padding-right: 10px;
	color:#327cd1;
}
.tabtxt3 {
	font-family: 微软雅黑;
	font-size: 14px;
	padding-left: 15px;
	color: #000;
	margin-top: 10px;
	margin-bottom: 10px;
	line-height: 20px;
}

本文参考自:HTML 表格 | 菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值