有没有办法在 HTML 表格中添加水平滚动条?我实际上需要它可以垂直和水平滚动,具体取决于表格的增长方式,但我无法让任一滚动条出现。
首先,做一个显示:你的桌子块
然后,将 overflow-x:
设置为 auto
。
table {
display: block;
overflow-x: auto;
white-space: nowrap;
}
干净整洁。没有多余的格式。
这是来自我网站上的一个页面的more involved examples with scrolling table captions。
如果出现有关单元格未填充整个表格的问题,请附加以下附加 CSS 代码:
table tbody {
display: table;
width: 100%;
}
white-space: nowrap;
有助于立即看到滚动条。您是否尝试过 CSS
overflow
属性?更新正如其他用户所指出的,这不足以添加滚动条。因此,请查看并支持下面的评论和答案。
display: block
,您可以。display: block
- 令人惊讶的是它会剥夺它们的语义!这会损害可访问性并使屏幕阅读器用户的生活变得困难。看这里developer.paciellogroup.com/blog/2018/03/…将表格包装在 DIV 中,设置为以下样式:
overflow:auto
是不必要的。你知道无论如何在不设置宽度的情况下实现这一点......这似乎总是 html 中的解决方案 - 硬编码一些宽度或高度,但这似乎破坏了拥有布局引擎的意义!这是对 Serge Stroobandt's 答案的改进,并且效果很好。它解决了列数较少时表格无法填满整个页面宽度的问题。
white-space: nowrap;
似乎是可选的。display: block;
为此,请使用 CSS 属性“overflow”。
简短的摘要:
例如
编辑:@WickyNilliams 注意到在表格主体上设置 display: block 会剥离语义表格,因此由于可访问性问题,这不是一个好的解决方案。
我在@Serge Stroobandt 提出的解决方案上取得了很好的成功,但我遇到了@Shevy 的问题,即单元格没有填满表格的整个宽度。我可以通过向
tbody
添加一些样式来解决此问题。这在 Mac 上的 Firefox、Chrome 和 Safari 中对我有用。
display: block
- 令人惊讶的是它会剥夺它们的语义!这会损害可访问性并使屏幕阅读器用户的生活变得困难。看这里developer.paciellogroup.com/blog/2018/03/…table tbody{...}
样式没有应用到我的垫子表...有人有类似的问题吗?我无法使上述任何解决方案起作用。但是,我发现了一个 hack:
身体{背景颜色:#ccc; } .container { 宽度:300px;背景颜色:白色; } 表 { 宽度:100%;边框折叠:折叠; } td { 边框:1px 纯黑色; } /* 尝试删除下面的“hack”,看看表格如何溢出 .body */ .hack1 { display: table;表格布局:固定;宽度:100%; } .hack2 { 显示:表格单元;溢出-x:自动;宽度:100%; }
我遇到了同样的问题。我发现了以下解决方案,该解决方案仅在 Chrome v31 中进行了测试:
table-layout: fixed
is nice.tbody {...}
样式似乎不适用于我的垫子表。知道为什么吗?将表格插入到 div 中,因此表格将占据全长
HTML
CSS
带引导程序
我根据 previous solution and it's comment 找出了这个答案,并添加了我自己的一些调整。这在响应式表上对我有用。
桌子上的“超过 100% 的宽度”真的很适合我。
.table-wrap { 宽度:100%;溢出:自动; } 表 { 表布局:固定;宽度:200%; }
使用 style="overflow-x:auto" 将标签表添加到 div 元素
这对我有用
对于它的价值,我找到的最佳答案在这里:https://github.com/filamentgroup/tablesaw/issues/58#issuecomment-63966574
我尝试了上述所有解决方案,但遇到了一些问题。
如果我们将
display: 'block'
添加到表格中,则单元格不会占据整个宽度。如果我们将它添加到表格包装器中,您的自定义表格标题(如搜索、过滤器等)也会滚动,看起来很糟糕。通过将
overflow-x: auto
添加到表格的主体包装中,我能够实现预期的行为。即使列较少,单元格也会占据全宽,并且会根据需要自动显示滚动条。
如前所述,在桌子上使用
display:block;
是不好的。我尝试了此线程中的大多数答案,但没有一个按我的意愿工作。如果您的 HTML 结构如下:并且您希望父 div 可以水平滚动,您可以尝试以下操作:
.text-left {text-align:left;} /* 忽略 */ .x-auto { overflow-x: auto; } .table { 文本对齐:左;表格布局:固定;宽度:100%;空白:nowrap; } .table tbody { 显示:表;宽度:100%; }
关注公众号
不定期副业成功案例分享
想领先一步获取最新的外包任务吗?
立即订阅相似问题
HuntsBot(狩猎机器人),一站式外包任务、远程工作、产品创意分享与订阅平台,支持钉钉、飞书、企业微信、邮箱、Telegram机器人订阅。平台会以及时、稳定、可靠的技术把外包任务需求、远程工作机会、产品创意等推送给每一位订阅的用户。
平台
支持
联系我们
在使用过程中有任何问题或建议,可以通过以下方式联系我们:
微信公众号: 火星来客
Email: huntsbot@xinbeitime.com
微信公众号
Tips