将水平滚动条添加到html表

时间:2011-04-04 00:57:53

标签: html css html-table scrollbar

有没有办法将水平滚动条添加到HTML表格?我实际上需要它可以垂直和水平滚动,这取决于表的增长方式,但我不能让滚动条出现。

13 个答案:

答案 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>