嘿所有 - 我一直在谷歌搜索这个,但我做的一切似乎都没有帮助。
我一直在网站上工作(www.philipdukes.co.uk),虽然导航似乎在FF,Safari,Chrome,甚至是IE6(奇迹般地)中工作得很好,但在我的系统上,它很难在IE8:导航链接不起作用。
我将鼠标悬停在他们身上,获得翻转动画,但他们不是“可点击的”。它们是基本文本链接,在屏幕上以文本对齐,然后它们所代表的区域应该是可点击的。填充空间的图像不是链接。如果我删除图像,我可以单击该区域,如果我删除文本对齐,我可以单击链接文本(但只有链接文本)。
这让我疯狂,因为这是我在每一件事情全面运作之前需要排序的最后一件事......
导航栏的代码在这里:
<div class="navHolder">
<div class="nav current-home">
<div id="home"><img src="images/nav/home.png" alt="home." /><a href="index.html">home.</a></div>
<div id="bio"><img src="images/nav/bio.png" alt="biography." /><a href="bio.html">biography.</a></div>
<div id="media"><img src="images/nav/media.png" alt="media." /><a href="media.html">media.</a></div>
</div>
<div class="nav2 current-home">
<div id="press"><img src="images/nav/press.png" alt="press." /><a href="press.html">press.</a></div>
<div id="pdr"><img src="images/nav/pdr.png" alt="plane dukes rahman trio." /><a href="pdr.html">Plane Dukes Rahman Trio.</a></div>
<div id="contact"><img src="images/nav/contact.png" alt="contact." /><a href="contact.php">contact.</a></div>
</div>
和css样式在这里(欢迎任何优化!):
/*
*
* BEGIN NAV SECTION
*
*/
.navHolder{
position: relative;
width: 100%;
height: 100px;
margin: 0;
padding: 0;
}
.nav, .nav2 {
width: 600px;
height: 50px;
position: relative;
overflow: hidden;
margin: 0 auto;
padding: 0;
top: 0;
}
#home, #bio, #media, #press, #pdr, #contact{
position: absolute;
top: 0px;
overflow: hidden;
width: 200px;
height: 50px;
background: url(images/nav/nav-back.png) 0 0 no-repeat;
}
.nav a, .nav2 a{
position: absolute;
z-index: 100;
display: block;
top: 0px;
height: 50px;
width: 200px;
text-indent: -9000px;
}
.nav img, .nav2 img{
position: relative;
z-index: 50;
width: 200px;
height: 50px;
}
#home, #press{
left: 0;
}
#bio, #pdr{
left: 200px;
}
#media, #contact{
left: 400px;
}
.current-home #home, .current-bio #bio, .current-contact #contact, .current-press #press, .current-pdr #pdr, .current-media #media{
background-position: 0 -246px;
}
答案 0 :(得分:4)
你错过了:
.nav a, .nav2 a {
left: 0;
}
那应该解决问题。使用top
时,请始终设置垂直(bottom
或left
)和水平(right
或position:absolute
)展示位置。
<强>更新强>
无论何时设置background
,它都会按预期开始工作。通过大量测试,您可能会找到解决问题的不同方法。但这就是我要做的事情:
最好的方式:
img
代码或隐藏它们,而是将它们作为background-image
应用到a
代码中。 position
代码上的a
更改为relative
而不是absolute
,因为它们是父div
唯一可见的孩子快速方式
.nav a, .nav 2 { background: url(/images/shim.png) }
shim.png
是一个8位完全透明的,一个像素PNG。 8位PNG垫片小于相同尺寸(1像素)的GIF,一切都将按计划运行。
答案 1 :(得分:1)
为您提供给IE7的IE8提供相同的样式,然后将以下元素放在文档头中:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
这将使IE8模拟IE7。因为你对IE7没有任何问题,我认为这对你有用。
答案 2 :(得分:0)
不完全确定那里发生了什么,但似乎是链接和图像元素分层的某种问题(可能是IE8错误)。当我将z-index
.nav img, .nav2 img
更改为任何负值而不是50时,链接将变为可点击。
我不确定在这种情况下这是否是一种实际可能性,因为负z-index可能导致图像不再可见。