是否有一种方法可以将水平滚动条添加到HTML表中?我实际上需要它是可滚动的,垂直和水平取决于表如何增长,但我不能得到任何滚动条出现。
当前回答
我也遇到了同样的问题。我发现了下面的解决方案,它只在Chrome v31中测试过:
table {
table-layout: fixed;
}
tbody {
display: block;
overflow: scroll;
}
其他回答
我尝试了以上所有的解决方案,但都有一些问题。
如果我们添加display: 'block'到表格中,单元格不会占用整个宽度。 如果我们将它添加到表包装器中,你的自定义表头,如搜索,过滤器等也会滚动,这看起来很糟糕。
我能够通过将overflow-x: auto添加到表的主体包装器来实现预期的行为。
单元格采用全宽度,即使列较少,滚动条也会根据需要自动出现。
//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>
首先,做一个显示:块你的表
然后,将overflow-x:设置为auto。
table {
display: block;
overflow-x: auto;
white-space: nowrap;
}
又好又干净。没有多余的格式。
这里有更多涉及的例子,从我的网站上的一个页面滚动表标题。
如果一个关于单元格没有填充整个表的问题,附加以下额外的CSS代码:
table tbody {
display: table;
width: 100%;
}
将表格插入到div中,这样表格就会有完整的长度
HTML
<div class="scroll">
<table> </table>
</div>
CSS
.scroll{
overflow-x: auto;
white-space: nowrap;
}
Edit: @WickyNilliams注意到,在表体上设置display: block将剥夺表的语义,因此由于可访问性问题,这不是一个很好的解决方案。
我对@Serge Stroobandt提出的解决方案取得了很好的成功,但我遇到了@Shevy的问题,这些单元格没有填满表的全宽度。我能够通过向tbody添加一些样式来修复这个问题。
table {
display: block;
overflow-x: auto;
white-space: nowrap;
}
table tbody {
display: table;
width: 100%;
}
我在Mac上的火狐、Chrome和Safari浏览器上都能使用这种方法。
推荐文章
- 向HTML表中添加水平滚动条
- 在notepad++中格式化代码
- 表单中包含表单,可以吗?
- 如何创建表只使用<div>标签和Css
- html5 - canvas元素-多层
- 如何确保<select>表单字段被禁用时提交?
- 如何在HTML文本换行?
- 如何在JavaScript中转义单引号(')?
- Chrome开发工具:如何找出什么是覆盖CSS规则?
- 如何使用HTML/CSS在文本中插入空格/制表符
- 用背景图像填充SVG路径元素
- 将JSON显示为HTML
- HTML被认为是一种编程语言吗?
- 如何修复favicon.ico错误:“Failed to load resource: net::ERR_EMPTY_RESPONSE”
- 大Glyphicons