学用纯CSS打造可折叠树状菜单

php中文网
发布: 2016-10-19 10:19:24
原创
1365人浏览过

随着css3的发布,国外研究正如火如荼,但在国内还有很多人抱着ie不支持css3的想法,始终无动于衷不肯去学习。但是历史告诉我们,好的东西必将盛行,css3也终将也会替代css2,下面就和大家分享一个用css3打造的可折叠树状菜单。

树状菜单相信大家都不会陌生,我们一般用css+js 的方式来实现。而css3的到来,让我们摆脱js的束缚,直接运用css3的“选择器“就能实现可折叠树状菜单

整体的代码很多,就不逐句逐句讲了,只把我觉得重要的地方提出来说说吧。

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) no-repeat 0px 1px;
    }
    input:checked + ol {
    background:url(toggle-small.png) 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) 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的发展吧。
    最佳 Windows 性能的顶级免费优化软件
    最佳 Windows 性能的顶级免费优化软件

    每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习
    PHP中文网抖音号
    发现有趣的

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号