• css3 手风琴


    最近入手了大漠的《图解css3》所以会寻找一些案例来尝试,顺便和大家交流学习

    今天和大家分享的css3实现手风琴效果也是从大漠老师那里学来的

    ============================分割线======================================

    首先看一下布局结构

    <div class="accordionMenu">        
            <ul>
                <li>
                    <h2>Brand</h2>
                <p>Lorem ipsum dolor sit amet...</p>
                </li>
                <li>
                    <h2>Brand</h2>
                <p>Lorem ipsum dolor sit amet...</p>
                </li>
                <li>
                    <h2>Brand</h2>
                <p>Lorem ipsum dolor sit amet...</p>
                </li>
                <li>
                    <h2>Brand</h2>
                <p>Lorem ipsum dolor sit amet...</p>
                </li>
            </ul>
            
        </div>

    接下来给结构添加一些样式,这里实现手风琴效果的关键是控制li的高度以及overflow:hidden来达到手风琴的“展开,收起”效果

    .accordionMenu{
            position: relative;
             400px;
            margin: 0 auto;
    
        }
        .accordionMenu ul{
             100%;
            list-style:none;
        }
        .accordionMenu ul li{
            position: relative;
            display: block;
            height: 40px;
            overflow: hidden;
            margin: 0px;
            padding: 0;
            transition: height .3s ease-in-out;
            -webkit-transition:  height .3s ease-in-out;
        }
        .accordionMenu li h2{
            height:18px;
            line-height:18px;
            font-size: .6em;
            border:1px solid #eee;
            padding:10px;
            margin: 0;
            background: #f00;
    
        }
        .accordionMenu h2:before{
            border:5px solid #fff;
            content:"";
            border-color:#fff transparent transparent;
             0;
            height: 0;
            position:absolute;
            top:15px;
            right:15px;
        }

    image

    从样式可以看出在.accordionMenu ul li中添加了动画效果以实现平缓过渡效果

    .accordionMenu ul li{
            position: relative;
            display: block;
            height: 40px;
            overflow: hidden;
            margin: 0px;
            padding: 0;
            transition: height .3s ease-in-out;
            -webkit-transition:  height .3s ease-in-out;
        }

    最后通过伪元素来设置li的高度和相关背景色的新值

    .accordionMenu li:hover{
            background: #eee;
            height:200px;
        }
        .accordionMenu li:hover h2{
            background: lime;
        }
        .accordionMenu li:hover h2:before{
            border-color:transparent transparent transparent #000;
        }

    大功告成效果图如下

    image

    如有表达不当之处,欢迎各位指出,不胜感激

  • 相关阅读:
    SpringMVC 高级开发(异常页面处理,json传输数据,文件上传)
    SpringMVC中的Controller方法的(返回值/参数类型)
    SpringMVC的其他注解
    SpringMVC的整合,基于注解
    SpringMVC入门程序:helloWorld
    SpringMVC入门
    SpringAOP事务的实现
    仅需三步,即可在Vue项目中配置sass
    前端常用的设计模式
    call和apply的区别及其用法
  • 原文地址:https://www.cnblogs.com/V-JACK/p/4799334.html
Copyright © 2020-2023  润新知