【问题标题】:CSS fixed position movement under scrollbar in FirefoxFirefox中滚动条下的CSS固定位置移动
【发布时间】:2016-01-08 08:23:56
【问题描述】:

在 Firefox(版本 19.0.2)中,当使用 position: fixed 将元素定位到页面右侧时,该元素相对于窗口滚动条右侧的窗口视口定位。

但是,当我们更改定位值时,在悬停时,元素相对于窗口视口定位,不包括窗口滚动条。

在以下示例中,这会导致元素从滚动条右侧移动到悬停时滚动条下方。

我已将问题隔离开来查看它不是由在bodyhtml 或其他任何东西上设置的任何其他 css 设置引起的,但我找不到此问题的原因。

HTML

<a href="#Top" id="ScrollToTop">Top</a>

CSS

#ScrollToTop {
    position: fixed;
    right: 0px;
    bottom: -10px;
    width: 50px;
    height: 50px;
    background: #ffffff;
    color: #000000;
}
#ScrollToTop:hover {
    bottom: 0;
}

Example

发生这种情况是否有原因?这是浏览器错误吗?有没有办法解决这个问题?

【问题讨论】:

    标签: css firefox


    【解决方案1】:

    经过一番摆弄,我的解决方案是将 ScrollToTop 锚点放在另一个固定位置的 div 中。

    HTML

    <div id="ScrollToTopHolder"><a href="#Top" id="ScrollToTop">Top</a></div>
    

    CSS

    body {
        height: 2000px;
        background: #990000;
    }
    #ScrollToTopHolder {
        position: fixed;
        width:100%;
        bottom:0px;
    }
    #ScrollToTop {
        position: absolute;
        right: 0px;
        bottom: -10px;
        width: 50px;
        height: 50px;
        line-height: 50px;
        background: #fff;
        color: #000;
        text-transform: uppercase;
        text-decoration: none;
        text-align: center;
        font-size: 15px;
        font-weight: bold;
        z-index: 1000;
        border: solid 1px #000;
        border-bottom: none;
        border-radius: 10px 10px 0 0;
        transition: all 0.4s;
    }
    #ScrollToTop:hover {
        bottom: 0px;
    }
    

    JSFiddle

    似乎是Firefox不喜欢你移动固定的锚点位置,重新对齐它。

    【讨论】:

    • 刚刚在网站上遇到了类似的问题。从 v19 开始,它只发生在 Firefox 中。
    • 什么垃圾浏览器 ;)
    【解决方案2】:

    找到了另一种解决方法,使用 min-width 代替 width 作为固定位置 div:https://stackoverflow.com/a/15705522/980692

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 2016-11-05
      • 2013-01-21
      • 2019-04-25
      • 2012-12-25
      相关资源
      最近更新 更多