html中为t-body添加滚动条问题

问题描述

clipboard.png
有这样一个表格,我想为表格内容(t-body)添加垂直滚动条,我的思路是给t-body一个固定高度,然后设置overflow,由于高度设置不起作用,所以给t-body加一个属性display:block;。然后下面是效果图:

tbody {
            display: block;
            height:  150px;
            overflow: auto;
        }

clipboard.png

此时已经出现了滚动条了,但是tbody整个和thead中的一个th对齐了,怎么做到对齐方式像第一个截图那样子。

问题出现的环境背景及自己尝试过哪些方法

如果我给thead和tbody下的tr加上如下样式:

 thead tr {
            display: table;
            width: 100%;
            table-layout: fixed;
        }
        tbody tr {
            display: table;
            width: 100%;
            table-layout: unset;
        }

出现如下效果:

clipboard.png
很显然,每一列平分了一行,但是我想要的效果是,列宽未最宽的那一列的长度,也就是第一个截图那样的样式?请问有设么方法能做到?谢谢!

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
    table {
        border-collapse: collapse
    }
    
    th, td {
        border:  1px solid salmon;
    }
    tbody {
        display: block;
        height:  150px;
        overflow: auto;
    }
    thead tr {
        display: table;
        width: 100%;
        table-layout: fixed;
    }
    tbody tr {
        display: table;
        width: 100%;
        table-layout: fixed;
    }
   tbody  tr {
       color: gray;
    }
    thead tr {
        color: darkslategrey;
    }
</style>

</head>
<body>

<table class="data">
    <thead>
        <tr>
            <th>日期</th>
            <th>方向</th>
            <th>价格</th>
            <th>委托量</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody class="current-body"> 
        <tr class="current-list">
            <td>2019-07-06 11:14:59</td>
            <td>买入</td>
            <td>1.98</td>
            <td>1</td>                            
            <td><a class="cancel-btn" oid="7134" href="#">查看详情</a></td>
        </tr> 
        <tr class="current-list">
                <td>2019-07-06 11:14:59</td>
                <td>买入</td>
                <td>1.98</td>
                <td>1</td>                            
                <td><a class="cancel-btn" oid="7134" href="#">查看详情</a></td>
            </tr> 
            <tr class="current-list">
                    <td>2019-07-06 11:14:59</td>
                    <td>买入</td>
                    <td>1.98</td>
                    <td>1</td>                            
                    <td><a class="cancel-btn" oid="7134" href="#">查看详情</a></td>
                </tr> 
                <tr class="current-list">
                        <td>2019-07-06 11:14:59</td>
                        <td>买入</td>
                        <td>1.98</td>
                        <td>1</td>                            
                        <td><a class="cancel-btn" oid="7134" href="#">查看详情</a></td>
                 </tr> 
                 <tr class="current-list">
                        <td>2019-07-06 11:14:59</td>
                        <td>买入</td>
                        <td>1.98</td>
                        <td>1</td>                            
                        <td><a class="cancel-btn" oid="7134" href="#">查看详情</a></td>
                 </tr> 
                 <tr class="current-list">
                        <td>2019-07-06 11:14:59</td>
                        <td>买入</td>
                        <td>1.98</td>
                        <td>1</td>                            
                        <td><a class="cancel-btn" oid="7134" href="#">查看详情</a></td>
                 </tr> 
                 <tr class="current-list">
                        <td>2019-07-06 11:14:59</td>
                        <td>买入</td>
                        <td>1.98</td>
                        <td>1</td>                            
                        <td><a class="cancel-btn" oid="7134" href="#">查看详情</a></td>
                 </tr> 
                 <tr class="current-list">
                        <td>2019-07-06 11:14:59</td>
                        <td>买入</td>
                        <td>1.98</td>
                        <td>1</td>                            
                        <td><a class="cancel-btn" oid="7134" href="#">查看详情</a></td>
                 </tr> 
                 <tr class="current-list">
                        <td>2019-07-06 11:14:59</td>
                        <td>买入</td>
                        <td>1.98</td>
                        <td>1</td>                            
                        <td><a class="cancel-btn" oid="7134" href="#">查看详情</a></td>
                 </tr> 
                 <tr class="current-list">
                        <td>2019-07-06 11:14:59</td>
                        <td>买入</td>
                        <td>1.98</td>
                        <td>1</td>                            
                        <td><a class="cancel-btn" oid="7134" href="#">查看详情</a></td>
                 </tr> 
    </tbody>
    <tfoot>
        <tr>
           <td colspan="5">共 100条数据</td>
        </tr>
    </tfoot>
</table>

</body>
</html>

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 6k
1 个回答

你好~我是一个刚毕业的小白,看到你的问题我也自己copy了代码在自己本机上尝试,感到这样做的确很不美观,之后我在网上找到了一个demo,它是将表头和表格主体分离开放到两个div中,这样可以比较好的分别控制各自的样式。希望对你有帮助https://www.html5tricks.com/j...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题