实战案例:横向和纵向的三级下拉菜单需要掌握hover

本文介绍了如何使用HTML、CSS和JavaScript创建横向和纵向的三级下拉菜单。通过绝对和相对定位,以及调整元素宽度,详细讲解了不同布局的实现方法,包括两个ul绝对定位实现横向三级菜单,两个ul相对定位实现竖向三级菜单,以及配合li相对定位的竖向布局。文章提供相关代码示例。
摘要由CSDN通过智能技术生成

三级下拉

类似二级下拉,在二级下拉的基础上配合定位的属性再添加一层.

一. 横向三级

在这里插入图片描述

二.纵向三级

在这里插入图片描述
文章最后后附三级下拉菜单的html代码.

1.两个ul绝对定位做横向(推荐)

此时的二级菜单有绝对定位,所以三级菜单会以二级菜单为参照物,如果不设置宽度三级菜单会出现折行的现象,所以需要给三级菜单一个宽度303px实现横向,或101px实现二级横向,三级竖向.

*{
   margin: 0;
padding: 0;}
a{
   
    text-decoration: none;
}
ul{
   
    list-style: none;
    text-align: center;
    height: 30px;
  
}
.one{
   
    margin: 0 auto;
    margin-bottom: 300px;
    width: 404px;
}

li{
   
    width: 101px;
    height: 30px;
    background-color: tomato;
    line-height: 30px;
    float: left;
}
a{
   display: block;
width: 101px;
height: 30px;
color: white;
}

.two,.three{
   
    display:none
}
/* 二级三级下拉菜单默认隐藏 */
.one>li:hover .two{
   
    display: block;
}
/* 当鼠标滑过一级菜单li时,二级菜单出现. */

.two{
   
    position: absolute;
}

.three{
   
    position: absolute;
}
/* ! 两个都用绝对做横向 */

.two li{
   
    background: blue;
}
.three li{
   
    background: blueviolet;
}
/* !给二级菜单和三级菜单背景 */

.two>li:hover .three{
   
    display: block;
    width: 303px;
}
/* !当鼠标滑过二级li时,三级菜单显示 */
/* 此时的二级菜单有绝对定位,所以三级菜单会以二级菜单为参照物,如果不设置宽度三级菜单会出现折行的现象. */
 a:hover{
   
    background: violet;
    color: black;
    text-decoration: underline;
}
.two a:hover{
   
    background: rgb(27, 199, 70);
    color: rgb(211, 119, 119);
}
.three a:hover{
   
    background: rgb(223, 219, 31);
    color: rgb(10, 19, 9);
}

2.两个ul相对定位做竖向(推荐)

只需将上面的代码去掉给三级ul的宽度
将二级菜单和三级菜单改变以下属性即可.

.two{
   
    position: relative;
}


.three{
   
    position: relative;
    left: 101px;
    top: -30px;
    width: 101px;
}

3.两个ul绝对定位配合li相对定位做竖向

由于二级的ul有绝对定位,所以三级的ul会首先以二级的ul为参照物,造成三级菜单不会跟着鼠标滑动改变位置.所以需要将二级的li做绝对定位参照物.

 .two {
   
    position: absolute;
    width: 101px;
}

.two li {
   
    position: relative;
}

.three {
   
    position: absolute;
    left: 101px;
    top: 0;

}

两个ul相对定位做横向

只需在两个ul相对定位做竖向的基础上,给二级和三级的ul增加一个宽度303px的属性即可.

三级下拉菜单的html代码
    <ul class="one">

        <li><a href="">一级</a>
            <ul class="two">
                <li><a href="">二级</a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值