问题 Bootstrap响应表不会在iOS设备上水平滚动


我有一个带有以下标记的表:

<div class="table-responsive"
    <table class="table table-hover"
        <!-- table data-->
    </table>
</div>

正如文档所说,我的表现在应该能够水平滚动。如果我使用chrome的设备模拟器,它确实有效。然而,当我尝试使用真正的iPhone(在这种情况下为iPhone 5s - 在iPhone 6上测试过)时,我根本无法水平滚动表格。我可以看到默认情况下在视口中显示的最后一列,我只是不能侧向滚动它。我在我的iPhone上使用chrome和safari尝试过这种行为。

我试图做的是添加 -webkit-overflow-scroll: touch 但它没有解决问题。我也试过手动添加 overflow-x: scroll 而不是默认值 auto 但没有用。

我不确定它是否重要,但我也有一个bootstrap插件 - offcanvas - by jasny bootstrap 我也不能在我的iPhone上垂直滚动那个侧边菜单。这一切都在仿真器中工作,但在真实的东西上失败了。

也许那两个人以某种方式相连。

任何帮助表示赞赏。

编辑:

我刚刚在Android手机上测试过,看起来我可以按预期水平滚动表格。但是,即使在android上,我仍然无法垂直滚动侧面菜单。我想这意味着这些问题并没有相互联系。


4265
2017-11-18 06:03


起源



答案:


我发现默认情况下 .table 元素有 max-width: 100% 和safari“尊重”这个,所以它设置宽度为100%,这意味着 .table 元素没有溢出 .table-responsive 因此导致它不可滚动。这不知何故不会影响Android手机。

修复很容易:

.table-responsive .table {
    max-width: none;
}

12
2017-11-18 18:22



Bootstrap响应表肯定适用于iPhone。我已经习惯了很多次。必须有一些其他CSS覆盖引导程序样式 - Turnip
@SexyTurnip你可能是对的。我不确定是什么原因造成的。因为它设置了max-width为none,手动解决了iPhone上的问题。我只是看看了 max-width: 100% 捆绑在引导程序中,因此它必须来自原始引导程序。也许iOS 9.1存在一些错误?我不确定发生了什么...... - kfirba
这对iphone6s plus不起作用 - Amit Shah
这也不适合我。还有其他想法吗? - kannan D.S


答案:


我发现默认情况下 .table 元素有 max-width: 100% 和safari“尊重”这个,所以它设置宽度为100%,这意味着 .table 元素没有溢出 .table-responsive 因此导致它不可滚动。这不知何故不会影响Android手机。

修复很容易:

.table-responsive .table {
    max-width: none;
}

12
2017-11-18 18:22



Bootstrap响应表肯定适用于iPhone。我已经习惯了很多次。必须有一些其他CSS覆盖引导程序样式 - Turnip
@SexyTurnip你可能是对的。我不确定是什么原因造成的。因为它设置了max-width为none,手动解决了iPhone上的问题。我只是看看了 max-width: 100% 捆绑在引导程序中,因此它必须来自原始引导程序。也许iOS 9.1存在一些错误?我不确定发生了什么...... - kfirba
这对iphone6s plus不起作用 - Amit Shah
这也不适合我。还有其他想法吗? - kannan D.S


.table-responsive .table {
    max-width: none;
    -webkit-overflow-scrolling: touch !important;
}

3
2017-08-22 07:05