Хитрость в псевдоклассе :hover
.
<ul class="menu">
<li>
<a href="...">Menu Item 1</a>
<ul class="submenu">
<li><a href="...">Submenu 1</a></li>
<li><a href="...">Submenu 2</a></li>
</ul>
</li>
<li>
<a href="...">Menu Item 2</a>
<ul class="submenu">
<li><a href="...">Submenu 3</a></li>
<li><a href="...">Submenu 4</a></li>
</ul>
</li>
</ul>
Хорошо?Таким образом, все ваше подменю должно находиться внутри <li>
пункта главного меню, которому он соответствует.Затем для CSS:
.submenu { display: none; }
.menu>li:hover>.submenu { display: block; }
Сделайте немного стайлинга, и работа сделана.
Edit: Для другого слоя меню это действительно просто.Используйте этот CSS:
.menu li>ul { display: none; }
.menu li:hover>ul { display: block; }
Обратите внимание, что я заменил .menu>li:hover
на .menu li:hover
.Это говорит браузеру найти все элементы li
под главным меню (не только непосредственные потомки) и показать их подменю при наведении курсора.Я также избавился от использования класса подменю, потому что он на самом деле не нужен, если вы основываете CSS на потомках.Это позволит вам добавить столько уровней, сколько вы хотите.