2009-12-03 83 views
3

嘿所有 - 我一直在儘可能地使用谷歌搜索,但我做的似乎沒有幫助。IE8 - 導航鏈接不工作

我一直在一個網站上工作(www.philipdukes.co.uk),雖然導航似乎在FF,Safari瀏覽器,鉻,甚至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樣式是此處(here任何優化也歡迎!):

/* 
* 
* 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

@ sheam89,你得到它的工作? – 2009-12-03 21:05:16

+0

當我在我最新的項目上做一些類似手風琴的導航時,我偶然發現了同樣的問題。這就是這樣的痛苦:/我不能切換到背景圖像,因爲我使用img來拉伸背景漸變。 – 2010-04-21 14:39:49

回答

4

你缺少:

.nav a, .nav2 a { 
    left: 0; 
} 

這應該解決問題。當使用position:absolute時,始終設置垂直(topbottom水平(leftright)放置。

UPDATE

任何時候,background設置,它開始按預期工作。通過大量測試,您可能會找到解決問題的不同方法。但是,這是我會做什麼:

BEST WAY

  1. 要麼擺脫img標籤或隱藏起來,而是運用其作爲background-imagea標籤。
  2. 變化對a標籤positionrelative而不是absolute,因爲它們將是父div

快速的方法

.nav a, .nav 2 { background: url(/images/shim.png) } 

的唯一可見的孩子在哪裏shim.png是8-位全透明,一個像素PNG。 8位PNG墊片比相同尺寸(1像素)的gif小,並且所有東西仍然按計劃工作。

+0

這是不是唯一的問題,還是找... – 2009-12-03 18:51:29

+0

好了,有兩個現在建議的解決方案。兩者都可以工作,我使用開發工具在IE8中測試的第二個。 – 2009-12-03 19:01:51

+1

太棒了,謝謝dcneiner:我現在用快速的方式,直到我可以玩弄更好的解決方案!非常感謝快速回復的人。 – shearn89 2009-12-03 22:43:44

1

提供相同的樣式IE8你服務到IE7,然後把下面的元素在文檔頭:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 

這將使IE8模仿IE7。因爲您對IE7沒有任何問題,所以我認爲這會對您有用。

+0

然後當IE9出來時,你將不得不添加另一個,然後當IE10 ...不是一個很好的解決方案,國際海事組織。 – corymathews 2009-12-03 18:49:26

+0

即使在兼容模式下運行他的頁面也沒有解決問題。 – 2009-12-03 19:01:09

+0

有沒有特定的風格起到了IE7,該表僅適用於除8一切,並@ dcneiner的權利,它不會修復它要麼... – shearn89 2009-12-03 22:36:59

0

不能完全確定發生了什麼事情在那裏,但似乎是某種問題(也許一個IE8的bug)與鏈接和圖像元素的層次感。當我改變的.nav img, .nav2 imgz-index任何負值,而不是50,然後鏈接成爲點擊。

我不知道這是在這種情況下,實際的可能性,不過,因爲負的z-index可能會導致圖像不再可見。

+0

它確實隱藏圖像,這是實際的「家」 「媒體」等圖像。 – shearn89 2009-12-03 22:36:19