在處理css的機制上,IE總是有很多讓人吐血的舉動,但對于他們現(xiàn)在的改進力度還是值得高興的。
就拿對偽類:hover的支持來說,IE7+終于添加了對a以外其它標簽的支持。對于這樣的改進,當然是要拍手稱快的,但在IE6下,:hover就連對a的支持都不是那么的盡如人意。下面就是我想簡單說的一個關于:hover在IE6及更早瀏覽器下的問題。
很多人可能都已經(jīng)知道了:hover在IE6及更早瀏覽器(以下稱IE6-)下的一些問題。我主要是想說一下形如a:hover span{}這樣的問題。
有的時候為了增加一些簡單的動態(tài)效果,常常會借助:hover的幫忙,比如我們時常會令鼠標經(jīng)過鏈接時改變文字的顏色。如:
a:hover{color:#F00;}
<a href="?">鼠標經(jīng)過時改變我的顏色</a>
是的,這將在所有的瀏覽器中都有效。但如果換成這樣:
a:hover em{color:#F00;}
<a href="?">鼠標經(jīng)過時改變我的<em>顏色</em></a>
你會發(fā)現(xiàn)在IE6-下什么都沒有發(fā)生,我們的樣式失效了。對,就是這樣,應該很多人都碰到過且已經(jīng)解決了這個問題。
是的,只需要再添加一個a:hover{}樣式就可以解決這個問題了,里面可以是zoom, padding, margin等屬性。如下:
a:hover{zoom:1;} a:hover em{color:#F00;}
<a href="?">鼠標經(jīng)過時改變我的<em>顏色</em></a>
看著恢復了正常的效果,去想可能是因為什么造成:hover失效的。你可以使用zoom, display, padding等等屬性來搞定,于是想會不會是因為haslayout。恩,很有可能就是這樣。但你接著測試,會發(fā)現(xiàn),不論你在a:hover{}寫入任何屬性,color啊,font-size啊,overflow。ㄉ踔潦遣淮嬖诘膶傩,如xx:yyy),都可以使之恢復正常。
測試到這里是不是有點目瞪口呆的感覺?對,我也是這樣的。至于原因是什么,我還不知道,或許有人知道。
一個a:hover的簡單例子:
運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
例子雖然簡單,但即刻你又會發(fā)現(xiàn)其實中英菜單和一些css tips效果也是那么的簡單。
原文:http://blog.doyoe.com/article/216.htm
本文鏈接:http://www.95time.cn/tech/web/2009/6796.asp
出處:css探索之旅
責任編輯:bluehearts
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|