纯CSS实现可折叠树状菜单

2022-01-11,,,

这篇文章主要介绍了纯CSS实现可折叠树状菜单,不用js让你体会到css的强大,需要的朋友可以参考下

1:Html代码

 
    1. 下级
      1. 无限级
      2. 无限级
      3. 无限级
      4. 无限级
      5. 无限级
      6. 无限级
  • 实现的思路是运用checkbox的checked值来判断下级栏目是否展开,CSS3的选择器中提供了:checked 这个伪类,这个伪类提供我们,当元素拥有checked这个值的时候就执行你的CSS。(很强大是吧。有了CSS3我们会少写很多JS哦!)

     

    当checkbox的拥有checked值的时候就就让OL现实出来,达到我们想要的功能。

    接下来看看CSS代码吧:

     li input { position:absolute;left:0;margin-left:0;opacity:0;z-index:2;cursor:pointer;height:1em;width:1em;top:0; } input + ol { display:none; } input + ol > li { height:0;overflow:hidden;margin-left:-14px!important;padding-left:1px; } li label { cursor:pointer;display:block;padding-left:17px;background:url(toggle-small-expand.png-600) no-repeat 0px 1px; } input:checked + ol { background:url(toggle-small.png-600) 44px 5px no-repeat;margin:-22px 0 0 -44px;padding:27px 0 0 80px;height:auto;display:block; } input:checked + ol > li { height:auto; } 

    这段代码是树状菜单的中心:

     input:checked + ol { background: url(toggle-small.png-600) 44px 5px no-repeat;margin: -22px 0 0 -44px;padding:27px 0 0 80px;height: auto;display: block; }

    这个是讲当inoput 拥有了checked后它平级的OL拥有的样式。

    使用IE9以下浏览就不用看了,请使用非IE浏览器。(想让IE6+浏览器支持也是可以滴,但是需要加JS来模拟css3属性。国外有很多牛人都写了让IE6+浏览器支持部分CSS3的JS,例如PIE)

    总结:

    总体来说,实现思路很简单,主要是利用CSS3的 checked 伪类来实现OL的隐藏显示。不过遗憾的是IE游览器不支持CSS3,但我们不能因为IE的不支持而放弃对CSS3的研究。在国外CSS3和HTML5都是前端很热门的话题,他们研究的东西远远超过我们,但国内真正去尝试的还是不多,对于一个前端开发人员来说是一件很可悲的事。我认为CSS3应该引起我们的重视,不能让我们输在起跑线。让我们大家一起来推动CSS3的发展吧。

    2:实例源代码

       纯CSS可折叠树状菜单 body, ul, li{margin: 0;padding: 0;} body { background-color:#e4e9f1; color:#002446; margin: 0; } input, select, textarea, th, td { font-size: 1em; } ol.tree {padding: 0 0 0 30px;width: 300px;} li {position: relative;margin-left: -15px;list-style: none;} li.file{margin-left: -18px !important;} li.file a{background: url(document.png-600) 0 0 no-repeat;color: #002446;padding-left: 21px;text-decoration:none;display: block;} li input{position: absolute;left: 0;margin-left: 0;opacity: 0;z-index: 2;cursor: pointer;height: 1em;width:1em;top: 0;} input + ol{display: none;} input + ol > li { height: 0; overflow: hidden; margin-left: -14px !important; padding-left: 1px; } li label {cursor: pointer;display: block;padding-left: 17px;background: url(toggle-small-expand.png-600) no-repeat 0px 1px;} input:checked + ol {background: url(toggle-small.png-600) 44px 5px no-repeat;margin: -22px 0 0 -44px;padding:27px 0 0 80px;height: auto;display: block;} input:checked + ol > li { height: auto;}  
      1. 实时数据
        1. 下级
          1. 下级
            1. 无限级
            2. 无限级
            3. 无限级
            4. 无限级
            5. 无限级
            6. 无限级
        2. 下级
        3. 下级
        4. 下级
        5. 下级
      1. 实时数据
        1. 下级
        2. 下级
        3. 下级
        4. 下级
        5. 下级
        6. 下级

     3:效果图

     

    以上就是纯CSS实现可折叠树状菜单的详细内容,更多请关注本站其它相关文章!

    《纯CSS实现可折叠树状菜单.doc》

    下载本文的Word格式文档,以方便收藏与打印。