CSS & HTML 手风琴菜单

84 篇文章 0 订阅

CSS & HTML 手风琴菜单

教程地址原文地址(YouTube)

B站教程原文转载(bilibili)

两个视频的内容相同,第二个为转载

效果图

在这里插入图片描述

代码区

以下代码为本人填写,转载请注明教程地址和本贴地址

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <link rel="stylesheet" href="css/style.css">
    <script src="js/all.js"></script>

</head>
<body>
    <div class="middle">
        <div class="menu">
            <li class="item" id="user">
                <a href="#user" class="btn"><i class="fa fa-user" aria-hidden="true"></i>
                    User</a>
                <div class="smenu">
                    <a href="#">Posts</a> <!--帖子-->
                    <a href="#">picture</a> <!--图片-->
                </div>
            </li>
            <li class="item" id="Messages">
                <a href="#Messages" class="btn"><i class="fa fa-envelope" aria-hidden="true"></i>
                    Messages</a> <!--留言内容-->
                <div class="smenu">
                    <a href="#">new</a> <!--新的-->
                    <a href="#">Sent</a> <!--已发送-->
                    <a href="#">Spam</a><!--垃圾箱-->
                </div>
            </li>
            <li class="item" id="Settings">
                <a href="#Settings" class="btn"><i class="fa fa-cog" aria-hidden="true"></i>
                    Settings</a> <!--设置-->
                <div class="smenu">
                    <a href="#">Password</a> <!--密码-->
                    <a href="#">Language</a> <!--语言-->
                </div>
            </li>
            <li class="item">
                <a href="#" class="btn"><i class="fa fa-sign-out-alt" aria-hidden="true"></i>
                    Logout</a> <!--退出-->
            </li>
        </div>
    </div>
</body>
</html>

CSS


*{
    margin: 0; /*外边距*/
    padding: 0; /*内边距*/
    font-family: sans-serif; /*字体设置*/
    list-style: none; /*清除默认样式*/
    text-decoration: none; /*文本修饰,(去除下划线)*/
}
body,html{
    min-width: 100%; /*最小宽度*/
    min-height: 100%; /*最大宽度*/
    background:linear-gradient(270deg,#74b9ff,#a29bfe); /*渐变(角度,颜色1,颜色2)*/
}
 /*.middle(中间),menu(菜单),item(项),smenu(子菜单)*/
.middle{
    position: absolute; /*绝对定位*/
    top:50%; /*距上部*/
    left: 50%; /*距左部*/
    transform: translate(-50%,-50%); /*移动,此设置为把定位的元素中心作为定位点*/
}
.menu{
    width: 300px; /*宽度*/
    border-radius: 8px; /*圆角*/
    overflow: hidden; /*超出内容隐藏*/
}
.item{
    border-top: 1px solid #2980b9; /*上边框*/
    overflow: hidden;
}
.btn{
    display: block; /*块元素*/
    padding:  16px 20px; 
    background: #3498db; 
    color: #fff; /*字体颜色*/
    position: relative; /*相对定位*/
}
.btn::before{ /*之前添加*/
    content: ""; /*添加内容*/
    position: absolute; /*相对定位*/
    width: 14px; 
    height: 14px;
    background: #3498db; 
    left: 20px;
    bottom: -7px;
    transform: rotate(45deg); /*角度旋转*/
}
.btn i{
    margin-right: 10px; /*右外边距*/
}
.smenu{
    background: #333; 
    overflow: hidden; 
    transition:  0.5s; /*动画时间*/
    max-height: 0; /*最大高度*/
}
.smenu a{
    position: relative; /*相对布局*/
    display: block; /*块元素*/
    padding: 16px 26px; 
    color: #fff; 
    font-size: 14px; /*字体大小*/
    margin: 4px 0;
}
.smenu a::before{ /*之前添加,此处为子菜单a前面的蓝色线条*/
    content: ""; /*内容*/
    position: absolute; /*绝对布局*/
    width: 6px;
    height: 100%;
    background: #3498db;
    left:0;
    top:0;
    transition: 0.3s; /*过渡时间*/
    opacity: 0; /*透明度*/
}
.smenu a:hover::before{ /*悬停时*/
    opacity: 1; 
}
.item:target .smenu{ /*匹配:target属性里面的对应id的元素将其设置*/
    max-height: 10em; 
    /*详细内容见:https://developer.mozilla.org/zh-CN/docs/Web/CSS/:target*/
}

JS

 //图标请自行下载

教程地址原文地址(YouTube)

B站教程原文转载(bilibili)

  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值