滑动手风琴demo编写注意事项及存在的问题

本文详细介绍了如何使用HTML和CSS创建一个滑动手风琴效果,展示了相关代码和样式实现。手风琴样式适用于展示社交媒体图标,如Youtube、Twitter等。当鼠标悬停在图标上时,内容区域会平滑展开。文章还讨论了在不同屏幕尺寸下应用响应式设计的方法,并提到了可能存在的问题,如最小宽度设置不当可能导致列表闪烁。同时,提供了媒体查询的解决方案以确保在不同设备上的良好显示。
摘要由CSDN通过智能技术生成

滑动手风琴样式:

在这里插入图片描述

HTML代码:

<div class="container">
        <header>
            <h1>HTML+CSS:滑动手风琴</h1>
        </header>
        <ul class="accordion">
            <li class="tab">
                <div class="social youtube">
                    <a href="#" >Youtube</a>
                </div>
                <div class="content">
                    <h1>Youtube</h1>
                    <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Neque, voluptates?</p>
                </div>
            </li>

            <li class="tab">
                <div class="social twitter">
                    <a href="#" >Twitter</a>
                </div>
                <div class="content">
                    <h1>Twitter</h1>
                    <p>Lorem ipsum, dolor sit amet  elit. Neque, voluptates?</p>
                </div>
            </li>

            <li class="tab">
                <div class="social facebook">
                    <a href="#" >Facebook</a>
                </div>
                <div class="content">
                    <h1>Facebook</h1>
                    <p>Lorem ipsum, dolor sit amet consectetur adque, voluptates?</p>
                </div>
            </li>

            <li class="tab">
                <div class="social linkedin">
                    <a href="#" >Linkedin</a>
                </div>
                <div class="content">
                    <h1>Linkedin</h1>
                    <p>Lorem met consectetur adipisicing elit. Neque, voluptates?</p>
                </div>
            </li>

            <li class="tab">
                <div class="social instagram">
                    <a href="#" >Instagram</a>
                </div>
                <div class="content">
                    <h1>Instagram</h1>
                    <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Neque, voluptates?</p>
                </div>
            </li>

            <li class="tab">
                <div class="social github">
                    <a href="#" >Github</a>
                </div>
                <div class="content">
                    <h1>Github</h1>
                    <p>Lorem ipsum, dolor sit amet ates?</p>
                </div>
            </li>
            
            
        </ul>
    </div>

css代码:

/* reset */
*{
    margin: 0;
    padding: 0;
    border: 0;
}

body{
    background-color:  #222;
    font-family: Arial, Helvetica, sans-serif;
}

.container{
    margin: 50px auto;
    width: 90%;
}

header h1{
    color:  #fff;
    margin-bottom: 10px;
    text-align: center; /*文本居中*/      
}

.accordion{
    background-color: #333;
    width: 100px;
    min-width: 860px;
    display: block;
    list-style: none;/*去除列表的点*/
    overflow: hidden;
    height: 200px;
    font-size: 0;
}

.tab{
    display: inline-block;/*将li设置为行内块元素,使其可设置宽高*/
    background-color: #444;
    border-right:  #333 1px solid;
    width: 80px;
    height: 200px;
    overflow: hidden;
    position: relative;
    margin: 0px;
    transition: all 0.5s ease-in-out 0.1s;/*加入过渡*/
}

/*设置鼠标移入效果*/
.tab:hover{
    width: 450px;
}

.tab:hover .social a::before{
    margin-left: -100px;
}

.tab:hover .social a::after{
    margin-left: -5px;
}

.tab .content{
    background-color: #fff;
    width: 360px;
    height: 200px;
    margin-left: 80px;
    padding:  50px 0px 0px 15px;
    position: relative;
}

.tab .content h1{
    font-size: 2.5rem;
    margin-bottom: 10px;

}

.tab .content p{
    font-size: 0.85rem;
    line-height: 1.4rem;
    padding-right: 30px;
    
}

.social a::before,
.social a::after{
    width: 80px;
    height: 200px;
    position: absolute;
    text-indent: 0;
    padding-top: 90px;
    padding-left: 25px;
    display: block;
    font: normal 30px Genericons;
    color: #fff;
    transition: all 0.4s ease-in-out 0.1s;
}

.social a::after{
    font-size: 48px;
    padding-left: 20px;
    padding-top: 80px;
    margin-left: 85px;
}

.youtube a::before,
.youtube a::after{
    content: '\f213';
}

.youtube a::after{
    background-color: #ff0000;
}

.twitter a::before,
.twitter a::after{
    content: '\f202';
}

.twitter a::after{
    background-color: #6dc5dd;
}

.facebook a::before,
.facebook a::after{
    content: '\f204';
}

.facebook a::after{
    background-color: #3b5998;
}

.linkedin a::before,
.linkedin a::after{
    content: '\f208';
}

.linkedin a::after{
    background-color: #00a9cd;
}

.instagram a::before,
.instagram a::after{
    content: '\f215';
}

.instagram a::after{
    background-color: #6dc993;
}

.github a::before,
.github a::after{
    content: '\f200';
}

.github a::after{
    background-color: #6e5494;
}





/*  media queries */
@media(max-width: 950px){
    .container{
        width: 70%;
    }
    .tab{
        display: block;
        width: 100%;
        border-bottom: 3px #333 solid;
    }
    .accordion{
        display: block;
        height: auto;
        min-width: 450px;
    }

    .tab .content{
        width: 85%;
    }
    .tab:hover{
        width: 100%;
    }
}
@media(max-width:680px){
    .container{
        width: 95%;
    }
    .accordion{
        width: 100%;
        min-width: 350px;/* 最小宽度值*/
    }
}

注意事项:

1.text-align: center;用于设置文本居中
2.list-style: none;去除无序列表的点
3.设置水平列表时,用inline-block来代替inline
4.transition设置过渡
5.min-width 设置最小宽度

存在的问题:

在显示最后一个列表时,如果出现列表闪烁,无法达到鼠标移入时列表自动展开的效果。很大一部分原因时在设置整体宽度时min-width的值较小,导致最后一个显示时宽度不够。如出现此类情况,可重新设置整体宽度的min-width

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值