這樣做的最佳方法是什麼?
這是一個很難回答的問題,因爲雖然有幾種方法可以實現你正在嘗試做每一個方法都有其優點和缺點,它會永遠開放到基於輿論爭論。所以我敢說沒有最好的方法來做到這一點,但肯定有些方法可能更合適或更清潔
我個人認爲jQuery使一切都如此簡單,並且很好的探索。但是,我不認爲這是最好的方式。其實,我放在一起,展示了其潛力,與這些類型的菜單很好處理這個JS Fiddler
當我使用這個HTML結構簡約的例子...
<nav>
<div class="l1">Item 1
<div class="l2">
<div>Sub Item 1.1</div>
<div>Sub Item 1.2</div>
</div>
</div>
<div class="l1">Item 2
<div class="l2">
<div>Sub Item 1.1</div>
<div>Sub Item 1.2</div>
</div>
</div>
<div class="l1">Item 3
<div class="l2">
<div>Sub Item 1.1</div>
<div>Sub Item 1.2</div>
</div>
</div>
<div class="l1">Item 4
<div class="l2">
<div>Sub Item 1.1</div>
<div>Sub Item 1.2</div>
</div>
</div>
</nav>
考慮使用ul
和li
元素代替。我也是用這個樣式表...
nav{
display:block;
height:25px;
padding:10px 50px;
background-color:black;
color:yellow;
font-weight:bold;
}
nav div.l1{
margin-right:20px;
display:inline-block;
zoom:1;
*display:inline;
}
nav div.l2{
display:none;
background-color:yellow;
color:black;
position:absolute;
margin-top:16px;
z-index:1;
padding:20px 10px;
}
最後這個jQuery ...
$(function(){
$('div.l1').click(toggleSubItems);
});
function toggleSubItems(){
$('div.l2').not($(this).children('div.l2')).hide();
$(this).children('div.l2').toggle(400);
}
請注意,所有的顧慮都很好地分離...的JavaScript,HTML,CSS。但是,再次以此爲例展示其擴展潛力,而不是作爲項目的模板。
希望它可以幫助
來源
2014-03-14 01:29:13
Leo
我不是,我真的可以回答,但我們使用':hover',':focus'和':active'所以你可以將鼠標,鍵盤選項卡,並觸動我們菜單。 –
此問題之前已被問到:http://stackoverflow.com/questions/14068773/clear-css-menu-hover-state-on-click-page-loaded-via-ajax –