CSS/Javascript/jQuery實現IE678兼容下拉菜單效果,子菜單不消失辦法

<ul class="main">
    <li>
        <a href=""></a>
        <ul class="sub">
            <li><a href=""></a></li>
            <li><a href=""></a></li>
        </ul>
    </li>
    <li>
        <a href=""></a>
    </li>
    <li>
        <a href=""></a>
    </li>
</ul>

一般結構如上,由於a標籤中無法嵌套a標籤,故ul.sub需要和主菜單a平級。


由於IE6無法支持li:hover,故純css無法實現,需要用上js


代碼寫好測試時發現,鼠標經過主菜單li後二級菜單顯示,但鼠標一旦離開li,二級菜單就會消失


解決辦法:

首先、確保子菜單與主菜單之間無空隙;

其次、確保子菜單ul有background(顏色隨意),如果background加在子菜單的li或者a上,需要注意li之間無空隙。(重點)


這是因爲IE6-8下,若子菜單僅有文字,則鼠標必須置於文字之上,纔會觸發hover效果。


上圖,


左邊加了背景,則只要鼠標置於藍色背景範圍內,就算作hover,只要藍色背景區域和主菜單li沒有空隙,二級菜單就不會消失;

右邊是沒有背景,則鼠標必須置於黑色文字上纔算hover,所以這樣的情況下,二級菜單很容易消失。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章