1、css编写:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>二级菜单--css</title>
<style>
ul,li{
margin: 0;
padding: 0;
list-style: none;
}
a{
text-decoration: none;
color: #999;
}
a:hover{
color: red;
}
.nav{
width: 700px;
height: 40px;
background-color: #E3E4E5;
}
.main-menu{
margin-left: 200px;
border-top: 1px solid #E3E4E5;
}
.main-menu li{
float: left;
line-height: 40px;
text-align: center;
padding: 0 15px;
position: relative;
}
ul li:hover{
background-color: #EFEFEF;
}
.sub-menu{
width: 260px;
background-color: #EFEFEF;
border-bottom: 1px solid #E3E4E5;
border-left: 1px solid #E3E4E5;
border-right: 1px solid #E3E4E5;
/*子菜单绝对定位*/
position: absolute;
top:40px;
left: 0;
/*默认不显示*/
display: none;
}
.main-menu li:hover .sub-menu{
display: block;
}
</style>
</head>
<body>
<div class="nav">
<ul class="main-menu">
<li><a href="">我的订单</a></li>
<li><a href="">我的京东</a>
<ul class="sub-menu">
<li>
<ul>
<li><a href="">待处理订单</a></li>
<li><a href="">降价商品</a></li>
</ul>
</li>
<li>
<ul>
<li><a href="">我的问答</a></li>
<li><a href="">我的关注</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="">企业采购</a>
<ul class="sub-menu">
<li>
<ul>
<li><a href="">企业购</a></li>
<li><a href="">工业品</a></li>
</ul>
</li>
<li>
<ul>
<li><a href="">商用场景馆</a></li>
<li><a href="">礼品卡</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>点击 "运行实例" 按钮查看在线实例
2、JavaScript编写
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>二级菜单--JavaScript</title>
<style>
ul,li {
margin: 0;
padding: 0;
list-style: none;
}
a {
text-decoration: none;
color: #999;
}
a:hover {
color: red;
}
.nav {
width: 700px;
height: 40px;
background-color: #E3E4E5;
}
.main-menu {
margin-left: 200px;
}
.main-menu li {
float: left;
line-height: 40px;
text-align: center;
padding: 0 15px;
/*定位父级*/
position: relative;
}
ul li:hover {
background-color: #EFEFEF;
}
.sub-menu {
width: 260px;
background-color: #EFEFEF;
/*子菜单绝对定位*/
position: absolute;
top: 40px;
left: 0;
/*默认不显示*/
display: none;
}
/*.main-menu li:hover .sub-menu {*/
/* display: block;*/
/*}*/
.active {
display: block;
}
</style>
</head>
<body>
<div class="nav">
<ul class="main-menu">
<li><a href="">我的订单</a></li>
<li>
<a href="">我的京东</a>
<ul class="sub-menu">
<li>
<ul>
<li><a href="">待处理订单</a></li>
<li><a href="">降价商品</a></li>
</ul>
</li>
<li>
<ul>
<li><a href="">我的问答</a></li>
<li><a href="">我的关注</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="">企业采购</a>
<ul class="sub-menu">
<li>
<ul>
<li><a href="">企业购</a></li>
<li><a href="">工业品</a></li>
</ul>
<li>
<ul>
<li><a href="">商用场景馆</a></li>
<li><a href="">礼品卡</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<script>
// 将css中原有的鼠标hover事件删除或注释掉,改用JS脚本实现
// 先在css中添加一个自定义的类样式: .active {display: block} 备用
// 1. 获取主菜单
var mainMenu = document.getElementsByClassName('main-menu').item(0);
// 2. 获取主菜单所有菜单项并转为数组
var menus = Array.from(mainMenu.children);
// console.log( menus);
// 3. 为每一个主菜单添加鼠标移入与移出事件
menus.forEach(function (menu) {
// 鼠标移入显示二级菜单,移出则隐藏二级菜单
menu.addEventListener('mouseover', show, false);
menu.addEventListener('mouseout', show, false);
});
function show(ev) {
// 二菜菜单是当前主菜单项的最后一个子元素,将'active'动态添加到它上面即可
// console.log( ev.target);
ev.currentTarget.lastElementChild.classList.toggle('active');
}
</script>
</body>
</html>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号