0

0

使用纯CSS打造可折叠树状菜单方法介绍

高洛峰

高洛峰

发布时间:2017-03-17 13:00:56

|

1814人浏览过

|

来源于php中文网

原创

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

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

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

html代码:

文希AI写作
文希AI写作

AI论文写作平台

下载




    1. file">下级





      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的发展吧。

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    Python 序列化
    Python 序列化

    本专题整合了python序列化、反序列化相关内容,阅读专题下面的文章了解更多详细内容。

    0

    2026.02.02

    AO3官网入口与中文阅读设置 AO3网页版使用与访问
    AO3官网入口与中文阅读设置 AO3网页版使用与访问

    本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。

    91

    2026.02.02

    主流快递单号查询入口 实时物流进度一站式追踪专题
    主流快递单号查询入口 实时物流进度一站式追踪专题

    本专题聚合极兔快递、京东快递、中通快递、圆通快递、韵达快递等主流物流平台的单号查询与运单追踪内容,重点解决单号查询、手机号查物流、官网入口直达、包裹进度实时追踪等高频问题,帮助用户快速获取最新物流状态,提升查件效率与使用体验。

    27

    2026.02.02

    Golang WebAssembly(WASM)开发入门
    Golang WebAssembly(WASM)开发入门

    本专题系统讲解 Golang 在 WebAssembly(WASM)开发中的实践方法,涵盖 WASM 基础原理、Go 编译到 WASM 的流程、与 JavaScript 的交互方式、性能与体积优化,以及典型应用场景(如前端计算、跨平台模块)。帮助开发者掌握 Go 在新一代 Web 技术栈中的应用能力。

    11

    2026.02.02

    PHP Swoole 高性能服务开发
    PHP Swoole 高性能服务开发

    本专题聚焦 PHP Swoole 扩展在高性能服务端开发中的应用,系统讲解协程模型、异步IO、TCP/HTTP/WebSocket服务器、进程与任务管理、常驻内存架构设计。通过实战案例,帮助开发者掌握 使用 PHP 构建高并发、低延迟服务端应用的工程化能力。

    5

    2026.02.02

    Java JNI 与本地代码交互实战
    Java JNI 与本地代码交互实战

    本专题系统讲解 Java 通过 JNI 调用 C/C++ 本地代码的核心机制,涵盖 JNI 基本原理、数据类型映射、内存管理、异常处理、性能优化策略以及典型应用场景(如高性能计算、底层库封装)。通过实战示例,帮助开发者掌握 Java 与本地代码混合开发的完整流程。

    5

    2026.02.02

    go语言 注释编码
    go语言 注释编码

    本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

    62

    2026.01.31

    go语言 math包
    go语言 math包

    本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

    55

    2026.01.31

    go语言输入函数
    go语言输入函数

    本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

    27

    2026.01.31

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Sass 教程
    Sass 教程

    共14课时 | 0.8万人学习

    Bootstrap 5教程
    Bootstrap 5教程

    共46课时 | 3.2万人学习

    CSS教程
    CSS教程

    共754课时 | 26.7万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

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