html – 仅限CSS下拉菜单

前端之家收集整理的这篇文章主要介绍了html – 仅限CSS下拉菜单前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试制作CSS下拉菜单(不涉及JavaScript).根据
http://pixelspread.com/blog/289/css-drop-down-menu我只需要添加
  1. #menuBar #test2 a:hover .subMenu{display:block;}

使子菜单显示.但是,在我的代码中,它不起作用.有人可以帮我解决这个问题吗?非常感谢!

我的HTML

  1. <ul id="menuBar">
  2. <li id="test1">test1</li>
  3. <li id="test2"><a href="#">Pro1</a>
  4. <div class="subMenu">
  5. <ul>
  6. <li><a href="#">sub1</a></li>
  7. <li><a href="#">sub2</a></li>
  8. <li><a href="#">sub3</a></li>
  9. </ul>
  10. <ul>
  11. <li><a href="#">Volleyball</a></li>
  12. <li><a href="#">Walking</a></li>
  13. <li><a href="#">Water Shoes</a></li>
  14. </ul>
  15. </div> <!--end of submenu-->
  16. </li>
  17. </ul>

我的Css

  1. #menuBar #test2 a{
  2. background:url("../images/btTest.jpg") no-repeat bottom;
  3. display:block;
  4. border-right:1px solid #ffffff;
  5. width:112px;
  6. height:37px;
  7. }
  8.  
  9. #menuBar #test2 a:hover{
  10. background:url("../images/btTest.jpg") no-repeat top;
  11. }
  12.  
  13. #menuBar #test2 a:hover .subMenu{
  14. // I add .subMenu after a:hover and have two a:hover for #test2 a
  15. // I know it won't work but not sure what to do now.
  16. //thanks for the help.
  17. display:block;
  18. }
  19.  
  20.  
  21. .subMenu{ // the hidden menu
  22. position:absolute;
  23. top:35px;
  24. left:0px;
  25. z-index: 99999;
  26. width:550px;
  27. background-color:black;
  28. display:none;
  29. }

解决方法

您的HTML结构未设置为允许使用单个css语句的多个子菜单.如果你看一下Mcinerney的HTML:
  1. <div id="menu">
  2. <ul id="item1">
  3. <li class="top">menu item</li>
  4. <li class="item"><a href="#">menu item 1</a></li>
  5. <li class="item"><a href="#">menu item 2</a></li>
  6. <li class="item"><a href="#">menu item 3</a></li>
  7. </ul>
  8. </div>

和他的CSS:

  1. #menu ul:hover .item{display:block;}

它转换为“如果你将鼠标悬停在一个带有id,”menu“的元素的后代”ul“上,然后使用类”item“找到所有”ul“后代的元素,并将它们的显示设置为“块”.

你可以做类似的事情,但你需要根据LI元素的id为每个子菜单添加一行css:

  1. #test2:hover div.subMenu { display: block; }

“#test2”指的是id为“test2”的任何元素.

“div.subMenu”指的是类名称为“subMenu”的任何元素(在本例中为div).因为它出现在“#test2”之后,div元素必须是“#test2”的后代.

为了使您的背景图像保持悬停状态,您需要对css和html进行一些更改.首先,在“A”上指定一个类(因为我们不想引用作为#test2的子项的所有“A”元素,只是指定的一个):

  1. <li id="test2"><a href="#" class="top">Pro1</a> ...

然后修改你的css,以便在悬停在#test2上时设置背景(不是#test2 a):

  1. #test2:hover a.top {
  2. background:url("../images/btTest.jpg") no-repeat top;
  3. }

猜你在找的HTML相关文章