現在很多網站都用背景圖片來實現hover(鼠標經過)切換圖片。但是IE有個該死的bug會造成超鏈接的背景圖片有時無法cache,因此在鼠標經過超鏈接圖片的時候就看到嘩嘩一大片的http下載請求
。
這不像很多網站上描述的,是由于IE的緩存策略被設置在“每次訪問此頁時更新”了造成的,不管IE緩存策略如何設置,都無法徹底避免這個問題。
emu試驗了一下,發現用前景圖也可以實現老甘(他的域名貌似已經過期,居然沒續費……)用背景圖實現的類似效果,不過要多用上一些小技巧:

這不像很多網站上描述的,是由于IE的緩存策略被設置在“每次訪問此頁時更新”了造成的,不管IE緩存策略如何設置,都無法徹底避免這個問題。
emu試驗了一下,發現用前景圖也可以實現老甘(他的域名貌似已經過期,居然沒續費……)用背景圖實現的類似效果,不過要多用上一些小技巧:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<style>
A.file{overflow:hidden;height:20px;width:20px;}
A.file IMG{position:relative;left:-130px;top:-350px}
A.file:hover{emu:expression(0)}
A.file:hover IMG{left:-10px;top:-350px}
A.file2 {text-decoration:none;color:gray}
A.file2 span{overflow:hidden;height:20px;width:20px;}
A.file2 span IMG{position:relative;left:-130px;top:-348px}
A.file2:hover{color:red;height:20}
A.file2:hover span IMG{left:-10px;top:-348px}
</style>
</HEAD>
<BODY>
one single icon : <A class="file" href="#"><img src="http://www.aygfsteel.com/images/blogjava_net/emu/1359/o_button.gif"></A>.<BR>
an icon with text:<A class="file2" href="#"><span><img src="http://www.aygfsteel.com/images/blogjava_net/emu/1359/o_button.gif"></span>test
</A>
</BODY>
</HTML>
<HTML>
<HEAD>
<style>
A.file{overflow:hidden;height:20px;width:20px;}
A.file IMG{position:relative;left:-130px;top:-350px}
A.file:hover{emu:expression(0)}
A.file:hover IMG{left:-10px;top:-350px}
A.file2 {text-decoration:none;color:gray}
A.file2 span{overflow:hidden;height:20px;width:20px;}
A.file2 span IMG{position:relative;left:-130px;top:-348px}
A.file2:hover{color:red;height:20}
A.file2:hover span IMG{left:-10px;top:-348px}
</style>
</HEAD>
<BODY>
one single icon : <A class="file" href="#"><img src="http://www.aygfsteel.com/images/blogjava_net/emu/1359/o_button.gif"></A>.<BR>
an icon with text:<A class="file2" href="#"><span><img src="http://www.aygfsteel.com/images/blogjava_net/emu/1359/o_button.gif"></span>test

</BODY>
</HTML>
不用背景圖的一個代價就是,再也不能css裸奔了。twinsen一定要講這是個人品問題了。有的時候,要對付IE這樣人品不好的平臺,犧牲一點人品來換取一點性能上的優化,并不是不值得考慮的吧?
在Firefox下面比較郁悶,必須要display:block才能實現overflow的效果,試了下display:table等table族的樣式,都沒有辦法真正的overflow。