溢出 – 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浏览器版本。 并符合以下标准:
- 在Safari 3.0及更高版本中可用。
- 在iOS 1.0及更高版本中可用。
如果你违背了条件,那么采取以下措施:
-
应用ClearFix
.clearfix:after {visibility: hidden;}
原因 :设置溢出不会清除元素上的浮点数
要么
-
设置元素相对于根/身体级别的位置,如下所示:
body { position:relative; overflow-x:hidden; }
注意 :只应用其中之一。
感谢和欢呼
我通过在移动设备上切换到多选(隐藏可滚动div)来解决这个问题(所以没有真正的解决scheme)。 谢谢各位的帮助。
编辑:我终于明白了这一点。 基本上发生了什么事情是,当我改用多重select器之后,在使用Safari的时候,IOS设备也是奇怪的。
在进一步检查我的一个同事注意到可滚动div和multiselect(我使用的模板使用道场)dojo touch事件。 我开始环顾模板的源代码,找出为什么这些事件被附加到所有这些元素,我注意到一个名为“dojo / touch”的dojo模块。 从项目中删除此模块后,元素在Safari中正常工作。
带走的是“dojo / touch”和IOS Safari完全不兼容。