Наведите, чтобы показать подменю

Как заставить подменю появляться при наведении курсора? Я не вижу, что не так с тем, что у меня есть - (но, очевидно, что-то не так, поскольку это не работает!)

HTML

<div>
  <ul>
    <li><a id="ALink" href="#">A</a></li>
      <ul id="SubMenu">
        <li>1</li>
        <li>2</li>
        <li>3</li>
      </ul>
    <li><a id="BLink" href="#">B</a></li>
    <li><a id="CLink" href="#">C</a></li>
  </ul>
</div>

CSS

#SubMenu {
display: none;
width: 200px;
height: 200px;
background: #00C;
}   

#ALink:hover #SubMenu {
  display: block;
    }

JSFiddle - На данный момент из кода предлагается показывать меню при наведении курсора на опцию "A".

2 ответа

Решение

В этом элементе должно быть подменю, которое будет связано с ним:

<div>
  <ul>
    <li><a id="ALink" href="#">A
      <ul id="SubMenu">
        <li>1</li>
        <li>2</li>
        <li>3</li>
      </ul>
     </a>
     </li>
    <li><a id="BLink" href="#">B</a></li>
    <li><a id="CLink" href="#">C</a></li>
  </ul>
</div>

Код ниже должен работать.

HTML

<ul class="topmenu">
  <li class="submenu">A
    <ul>
    <li>Product 1</li>
    <li>Product 2</li>
    <li>Product 3</li>
    </ul>
  </li>
  <li>B</li>
  <li>C</li>
</ul>

CSS

Ниже приведен код для форматирования и отступа.

ul.topmenu, ul.topmenu ul {
 display: block;
 margin: 0;
 padding: 0;
}

ul.topmenu li {
 display: inline;
 list-style: none;
 margin: 0;
 padding-right: 1.5em;
}

Подменю все еще отображается на странице, поэтому вам придется его скрыть:

ul.topmenu li ul {
  visibility: hidden; 
}

Тогда все, что вам нужно, это чтобы меню появилось, когда пользователь наводит курсор на элемент списка включения:

ul.topmenu li.submenu:hover ul {
  visibility: visible;
}
Другие вопросы по тегам