【发布时间】:2019-01-21 05:31:57
【问题描述】:
我想创建具有固定标题和自动表格宽度的垂直和水平滚动的表格。但这很难实现,这就是我尝试使用 div 来实现这一点的原因。我为此编写了以下代码。 My code
body {
background: #20262E;
padding: 20px;
color:#fff;
font-family: Helvetica;
}
.tableContainer{
border:1px solid #fff;
}
.tableheader{
font-weight:bold;
border-bottom:1px solid #fff;
position:relative;
}
.tableBody{
max-height:150px;
overflow-y:auto;
padding-top:63px;
}
.tableheader .tablerow{
display:table;
background: red;
width: 100%;
position:absolute;
}
.tableheader .tablerow > div{
padding:5px;
display:table-cell;
border-right:1px solid #fff;
}
.tableBody .tablerow{
display:table;
}
.tableBody .tablerow > div{
padding:5px;
border-right:1px solid #fff;
display:table-cell;
}
<div class="tableContainer">
<div class="tableheader">
<div class="tablerow">
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
</div>
</div>
<div class="tableBody">
<div class="tablerow">
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
</div>
<div class="tablerow">
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
</div>
<div class="tablerow">
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
</div>
<div class="tablerow">
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
</div>
<div class="tablerow">
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
</div>
<div class="tablerow">
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
</div>
<div class="tablerow">
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
</div>
<div class="tablerow">
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
</div>
<div class="tablerow">
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum dolor sit amet
</div>
<div>
Suspendisse ipsum diam, sollicitudin a tincidunt ac
</div>
<div>
Lorem ipsum
</div>
</div>
</div>
</div>
.tableContainer{ 边框:1px 实心#fff;
}
.tableheader{
font-weight:bold;
border-bottom:1px solid #fff;
position:relative;
}
.tableBody{
max-height:150px;
overflow-y:auto;
padding-top:63px;
}
.tableheader .tablerow{
display:table;
background: red;
width: 100%;
position:absolute;
}
.tableheader .tablerow > div{
padding:5px;
display:table-cell;
border-right:1px solid #fff;
}
.tableBody .tablerow{
display:table;
}
.tableBody .tablerow > div{
padding:5px;
border-right:1px solid #fff;
display:table-cell;
}
现在我面临水平滚动和列宽的问题。
或者
这是我的另一个代码second code。在这段代码中,我遇到了水平滚动的问题。
请帮我解决这个问题。
【问题讨论】:
-
我一直觉得这很难做好,你可以看看使用 Datatables 一个用于表格的 Jquery 插件。它带有很多这样的功能,并且可以非常灵活。 datatables.net
-
Datatable 没有提供像 excel 这样的过滤器,这就是为什么我实现了简单的 HTML 表格但面临滚动问题。
标签: jquery html css scroll css-tables