我创建了一个包含3个标题的表,功能应该是标题将保持在顶部,而内容/数据将在下面滚动,因为它将由服务器填充我的问题在于标题上的对齐和相应的数据。因为我正在使用显示:内联阻止或阻止标题并且数据没有对齐在一起我试图通过添加一些填充来手动执行它但另一个问题在于响应性我调整视图端口大小时的标题,更改无法正确对齐。以下是我正在使用的代码示例
Jsfiddle Link :https://jsfiddle.net/pynechan/5bxm9n0p/
table {
width:100%
}
tbody {
border:1px solid red;
height:300px;
overflow:auto;
display:inline-block;
}
thead {
background-color:#0c0;
color:#fff;
}

<h2>Header fixed</h2>
<br/>
<br/>
<table>
<thead><tr><th>HEADER</th><th>HEADER 2</th><th>HEADER 3</th></tr></thead>
<tbody>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
</tbody>
</table>
&#13;
答案 0 :(得分:0)
删除display
中的tbody
属性可解决此问题。
tbody {
border: 1px solid red;
height: 300px;
overflow: auto;
}
答案 1 :(得分:0)
继承人我想出的
table {
width:100%
}
tbody {
border:1px solid red;
height:300px;
overflow:auto;
display:block;
}
thead {
background-color:#0c0;
color:#fff;
display: block;
}
&#13;
<h2>Header fixed</h2>
<br/>
<br/>
<table>
<thead><tr><th>HEADER</th><th>HEADER 2</th><th>HEADER 3</th></tr></thead>
<tbody>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
<tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
</tbody>
</table>
&#13;
答案 2 :(得分:0)
你能试试下面的吗?标题将是静态的,而表内容滚动保持标题以静态方式。
table {
max-width:980px;
table-layout:fixed;
margin:auto;
}
th, td {
padding:5px 10px;
border:1px solid #000;
}
thead, tfoot {
background:#f9f9f9;
display:table;
width:100%;
width:calc(100% - 18px);
}
tbody {
height:300px;
overflow:auto;
overflow-x:hidden;
display:block;
width:100%;
}
tbody tr {
display:table;
width:100%;
table-layout:fixed;
}
&#13;
<table>
<thead>
<tr>
<th scope="col">Header 1</th>
<th scope="col">Header 2</th>
<th scope="col">Header 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
</tr>
<tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
</tr>
<tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
</tr>
<tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
</tr>
<tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
</tr>
<tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
</tr>
<tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
</tr>
<tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
</tr>
<tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
</tr>
<tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
</tr>
</table>
&#13;
答案 3 :(得分:0)
To scroll tbody, change it to block level element i.e. display:block;
To keep behavior of table, change it to table i.e. display: table;
Finally use table-layout:fixed to spray evenly the cells
Here is what i changed:
tbody {
display:block;
max-height:160px;
overflow-y:scroll;
}
thead, tbody tr {
display:table;
width:100%;
table-layout:fixed;
}