实现一个效果不难,难的是使用最少的代码实现一个效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> ul.nav, ul.nav ul{ padding: 0; margin: 0; list-style: none; /* 清除浮动 */ overflow: hidden; } ul.nav a{ display: block; text-decoration: none; padding: 0 0.3em; line-height: 1.5em; background: teal; color: white; } /* ul限制了宽度,虽然li浮动了,但是li和ul宽度一样所以被挤下来了 */ ul.nav li{ float: left; width: 6em; } /* 核心部分,把ul列表绝对定位,当li hover的时候让其变成auto,这里不用display:none来隐藏,而使用了负文本缩进是为了考虑屏幕阅读器*/ ul.nav ul{ width: 6em; position: absolute; left: -9999px; } ul.nav li:hover ul{ left: auto; } </style> </head> <body> <ul class="nav"> <li><a href="#">导航菜单1</a></li> <li><a href="#">导航菜单2</a> <ul> <li><a href="#">子菜单1</a></li> <li><a href="#">子菜单2</a></li> <li><a href="#">子菜单3</a></li> <li><a href="#">子菜单4</a></li> </ul></li> <li><a href="#">导航菜单3</a></li> <li><a href="#">导航菜单4</a></li> <li> <a href="#">导航菜单5</a> <ul> <li><a href="#">子菜单1</a></li> <li><a href="#">子菜单2</a></li> <li><a href="#">子菜单3</a></li> <li><a href="#">子菜单4</a></li> </ul> </li> </ul> </body> </html>
演示地址:http://down.yesyes.wang/book/06/select-nav.html