是否有一种方法可以将水平滚动条添加到HTML表中?我实际上需要它是可滚动的,垂直和水平取决于表如何增长,但我不能得到任何滚动条出现。


当前回答

首先,做一个显示:块你的表

然后,将overflow-x:设置为auto。

table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
}

又好又干净。没有多余的格式。

这里有更多涉及的例子,从我的网站上的一个页面滚动表标题。

如果一个关于单元格没有填充整个表的问题,附加以下额外的CSS代码:

table tbody {
    display: table;
    width: 100%;
}

其他回答

这个答案是我根据之前的解决方案和它的评论得出的,并添加了我自己的一些调整。这在响应式桌子上很适合我。

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;
}

将表格插入到div中,这样表格就会有完整的长度

HTML

<div class="scroll">
 <table>  </table>
</div>   

CSS

.scroll{
    overflow-x: auto;
    white-space: nowrap;
}

我尝试了以上所有的解决方案,但都有一些问题。

如果我们添加display: 'block'到表格中,单元格不会占用整个宽度。 如果我们将它添加到表包装器中,你的自定义表头,如搜索,过滤器等也会滚动,这看起来很糟糕。

我能够通过将overflow-x: auto添加到表的主体包装器来实现预期的行为。

单元格采用全宽度,即使列较少,滚动条也会根据需要自动出现。

用下面的样式将表格包装成DIV:

div.wrapper {
  width: 500px;
  height: 500px;
  overflow: auto;
}

这解决方案似乎有点过头了。最简洁的方法是像这样用div来包装:

<div style="overflow-x:auto;">
  <table>
    ...
  </table>
</div>

https://www.w3schools.com/howto/howto_css_table_responsive.asp