制作CSS下拉菜单 - 找不到错误

时间:2013-12-02 03:56:29

标签: css

尝试制作菜单,非常适合CSS。我认为错误出现在

 .nav ul li:hover > ul li a { color: purple; min-width:150px;}
  .nav ul li:hover > ul li a:hover { color:pink;}

但我无法弄清楚是什么,也没有经验可以弄清楚它是否在其他地方。除了下拉列表之外的其他所有内容似乎都有效。

我一直在使用http://www.wikihow.com/Create-a-Dropdown-Menu-in-HTML-and-CSS作为参考。

非常感谢你的帮助。

<!DOCTYPE html!>
<html lang="en">
  <head>
  <! css link goes here !>
  <style type="text/css">
  body {
       background-color:orange}


  .nav ul ul {               /* the . in front on nav is critical! */
      display:none;
       }

  .nav ul li: hover > ul {
      display: block;
       }

  .nav ul {
       padding: 0 20px;
       border-radius: 10px;
       list-style: none;
       position: relative;
       display: inline-block;
       background: green}

  .nav ul li {
       float:left}

  .nav ul li a{ 
       padding: 5px 10px 5px 10px;
       display:block;
       color: red; /* heading text color */
       text-decoration: none;
       }

  .nav ul li:hover {
       background: orange; /* hover over menu and color changes */
        }

  .nav ul li:hover a {
       color:blue; /* hover over menu and text color changes */
       } 

  .nav ul li:hover > ul { margin:0px; padding:0px;}
  .nav ul li:hover > ul li { float:none; display:block;}
  .nav ul li:hover > ul li a { color: purple; min-width:150px;}
  .nav ul li:hover > ul li a:hover { color:pink;}

  .nav ul li { position:relative; }
  .nav ul li ul { position: absolute; top:30px; left:0px; }

  }

  </style>
  </head>

  <body>
  <div class="nav">
       <ul> 
            <li><a href="media">Media</a></li>  
            <li><a href="previous expeditions">Previous Expeditions</a> 

                 <ul> 
                      <li><a href="morocco">Morocco</a></li>
                      <li><a href="iceland">Iceland</a></li>
                      <li><a href="tajikistan">Tajikistan</a></li>
                 </ul>
            </li>
            <li> <a href="sponsors">Sponsors</a></li>
        </ul>



  </div>  <! end of nav div!>
  </body>
</html>

2 个答案:

答案 0 :(得分:2)

CSS后更新。它会显示下拉列表。

  .nav ul li:hover > ul { margin:0px; padding:0px; display:block;}

Fiddle Here

这会解决您的问题吗?

答案 1 :(得分:1)

代码没有任何问题。

请看这一行:

.nav ul li: hover > ul {
  display: block;
}

您是否注意到hover之前的空白。只需删除它就可以了。每当你编写这种选择器时,:和伪选择器之间就不应该有空格。

改变之后:

.nav ul li:hover > ul {
  display: block;
}

请参阅working demo