css - 除非没有子项,否则 Mobile Safari 不会在视口(viewport)外呈现固定元素

标签 css mobile-safari

我正试图找到一个看起来像 Mobile Safari 错误的解决方法......

如果你拿一个 position: fixed 元素 height: 100vhbackground: green (称之为“抽屉”)并抛出在 Mobile Safari 中,它将在浏览器工具栏后面呈现半透明绿色(如您所料)。但是,如果“抽屉”没有文本/子项,它只会执行此操作。

当任何文本被添加到“抽屉”时,Mobile Safari 不仅会停止渲染工具栏后面的半透明绿色,而且直到工具栏隐藏动画完成后才会渲染“抽屉”的底部。显然,这看起来像垃圾,是不可取的。

如何让抽屉呈现在工具栏后面,即使它有内容?


Plunker 链接说明了问题(在 iPhone 上查看):http://plnkr.co/edit/G0mJf7H46KWhlAVJH7HN?p=preview

HTML:

<div class="drawer left">
  Drawer with contents
</div>
<div class="drawer right"></div>
<p class="lorem">Lorem ipsum…</p>

CSS:

.drawer {
  background: green;
  position: fixed;
  z-index: 1;
  top: 0;
  bottom: 0;
  width: 150px;
  min-height: 100vh;
}
.drawer.left {
  left: 0;
}
.drawer.right {
  right: 0;
}

最佳答案

我曾经遇到过类似的问题。我终于在固定元素中使用这条规则解决了它:

-webkit-transform: translate3d(0,0,0);

希望对你也有帮助。

关于css - 除非没有子项,否则 Mobile Safari 不会在视口(viewport)外呈现固定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58404417/

相关文章:

jquery - 通过单击指向 iframe 中的内部链接的链接向下滚动整个页面

html - 在隐藏内容左右的空白空间(包装器的边距)之前阻止包装器中的内容收缩

html - 艺术元素的遮光文本

html - 根据 CSS 调整图像的大小,这可能吗?

javascript - 在 MobileSafari 中点击状态栏在我的测试页面上不起作用

iphone - 自动填充移动Safari提示

javascript - 使用 CSS 将阴影应用于三 Angular 形 SVG

html - Safari Mobile iframe 内部 iframe 大小问题

safari - Whatsapp 共享链接在 safari 中不起作用

iPhone 不显示多个背景?