3

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

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

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

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

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;
}

例子

这是有原因的吗?这是浏览器错误吗?有没有办法解决这种情况?

4

2 回答 2

5

经过一番摆弄,我的解决方案是将 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似乎不喜欢它,重新对齐它。

于 2013-04-03T05:22:39.667 回答
2

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

于 2013-06-06T12:27:49.293 回答