我在this site导航栏中使用树叶作为项目的背景图片。所有在Chrome和Safari中看起来都很好,但在Firefox中,三个叶子在x轴上的不同位置渲染,如下图所示:
呈现在正确位置的唯一叶子是“关于我”叶子。 'home'叶子比它应该低约20px,并且'contact'叶子比5px低。我想知道是否有人能发现为什么会这样?
叶子和CSS的html如下:
HTML
<nav>
<a href="/index.html" id="home"><img class='hoverImg_normal' src='images/bodhi-leaf-brown.png'/><img class='hoverImg_highlight' src='images/bodhi-leaf-green.png'/><img class='text home' src='images/home.png'/></a>
<a href="about.html" id="about"><img class='hoverImg_normal' src='images/bodhi-leaf-brown.png'/><img class='hoverImg_highlight' src='images/bodhi-leaf-green.png'/><img class='text about' src='images/about.png'/></a>
<a href="contact.html" id="contact"><img class='hoverImg_normal' src='images/bodhi-leaf-brown.png'/><img class='hoverImg_highlight' src='images/bodhi-leaf-green.png'/><img class='text' src='images/contact.png'/></a>
</nav>
CSS
nav{
text-align:center;
height:170px;
}
nav a{
width:115px;
height:170px;
display:inline-block;
margin: 0 50px;
}
nav a>img{
width:115px;
height:170px;
}
nav a>img.hoverImg_normal{
position:relative;
left:0;
z-index:2;/*Put image behind text*/
}
nav a>img.hoverImg_highlight{
position:relative;
left:0;
top:-174px;/*5 + 1 for text*/
opacity:0;
transition: 1s;
-moz-transition: 1s; /* Firefox 4 */
-webkit-transition: 1s; /* Safari and Chrome */
-o-transition: 1s; /* Opera */
z-index:2;
}
nav a:hover>img.hoverImg_highlight{
opacity:1;
}
nav a>img.text {
position: relative;
z-index: 3;
width: auto;
height: auto;
top:-267px;
}
.about {
margin-top: 3px;
}
.home {
margin-top: 8px;
}
答案 0 :(得分:3)
有两个问题:
还有一件事:您应该为图像使用替代文字,例如:
<img class='text home' src='images/home.png' alt='home' />
答案 1 :(得分:0)
使用绝对定位而不是使用负top
值向上拉图像。很容易做到,因为你已经包含 jQuery 。下面的代码段会根据top
的{{1}}值和图片“top
来计算相应的#main
值:
height
我可能在这里或那里有一个错字,但我希望这有帮助!
答案 2 :(得分:0)
看看这个jsfiddle。这是你正在做的一个简单的版本。 (我认为)http://jsfiddle.net/sheriffderek/6HcdC/