<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,所以這樣的情況下,二級菜單很容易消失。