table表格的thead固定,tbody展示出滚动条

我也是做了两次的table表格的thead固定,tbody展示出滚动条,第一次因为是存在有表头合并的原因没有做出来完好的效果,第二次是不仅有表头的合并,还有tbody中的rowspan的合并

  • 第一种:针对存在有表头合并的thead固定tbody展示滚动条

效果图:

代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
        .table {
            width: 100%;
            border-top: 1px solid #DCDFE6;
            border-right: 1px solid #DCDFE6;
            border-spacing: 0;
            /*去掉单元格间隙*/
        }
        .table tbody {
            width: 100%;
        }
        .table thead,
        tbody tr { //关键代码行--tbody滚动条展示
            display: table;
            width: 100%;
            table-layout: fixed;
        }
        .table tbody { //关键代码行--tbody滚动条展示
            display: block;
            height: 300px;
            overflow-y: scroll;
        }
        .table .borderNone {
            border-left: none;
        }
        .table>thead>tr {
            background-color: #f5f7fa;
        }
        .table td {
            word-wrap: break-word;
            font-size: 20px;
            text-align: center;
            padding: 5px 10px;
            border-bottom: 1px solid #DCDFE6;
            border-left: 1px solid #DCDFE6;
        }
    </style>
</head>

<body>
    <div class="table-container">
        <table class="table">
            <thead>
                <thead style="font-weight:bolder">
                    <tr>
                        <td rowspan="3" style="min-width: 50px;font-size:18px;">序号</td>
                        <td rowspan="3" style="min-width: 150px;font-size:18px;">补贴</td>
                        <td colspan="6" style="font-size:18px;">项目</td>
                        <td colspan="4" style="font-size:18px">占比</td>
                        <td colspan="4" style="font-size:18px">住院</td>
                    </tr>
                    <tr>
                        <td rowspan="2" style="min-width: 100px;font-size:18px;">区数</td>
                        <td rowspan="2" style="min-width: 100px;font-size:18px;">总数</td>
                        <td class="borderNone" colspan="2">&nbsp;</td>
                        <td rowspan="2" style="min-width: 100px;font-size:18px;">职数</td>
                        <td class="borderNone" colspan="1">&nbsp;</td>
                        <td rowspan="2" style="min-width: 100px;font-size:18px;">班数</td>
                        <td class="borderNone" colspan="1">&nbsp;</td>
                        <td rowspan="2" style="min-width: 100px;font-size:18px;">人员</td>
                        <td class="borderNone" colspan="1">&nbsp;</td>
                        <td rowspan="2" style="min-width: 100px;font-size:18px;">月份</td>
                        <td rowspan="2" style="min-width: 100px;font-size:18px;">项目</td>
                        <td rowspan="2" style="min-width: 100px;font-size:18px;">单位</td>
                        <td class="borderNone" colspan="1">&nbsp;</td>
                    </tr>
                    <tr>
                        <td style="min-width: 70px;font-size:18px;">金额</td>
                        <td style="min-width: 100px;font-size:18px;">人次</td>
                        <td style="min-width: 60px;font-size:18px;">占比</td>
                        <td style="min-width: 70px;font-size:18px;">住院</td>
                        <td style="min-width: 60px;font-size:18px;">补贴</td>
                        <td style="min-width: 60px;font-size:18px;">占比</td>

                    </tr>

                </thead>
            </thead>
            <tbody>
                //tr可以多复制几行看一下效果
                <tr>
                    <td>合并单元格</td>
                    <td>内容1</td>
                    <td>内容2</td>
                    <td>合并单元格</td>
                    <td>内容1</td>
                    <td>内容2</td>
                    <td>合并单元格</td>
                    <td>内容1</td>
                    <td>内容2</td>
                    <td>合并单元格</td>
                    <td>内容1</td>
                    <td>内容2</td>
                    <td>合并单元格</td>
                    <td>内容1</td>
                    <td>内容2</td>
                    <td>合并单元格</td>
                </tr>
            </tbody>
        </table>
    </div>

</body>

</html>

第一种的方法只适合tbody中没有rowspan的合并方式,如果tbody中只有colspan合并没有rowspan合并使用第一种方法就足够了,但是如果你的tbody中存在rowspan的合并,那么你就只能使用第二种方法了 

第二种:针对存在有表头合并的thead,tbody中有rowspan的合并,                  固定tbody展示滚动条

效果图:

代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
        /* 这个是控制tbody中的高度展示 */
        .table-container {
            height: 200px;
            overflow-y: auto;
        }
        table {
            width: 100%;
            table-layout: fixed;
            border-collapse: collapse;
        }
        thead {
            position: sticky;
            top: 0;
            background-color: #fff;
        }
        th, td {
            padding: 8px;
            border: 1px solid #000;
        }
    </style>
</head>

<body>
    <div class="table-container">
        <table>
            <thead>
                <tr>
                    <th>表头1</th>
                    <th>表头2</th>
                    <th>表头3</th>
                </tr>
            </thead>
            <tbody>
                //将两个tr为一组,多复制几个看看效果展示
                <tr>
                    <td rowspan="2">合并单元格</td>
                    <td>内容1</td>
                    <td>内容2</td>
                </tr>
                <tr>
                    <td>内容3</td>
                    <td>内容4</td>
                </tr>
                <tr>
                    <td rowspan="2">合并单元格</td>
                    <td>内容1</td>
                    <td>内容2</td>
                </tr>
                <tr>
                    <td>内容3</td>
                    <td>内容4</td>
                </tr>
            </tbody>
        </table>
    </div>

</body>
</html>

这种展示方式是有一点问题的,滚动条往上滚动时,thead的不管是合并的还是没合并的都边框线会消失,但是总体效果是实现的,如果比较介意这个地方,可以暂时不使用此方法

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值