DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> CSS實例:a:hover偽類在IE6下的問題
CSS實例:a:hover偽類在IE6下的問題
編輯:CSS詳解     
在處理CSS的機制上,IE總是有很多讓人吐血的舉動,但對於他們現在的改進力度還是值得高興的。

  就拿對偽類:hover的支持來說,IE7+終於添加了對a以外其它標簽的支持。對於這樣的改進,當然是要拍手稱快的,但在IE6下,:hover就連對a的支持都不是那麼的盡如人意。下面就是我想簡單說的一個關於:hover在IE6及更早浏覽器下的問題。

  很多人可能都已經知道了:hover在IE6及更早浏覽器(以下稱IE6-)下的一些問題。我主要是想說一下形如a:hover span{}這樣的問題。

  有的時候為了增加一些簡單的動態效果,常常會借助:hover的幫忙,比如我們時常會令鼠標經過鏈接時改變文字的顏色。如:

a:hover{color:#F00;}

<a href="?">鼠標經過時改變我的顏色</a>

  是的,這將在所有的浏覽器中都有效。但如果換成這樣:

a:hover em{color:#F00;}

<a href="?">鼠標經過時改變我的<em>顏色</em></a>

  你會發現在IE6-下什麼都沒有發生,我們的樣式失效了。對,就是這樣,應該很多人都碰到過且已經解決了這個問題。

  是的,只需要再添加一個a:hover{}樣式就可以解決這個問題了,裡面可以是zoom, padding, margin等屬性。如下:

a:hover{zoom:1;}
a:hover em{color:#F00;}

<a href="?">鼠標經過時改變我的<em>顏色</em></a>

  看著恢復了正常的效果,去想可能是因為什麼造成:hover失效的。你可以使用zoom, display, padding等等屬性來搞定,於是想會不會是因為haslayout。恩,很有可能就是這樣。但你接著測試,會發現,不論你在a:hover{}寫入任何屬性,color啊,font-size啊,overflow啊(甚至是不存在的屬性,如xx:yyy),都可以使之恢復正常。

  測試到這裡是不是有點目瞪口呆的感覺?對,我也是這樣的。至於原因是什麼,我還不知道,或許有人知道。

  一個a:hover的簡單例子:


 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

  例子雖然簡單,但即刻你又會發現其實中英菜單和一些CSS tips效果也是那麼的簡單。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved