在Firefox(版本19.0.2)中,使用position: fixed
将元素定位到页面右侧时,元素相对于窗口滚动条右侧的窗口视口定位。
但是,在我们更改定位值时悬停时,元素相对于不包括窗口滚动条的窗口视口定位。
在以下示例中,这会导致元素从滚动条的右侧移动到悬停时滚动条的下方。
我已将问题隔离,以确定它不是由body
,html
或其他任何设置上设置的任何其他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;
}
这是否有原因发生?这是一个浏览器错误吗?有办法解决这个问题吗?
答案 0 :(得分: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;
}
当您移动固定锚位置,重新对齐它时,Firefox似乎不喜欢它。
答案 1 :(得分:2)
找到了另一种解决方法,使用min-width代替宽度为固定位置div:https://stackoverflow.com/a/15705522/980692