後台/OA 系統常用全屏佈局:頁頭、頁腳、左側菜單 + 右側 iframe。一個全兼容、可高亮、二級緩沖折疊的菜單是剛需。本文分享一個經實戰驗證的通用實現方案。

核心結構為巢狀 <ul>:
<ul class="menu">
<li class="level1"><a href="#">一級項目</a>
<ul class="level2">
<li><a href="#">二級項目</a></li>
</ul>
</li>
<li class="level1"><a href="#">無子項一級</a></li>
</ul>
僅需三個掛鉤 class:.menu(根)、.level1(一級項)、.level2(二級容器),即可通過後代選擇器控制所有樣式。
為配合 JS 控制,預定義三態類名(非 :hover):
/* 一級項三態 */
.menu li.level1 a { display:block; line-height:31px; height:31px; padding-left:50px; background:url(menubg.gif) no-repeat left top; }
.menu li.level1 a.hove { background-position:left -31px; }
.menu li.level1 a.cur { background-position:left -62px; }
/* 二級項三態 */
.menu .level2 li a { display:block; line-height:25px; height:25px; padding-left:60px; background:url(subbg.gif) no-repeat left top; }
.menu .level2 li a.hove { background-position:left -25px; }
.menu .level2 li a.cur { background-position:left -50px; }
getElementsByClassName() 獲取根容器mouseover/mouseout/click.level2 顯示/隱藏並觸發緩沖動畫.cur/.hove 類名實現高亮邏輯完整註釋源碼請下載 Demo 離線研讀。歡迎留言討論技術細節!