[纯耍帅] 纯CSS、兼容IE7+、宽度自适应、无限级导航菜单

先来个Demo:


http://www.clanfei.com/demos/nav/nav.html


好吧,我承认,我有点标题党了,IE7的兼容并不是特别好,当鼠标离开某个导航再进入时,会留下上一次子菜单的残影(写的好像玄幻小说似的=。=)


不过纯属研究,O(∩_∩)O哈哈~


宽度自适应是指各级菜单都可以随内容的长度自行适应宽度,而当浏览器分辨率较低时一级导航也可以自动换行,而多级子菜单靠左显示还是得手动调整。


DOM结构比较简单,只是 ol.nav  li.item 的互相嵌套而已。


看代码吧(长是长了点,但其实你会发现导航的标签结构真的真的很简单,重要的是CSS部分):


 
 
  1. <!doctype html>
  2. <html lang="zh-CN">
  3. <head>
  4.         <meta charset="UTF-8">
  5.         <title>无限级纯CSS导航菜单</title>
  6.         <style type="text/css">
  7.         .nav{
  8.                 margin: 0;
  9.                 padding: 0;
  10.                 float: left;
  11.                 list-style: none;
  12.                 background: #222;
  13.         }
  14.         .nav a{
  15.                 color: #ddd;
  16.                 display: block;
  17.                 padding: 0 15px;
  18.                 text-decoration: none;
  19.         }
  20.         .nav a:hover{
  21.                 color: #2FAADD;
  22.         }
  23.         .nav .item{
  24.                 margin: 0;
  25.                 padding: 0;
  26.                 float: left;
  27.                 height: 35px;
  28.                 line-height: 35px;
  29.                 white-space: nowrap;
  30.         }
  31.         .nav .item:hover>a{
  32.                 color: #2FAADD;
  33.         }
  34.         .nav .item:hover>.nav{
  35.                 display: block;
  36.         }
  37.         .nav .nav{
  38.                 top: 100%;
  39.                 left: 0;
  40.                 display: none;
  41.                 background: #444;
  42.                 position: absolute;
  43.                 border: 1px solid #888;
  44.         }
  45.         .nav .nav .item{
  46.                 clear: both;
  47.                 min-width: 100%;
  48.         }
  49.         .nav .nav .nav{
  50.                 top: -1px;
  51.                 left: 100%;
  52.         }
  53.         .nav .nav .nav .nav .nav .nav{
  54.                 left: auto;
  55.                 right: 100%;
  56.         }
  57.         </style>
  58. </head>
  59. <body>
  60.         <ul class="nav">
  61.                 <li class="item"><a href="#">一级导航 1</a>
  62.                         <ul class="nav">
  63.                                 <li class="item"><a href="#">二级导航 1</a>
  64.                                         <ul class="nav">
  65.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  66.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  67.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  68.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  69.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  70.                                         </ul>
  71.                                 </li>
  72.                                 <li class="item"><a href="#">二级导航 2</a>
  73.                                         <ul class="nav">
  74.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  75.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  76.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  77.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  78.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  79.                                         </ul>
  80.                                 </li>
  81.                                 <li class="item"><a href="#">无子导航 3</a></li>
  82.                                 <li class="item"><a href="#">二级导航 4</a>
  83.                                         <ul class="nav">
  84.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  85.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  86.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  87.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  88.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  89.                                         </ul>
  90.                                 </li>
  91.                                 <li class="item"><a href="#">无子导航 5</a></li>
  92.                         </ul>
  93.                 </li>
  94.                 <li class="item"><a href="#">长长的一级导航 2</a>
  95.                         <ul class="nav">
  96.                                 <li class="item"><a href="#">二级导航 1</a>
  97.                                         <ul class="nav">
  98.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  99.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  100.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  101.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  102.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  103.                                         </ul>
  104.                                 </li>
  105.                                 <li class="item"><a href="#">二级导航 2</a>
  106.                                         <ul class="nav">
  107.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  108.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  109.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  110.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  111.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  112.                                         </ul>
  113.                                 </li>
  114.                                 <li class="item"><a href="#">更长的二级导航 3</a>
  115.                                         <ul class="nav">
  116.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  117.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  118.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  119.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  120.                                                 <li class="item"><a href="#">低调的三级导航 5</a>
  121.                                                         <ul class="nav">
  122.                                                                 <li class="item"><a href="#">四级导航 1</a></li>
  123.                                                                 <li class="item"><a href="#">藏的很深的四级导航 2</a>
  124.                                                                         <ul class="nav">
  125.                                                                                 <li class="item"><a href="#">藏的更深的五级导航 0</a></li>
  126.                                                                                 <li class="item"><a href="#">五级导航 1</a></li>
  127.                                                                                 <li class="item"><a href="#">五级导航 2</a></li>
  128.                                                                                 <li class="item"><a href="#">五级导航 3</a></li>
  129.                                                                                 <li class="item"><a href="#">五级导航 4</a></li>
  130.                                                                                 <li class="item"><a href="#">下面该往左了吧</a>
  131.                                                                                         <ul class="nav">
  132.                                                                                                 <li class="item"><a href="#">我在左边</a></li>
  133.                                                                                                 <li class="item"><a href="#">我真的在左边</a></li>
  134.                                                                                                 <li class="item"><a href="#">我就要赖在左边</a></li>
  135.                                                                                                 <li class="item"><a href="#">杨丞琳的左边好听</a></li>
  136.                                                                                                 <li class="item"><a href="#">呜呜,今年双十一又要过节</a></li>
  137.                                                                                                 <li class="item"><a href="#">妹纸妹纸在哪里?</a></li>
  138.                                                                                         </ul>
  139.                                                                                 </li>
  140.                                                                         </ul>
  141.                                                                 </li>
  142.                                                                 <li class="item"><a href="#">四级导航 3</a></li>
  143.                                                                 <li class="item"><a href="#">四级导航 4</a></li>
  144.                                                                 <li class="item"><a href="#">四级导航 5</a></li>
  145.                                                         </ul>
  146.                                                 </li>
  147.                                         </ul>
  148.                                 </li>
  149.                                 <li class="item"><a href="#">二级导航 4</a>
  150.                                         <ul class="nav">
  151.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  152.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  153.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  154.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  155.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  156.                                         </ul>
  157.                                 </li>
  158.                                 <li class="item"><a href="#">二级导航 5</a>
  159.                                         <ul class="nav">
  160.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  161.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  162.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  163.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  164.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  165.                                         </ul>
  166.                                 </li>
  167.                         </ul>
  168.                 </li>
  169.                 <li class="item"><a href="#">无子导航 3</a></li>
  170.                 <li class="item"><a href="#">一级导航 4</a>
  171.                         <ul class="nav">
  172.                                 <li class="item"><a href="#">二级导航 1</a>
  173.                                         <ul class="nav">
  174.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  175.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  176.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  177.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  178.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  179.                                         </ul>
  180.                                 </li>
  181.                                 <li class="item"><a href="#">二级导航 2</a>
  182.                                         <ul class="nav">
  183.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  184.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  185.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  186.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  187.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  188.                                         </ul>
  189.                                 </li>
  190.                                 <li class="item"><a href="#">二级导航 3</a>
  191.                                         <ul class="nav">
  192.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  193.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  194.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  195.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  196.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  197.                                         </ul>
  198.                                 </li>
  199.                                 <li class="item"><a href="#">二级导航 4</a>
  200.                                         <ul class="nav">
  201.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  202.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  203.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  204.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  205.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  206.                                         </ul>
  207.                                 </li>
  208.                                 <li class="item"><a href="#">二级导航 5</a>
  209.                                         <ul class="nav">
  210.                                                 <li class="item"><a href="#">三级导航 1</a></li>
  211.                                                 <li class="item"><a href="#">三级导航 2</a></li>
  212.                                                 <li class="item"><a href="#">三级导航 3</a></li>
  213.                                                 <li class="item"><a href="#">三级导航 4</a></li>
  214.                                                 <li class="item"><a href="#">三级导航 5</a></li>
  215.                                         </ul>
  216.                                 </li>
  217.                         </ul>
  218.                 </li>
  219.                 <li class="item"><a href="#">一级导航 5</a>
  220.                         <ul class="nav">
  221.                                 <li class="item"><a href="#">无子导航 1</a></li>
  222.                                 <li class="item"><a href="#">无子导航 2</a></li>
  223.                                 <li class="item"><a href="#">无子导航 3</a></li>
  224.                                 <li class="item"><a href="#">无子导航 4</a></li>
  225.                                 <li class="item"><a href="#">无子导航 5</a></li>
  226.                         </ul>
  227.                 </li>
  228.         </ul>
  229. </body>
  230. </html>


不过如果要探讨实用性的话,还是需要用JavaScript来兼容IE6下li不支持hover伪类的BUG,改动也很简单,也来个Demo:

http://www.clanfei.com/demos/nav/nav-js.html



=======================签 名 档=======================
原文地址(我的博客):http://www.clanfei.com/2013/10/1727.html
欢迎访问交流,至于我为什么要多弄一个博客,因为我热爱前端,热爱网页,我更希望有一个更加自由、真正属于我自己的小站,或许并不是那么有名气,但至少能够让我为了它而加倍努力。。
=======================签 名 档=======================


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值