【问题标题】:webkit glitch - position fixed when body has a left value set - behaviors varywebkit 故障 - 当 body 设置了左值时位置固定 - 行为不同
【发布时间】:2014-09-26 19:21:50
【问题描述】:

我相信当在一个项目(比如导航栏)上设置position:fixed 并且bodyposition:relative; left:150px; 时,固定的项目不知道它应该做什么。

据我了解,position:fixed 是基于窗口固定的。如果这是真的,那么带有left 的正文不应影响粘性菜单的位置。

一个按钮触发body的按下,一个菜单从左边出来。关闭时,主体会滑回原位。

在 Firefox 中,这可以完美运行,因为我已经编写了代码。

在 Chrome 中,导航栏按预期向右移动,粘性菜单随之移动,但当您关闭推送菜单时,固定导航栏仍保持原位。有时将鼠标悬停在它上面可以修复它,调整窗口大小总是可以修复它。我尝试在代码中添加一个类,迫使它向左移动。总的来说,有点工作。

在 Safari 中,当您在推送菜单打开的情况下滚动时,导航栏会跳回左侧墙壁,并且不会按预期运行。

这是一个 JSFiddle 演示该问题。

有没有办法在不影响固定元素的情况下推送页面?

解决此问题需要什么?

谢谢。

【问题讨论】:

    标签: jquery cross-browser webkit position fixed


    【解决方案1】:

    嘿,

    改变:

    .cbp-spmenu-push {
        overflow-x: hidden;
        position: relative;
        left: 0;
    }
    

    到:

    .cbp-spmenu-push {
        overflow-x: hidden;
        position: absolute;
        left: 0;
    }
    

    【讨论】:

    • 这很明显,毫无疑问,修复了演示。我现在需要找出如何将它应用到我的实际站点.....将很快检查!非常感谢!
    • 没问题。我认为仅将过渡应用于“左”而不是“全部”也可能是个好主意。
    • 所以在我的实际站点中,一旦我将位置更改为绝对位置,chrome 中的溢出-x 就不起作用。所以导航不再“挂”在页面上,但是你可以左右滚动。在html 上添加overflow-x:hidden; 并没有解决任何问题。
    • 如果您忘记了我建议的最后一个修复并添加“位置:绝对;”会发生什么到html?
    • 如果你为你的'body{}'设置了'width: 100%'之类的东西,这可能会导致一些问题。
    猜你喜欢
    • 1970-01-01
    • 2011-12-12
    • 2021-05-02
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 2019-10-28
    相关资源
    最近更新 更多