用HTML+CSS实现--折叠效果

下图是一个Accordion组件,请用HTML+CSS实现其UI,并用面向对象的思路把折叠效果JS实现。如果能用纯css的方式实现其折叠效果更佳。PS/这是小米15年的一道校招笔试题,无意间看到就实现了一下。

这个题让最好用css实现,那就考察的知识点比较多啦!特别是css选择器这一块。具体实现代码如下。

复制代码
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>纯CSS实现百叶窗</title>
        <style type="text/css">
            * {
               margin: 0;
               padding: 0;
               }
            
            #parent >li> span{background: #999999;display: block;width: 200px;border:1px solid #ECEEF2;}
            li {line-height: 40px;display: block;}
            li  p{
                    display: inline-block;
                    width: 0px;
                    height: 0px;
                    border-left: 5px solid transparent;
                    border-right: 5px solid transparent;
                    border-top: 5px solid#2f2f2f;
                      }
             li>ul{display: none;}
             li>ul>li{border: 1px solid #DEDEDE;width: 199px;}
             #parent span:hover + ul{display: block;}
             #parent span:hover >p{
                     display: inline-block;
                    width: 0px;
                    height: 0px;
                    border-top: 5px solid transparent;
                    border-bottom: 5px solid transparent;
                    border-left: 5px solid#2f2f2f;}
        </style>
    </head>
    <body>
        <ul id="parent">
            <li>
                <span><p></p>列表</span>
                <ul>
                    <li>子列表</li>
                    <li>子列表</li>
                    <li>子列表</li>
                </ul>
            </li>
            <li>
                <span><p></p>列表</span>
                <ul>
                    <li>子列表</li>
                    <li>子列表</li>
                    <li>子列表</li>
                </ul>
            </li>
            <li>
                <span><p></p>列表</span>
                <ul>
                    <li>子列表</li>
                    <li>子列表</li>
                    <li>子列表</li>
                </ul>
            </li>
        </ul>
    </body>
</html>
复制代码

 

posted @   默语  阅读(39746)  评论(3编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示