2010-05-04 49 views
3

是否有任何方式使用「懸停」屬性的所有HTML元素,而不是隻在IE中?懸停IE中的非鏈接元素的問題

例如'li:hover'。它在IE6中不起作用。 (我不知道其他版本的IE)。

被修改: 我只是想用CSS no javascript來做。 這是一個簡單的菜單。

+0

':hover'在IE8中可以正常工作。 – josh3736 2010-05-04 04:14:28

+0

謝謝,但很多用戶還沒有IE6。 – 2010-05-04 04:22:36

回答

3

我不認爲無論如何,你可以在IE 6中不使用JavaScript來做到這一點。

如果它是一個級別的菜單,你可能可以調整樣式,使鏈接呈現爲顯示:塊裏面的所以你可以對它們進行懸停,如果需要的話在鏈接內部放置跨度以獲得額外的造型靈活性,但是個人從未嘗試過將它擴展到多級菜單。

優雅退化的策略可能是您最好的選擇。

+0

好的,最後我使用一些代碼段的JavaScript代碼 http://www.xs4all.nl/~peterned/csshover.html 作爲csshover htc文件改變IE的身體行爲。 它似乎生活沒有JavaScript是不可能的! – 2010-05-04 05:07:10

4

不,IE6沒有正確實現所有元素的hover僞類。它只支持錨點。

2

在javascript上使用onmouseover/onmouseout。

當您將鼠標懸停在某個元素上時,只需使用懸停內容顯示隱藏的div。

當你將鼠標移出某個元素時,你將隱藏div並將鼠標懸停在內容上。如果你不想做所有的專家組的工作

<span id="hoverSpan" class="hoverelement" hoverdata="this is my hoverdata">HoverSpan</span> 
<a href="#" id="hoverAnchor class="hoverelement" hoverdata="this is my hover data">HoverAnchor</a> 
<div id="hoverdiv" style="display:none"></div> 

<script language="javascript"> 
    $(document).ready(function() { 
    $(".hoverelement").each(function() { 
     var myelement = $(this); 
     myelement.mouseover(function (e) { 
     var myhovertext = myelement.attr("hoverdata"); 
     $("#hoverdiv").html(myhovertext).show(); 
     }); 
     myelement.mouseout(function (e) { 
     $("#hoverdiv").html(myhovertext).hide(); 
     }); 
    }); 
    }); 
</script> 

它晚了,我沒有測試這個

jQuery讓這更容易,但這個想法是存在的。基本上,你會作出一個懸停爲與類「hoverelement」

+0

感謝您的評論,但我不想使用JavaScript。只用CSS。 – 2010-05-04 04:06:31

+0

我不相信這是可能的Just css。有不同的瀏覽器/版本和以下方面的問題太多:懸停樣式 – 2010-05-04 04:14:12

0

嘗試jquery ...我並不確切地知道,但它可能工作在IE6的任何元素....