为什么我的position:sticky在iOS上不起作用?

前端之家收集整理的这篇文章主要介绍了为什么我的position:sticky在iOS上不起作用? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在编码位于移动屏幕底部的粘性通知栏.我希望将条形图停留在用户屏幕的底部,直到用户到达代码中条形图实际所在位置的滚动位置为止(该位置恰好在页面页脚之前).
我已经从以下页面复制了“医生”示例:https://alligator.io/css/position-sticky/
我的问题是:在页面上,使用Android设备或通过调整台式机上的浏览器宽度来模拟移动设备时,该栏都可以正常工作.但是,在iOS上,该条并不粘滞,即,它只是位于其位置,直到到达时才粘在屏幕底部.这适用于Safari和Google Chrome.
奇怪的是:在前面提到的alligator.io页面上,它在我的iOS设备上运行正常.

我怀疑这是某种Webkit问题,与工具栏周围的代码有关,但是我无法隔离它.我尝试通过尽可能地将代码调整到alligator.io中的示例来调试,但是我无法使其正常工作.我也尝试过在父元素中寻找任何溢出:自动-没有成功.我已经尝试修复了几个小时,对此问题感到厌倦,可以用另一双眼睛帮助我找到我所忽略的内容.

  1. <a href="#" class="jobAlertToggle">
  2. <div id="jobalarm_mobile">
  3. <i class="fa fa-bell"></i>
  4. <span>Jobalarm aktivieren</span>
  5. <label class="switch">
  6. <input type="checkBox">
  7. <span class="slider round"></span>
  8. </label>
  9. </div>
  10. </a>
  11. #jobalarm_mobile {
  12. display: table;
  13. font-size: 18px;
  14. width: 100%;
  15. height: 40px;
  16. background: #ff8400;
  17. color: white;
  18. font-weight: 400;
  19. text-align: center;
  20. position: -webkit-sticky;
  21. position: sticky;
  22. bottom: -50px;
  23. align-self: flex-end;
  24. }

您可以访问我正在处理的实时页面(应客户要求隐藏,请私下与我联系).
只需开始任何(建议的)搜索,该栏就会弹出(如果您使用的是iOS,则不会弹出…)
在此先感谢您的帮助.

最佳答案
我觉得自己回答我的问题很白痴,但我弄清楚是什么原因引起的.
我希望这将有助于开发人员面对相同的问题,因为我找不到任何定义此行为的地方.

如您所见,在我的代码中,元素周围有一个包装器(特别是链接),在该包装器上我使用了position:sticky:

  1. <a href="#" class="jobAlertToggle">
  2. <div id="jobalarm_mobile">
  3. <i class="fa fa-bell"></i>
  4. <span>Jobalarm aktivieren</span>
  5. <label class="switch">
  6. <input type="checkBox">
  7. <span class="slider round"></span>
  8. </label>
  9. </div>
  10. </a>

出于某种原因,对于台式机上的Chrome或Firefox以及Android而言,这并不是问题,因为它们似乎忽略了此容器,可能是因为该容器未定义任何定位行为.这就是为什么它可以在其他设备上运行的原因.但是,iOS不会忽略容器,因此div相对于其父容器(即链接)进行定位.删除链接以进行测试后,它可以在所有设备上使用.

猜你在找的CSS相关文章