有没有办法将水平滚动条添加到HTML表格?我实际上需要它可以垂直和水平滚动,这取决于表的增长方式,但我不能让滚动条出现。
答案 0 :(得分:155)
display: block
然后,将overflow-x:
设置为auto
。
table {
display: block;
overflow-x: auto;
white-space: nowrap;
}
干净整洁。没有多余的格式。
以下是我网站页面上的more involved examples with scrolling table captions。
答案 1 :(得分:63)
您是否尝试过CSS overflow
属性?
overflow: scroll; /* Scrollbar are always visible */
overflow: auto; /* Scrollbar is displayed as it's needed */
<强>更新强>
正如其他用户指出的那样,这还不够来添加滚动条
所以请在下面查看并提出评论和答案。
答案 2 :(得分:36)
将表格包裹在DIV中,使用以下样式设置:
div.wrapper {
width: 500px;
height: 500px;
overflow: auto;
}
答案 3 :(得分:16)
为此使用CSS属性“overflow”。
简短摘要:
overflow: visible|hidden|scroll|auto|initial|inherit;
e.g。
table {
display: block;
overflow: scroll;
}
答案 4 :(得分:7)
我遇到了同样的问题。我发现了以下解决方案,该解决方案仅在Chrome v31中进行了测试:
table {
table-layout: fixed;
}
tbody {
display: block;
overflow: scroll;
}
答案 5 :(得分:7)
我无法使用上述任何解决方案。但是,我发现了一个黑客:
body {
background-color: #ccc;
}
.container {
width: 300px;
background-color: white;
}
table {
width: 100%;
border-collapse: collapse;
}
td {
border: 1px solid black;
}
/* try removing the "hack" below to see how the table overflows the .body */
.hack1 {
display: table;
table-layout: fixed;
width: 100%;
}
.hack2 {
display: table-cell;
overflow-x: auto;
width: 100%;
}
<div class="container">
<div class="hack1">
<div class="hack2">
<table>
<tr>
<td>table or other arbitrary content</td>
<td>that will cause your page to stretch</td>
</tr>
<tr>
<td>uncontrollably</td>
<td>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</td>
</tr>
</table>
</div>
</div>
</div>
答案 6 :(得分:4)
这是对Serge Stroobandt's答案的改进,并且效果很好。它解决了表格的列数较少时表格无法填充整个页面宽度的问题。
<style>
.table_wrapper{
display: block;
overflow-x: auto;
white-space: nowrap;
}
</style>
<div class="table_wrapper">
<table>
...
</table>
</div>
答案 7 :(得分:3)
我在@Serge Stroobandt提出的解决方案上取得了很好的成功,但是我遇到了@Shevy单元格无法完全填满表格宽度的问题。我可以通过向tbody
添加一些样式来解决此问题。
table {
display: block;
overflow-x: auto;
white-space: nowrap;
}
table tbody {
display: table;
width: 100%;
}
这在Mac上的Firefox,Chrome和Safari中对我有用。
答案 8 :(得分:2)
我根据previous solution and it's comment得出了这个答案,并做了一些自己的调整。这在响应表上对我有用。
table {
display: inline-block;
overflow-x: auto;
white-space: nowrap;
// make fixed table width effected by overflow-x
max-width: 100%;
// hide all borders that make rows not filled with the table width
border: 0;
}
// add missing borders
table td {
border: 1px solid;
}
答案 9 :(得分:2)
将表格插入div内,以便表格占据全长
HTML
<div class="scroll">
<table> </table>
</div>
CSS
.scroll{
overflow-x: auto;
white-space: nowrap;
}
答案 10 :(得分:1)
桌子上的“宽度超过100%”确实使它很适合我。
.table-wrap {
width: 100%;
overflow: auto;
}
table {
table-layout: fixed;
width: 200%;
}
答案 11 :(得分:0)
使用引导程序
SELECT members.first_name, members.last_name, members.email FROM members
答案 12 :(得分:-2)
//Representation of table
<div class="search-table-outter">
<table class="table table-responsive search-table inner">
</table>
</div>
//Css to make Horizontal Dropdown
<style>
.search-table{table-layout: auto; margin:40px auto 0px auto; }
.search-table, td, th {
border-collapse: collapse;
}
th{padding:20px 7px; font-size:15px; color:#444;}
td{padding:5px 10px; height:35px;}
.search-table-outter { overflow-x: scroll; }
th, td { min-width: 200px; }
</style>