前端技巧——复杂表格在html当中的实现

应用场景

有时候我们的表格比较复杂,表头可能到处割裂,我们还需要写代码去完成这个样式,所以学会在原生html处理复杂的表格还是比较重要的。

下面我们来看这一张图:

我们可以看到有些表头项的规格不太一样,有1*1 2*1 1*2等多种规模,我们的任务就是用html搭建好这个样式即可

语法介绍

我们使用html5的table 标签,我们的一个表设计两个部分:表头,表内容 ,分别对应thead 和tbody标签

我们使用tr 标识一行数据,th 表示表头的一格,td表示表内容的一格,

其中表标题包含在表头中,使用caption 标签即可声明,其和tr标签同级

我们设计这样一个表,首先数有多少行,

然后将最顶上的第一行,写在第一个tr当中

然后将最顶上的第二行,写在第二个tr当中

碰到占两行的设置rowspan="2",

碰到占两列的设置colspan="2",

按照如上方法,我们就可以在html画出任何方格样式的图表了,下面是代码(注意样式哦):

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }

        th,
        td {
            border: 1px solid #000000;
            padding: 8px;
            text-align: center;
        }
    </style>
</head>

<body>
    <div id="root" style="width: 100vw;height: 100vh">
        <table>
            <thead>
                <caption style="color: red;">我是表的标题</caption>
                <tr class="oneRow">
                    <th rowspan="2">项目1</th>
                    <th rowspan="2">项目2</th>
                    <th colspan="2">项目3</th>
                    <th colspan="2">项目4</th>
                </tr>
                <tr class="oneRow">
                    <th>项目3-1</th>
                    <th>项目3-2</th>
                    <th>项目4-1</th>
                    <th>项目4-2</th>

                </tr>
            </thead>
            <tbody>
                <tr>
                    <td> 内容1 </td>
                    <td> 内容2 </td>
                    <td> 内容3 </td>
                    <td> 内容4 </td>
                    <td> 内容5 </td>
                    <td> 内容6 </td>
                </tr>
                <tr>
                    <td> 内容1 </td>
                    <td> 内容2 </td>
                    <td> 内容3 </td>
                    <td> 内容4 </td>
                    <td> 内容5 </td>
                    <td> 内容6 </td>
                </tr>
                <tr>
                    <td> 内容1 </td>
                    <td> 内容2 </td>
                    <td> 内容3 </td>
                    <td> 内容4 </td>
                    <td> 内容5 </td>
                    <td> 内容6 </td>
                </tr>
                <tr>
                    <td> 内容1 </td>
                    <td> 内容2 </td>
                    <td> 内容3 </td>
                    <td> 内容4 </td>
                    <td> 内容5 </td>
                    <td> 内容6 </td>
                </tr>
                <tr>
                    <td> 内容1 </td>
                    <td> 内容2 </td>
                    <td> 内容3 </td>
                    <td> 内容4 </td>
                    <td> 内容5 </td>
                    <td> 内容6 </td>
                </tr>

            </tbody>
        </table>
    </div>
</body>

</html>

使用插件

相关推荐
仿生狮子4 小时前
OpenAI 攻下千禧年难题之后,开发者似乎无动于衷
前端·数学·vibecoding
Lvan的前端笔记7 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习8 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194059 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风9 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn10 小时前
框架性能优化
前端
回眸&啤酒鸭12 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户693717500138412 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员12 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端
小兔子12 小时前
Python 的 GIL 与 free-threading:3.13 之后「去 GIL」走到哪一步了
前端