как сделать меню при наведении мыши в css

У меня есть меню. Мне нужно показать подменю, когда я наведу на них курсор мыши. У меня есть код следующим образом. Но подменю перекрывается с существующим меню.

Ниже приведен мой код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>CSS Drop Down Menus</title>

  <style type="text/css">
    * {
      margin: 0;
      padding: 0;
    }
    body {
      font-family: "Trebuchet MS", Helvetica, Sans-Serif;
      font-size: 14px;
    }
    a {
      text-decoration: none;
      color: #838383;
    }
    a:hover {
      color: black;
    }
    #menu {
      position: relative;
      margin-left: 30px;
    }
    #menu a {
      display: block;
      width: 140px;
    }
    #menu ul {
      list-style-type: none;
      padding-top: 5px;
    }
    #menu li {
      float: top;
      position: relative;
      padding: 3px 0;
      text-align: center;
    }
    #menu ul.sub-menu {
      display: none;
      position: absolute;
      top: 20px;
      left: -10px;
      padding: 10px;
      z-index: 90;
    }
    #menu ul.sub-menu li {
      text-align: top;
    }
    #menu li:hover ul.sub-menu {
      display: block;
      border: 1px solid #ececec;
    }
  </style>
</head>
<body>
<div id="menu">
  <ul>
    <li><a href="#">Home</a>
      <ul class="sub-menu">
        <li><a href="#">Pages</a></li>
        <li><a href="#">Archives</a></li>
        <li><a href="#">New Posts</a></li>
        <li><a href="#">Recent Comments</a></li>
      </ul>
    </li>
    <li><a href="#">About</a>
      <ul class="sub-menu">
        <li><a href="#">Get to know us</a></li>
        <li><a href="#">Find out what we do</a></li>
      </ul>
    </li>
    <li><a href="#">Contact</a>
      <ul class="sub-menu">
        <li><a href="#">E-mail Us</a></li>
        <li><a href="#">Use Our Contact Form</a></li>
      </ul>
    </li>
  </ul>
</div>
</body>
</html>

Мне нужен такой эффект. введите здесь описание изображения

Как я могу это сделать?


person Surjya Narayana Padhi    schedule 10.03.2013    source источник


Ответы (2)


Вы установили left: -10px на #menu ul.sub-menu, поэтому он перекрывает #menu. Вы должны установить это значение, которое переместит его достаточно далеко вправо для ваших целей, возможно, left: 140px, так как это ширина menu div.

person ultranaut    schedule 10.03.2013

Я думаю, вы ищете что-то под названием "прокрутка навигации с раскрывающимися списками".

Это одна из лучших реализаций, которые вы можете найти — адаптируйте и используйте по мере необходимости:

http://jorenrapini.com/blog/web-development/css-navigation-rollovers-with-drop-downs#post-170

И, чтобы увидеть, стоит ли пытаться, вот конечный результат:

http://jorenrapini.com/posts/css-rollovers/post2.html

Удачи!

person jrd1    schedule 10.03.2013