溢出 – y不工作在模式中的Safari浏览器

好的这里是html:

<div style="height: 200px; position: relative;" id="filterOptionsContainer"> <table id="filterOptionsTable" class="table table-striped table-hover"> </table> </div> 

基本上,我dynamic地添加行到表,我想容器滚动溢出。 首先,我试图明显的:

 #filterOptionsContainer { overflow-y: auto; } 

除了ios移动设备上的Safari之外,它在任何地方都可以正常工作。

从那时起,我花了几个小时尝试每个我能想到和阅读的样式组合,但是我无法获得标准的溢出滚动。 我得到的最接近的滚动条显示(它实际上并没有滚动)。

所有的帮助表示赞赏。 我很难相信,在Safari中无法滚动模式中的div的内容…

编辑:仍然在这个问题上。 我需要解决它。

尝试应用这个内联,或通过一个JQuery脚本

  style="overflow-y: scroll; -webkit-overflow-scrolling: touch;" 

或通过一个JQuery脚本

 $("#filterOptionsContainer").css({ "overflow-y": "scroll", "-webkit-overflow-scrolling": "touch" }); 

我没有任何IOS产品来validation这一点,但它似乎overflow: auto是一个已知的Safari错误。

尝试这个:

 #filterOptionsContainer { overflow-y: scroll; -webkit-overflow-scrolling: touch; } 

你可以设置overflow-y:hidden; 溢出自动后,并在Safari浏览器至less会应用该规则。 参考。

代码使用两个嵌套的div只显示垂直滚动条。

 <!DOCTYPE html> <html> <body> <div class="div1"> <div class="div2"> 111111<br> 222222222222222222222<br> 3333333333333333333333333333333333<br> 44444444<br> 55555555555555555555555555555<br> 6666666666666666666666666666<br> 77777777777<br> 88888888888888888888888888<br> 99999999999999999999999<br> 0000000000000000000000000000000<br> aaaaaaaaaaaaaaaaaa<br> bbbb<br> cccccccccccccccc<br> </div> </div> </body> </html> <style> .div1{ overflow:auto; width:100px; height:100px; } .div2{ overflow:hidden; width:100%; } </style> 

你可以试试这个,对我来说工作得很好

 #filterOptionsContainer { overflow: auto; overflow-y: auto; overflow-x: hidden; } 

检查您的Safari浏览器版本。 并符合以下标准:

  1. 在Safari 3.0及更高版本中可用。
  2. 在iOS 1.0及更高版本中可用。

如果你违背了条件,那么采取以下措施:

  1. 应用ClearFix

    .clearfix:after {visibility: hidden;}

原因 :设置溢出不会清除元素上的浮点数

要么

  1. 设置元素相对于根/身体级别的位置,如下所示:

    body { position:relative; overflow-x:hidden; }

注意 :只应用其中之一。

感谢和欢呼

我通过在移动设备上切换到多选(隐藏可滚动div)来解决这个问题(所以没有真正的解决scheme)。 谢谢各位的帮助。

编辑:我终于明白了这一点。 基本上发生了什么事情是,当我改用多重select器之后,在使用Safari的时候,IOS设备也是奇怪的。

在进一步检查我的一个同事注意到可滚动div和multiselect(我使用的模板使用道场)dojo touch事件。 我开始环顾模板的源代码,找出为什么这些事件被附加到所有这些元素,我注意到一个名为“dojo / touch”的dojo模块。 从项目中删除此模块后,元素在Safari中正常工作。

带走的是“dojo / touch”和IOS Safari完全不兼容。