批改状态:合格
老师批语:这个案例目前有点超前了, 大家先有点感觉吧

<style>*{margin:0;padding:0;box-sizing:border-box;}/*给a标签设置颜色和文本装饰*/a {color : #bbb;text-decoration: none;}/*给#nav主导航设置背景色,高度,行内字体高度*/#nav {background-color:red;height:50px;line-height:50px;}/*设置所有li的样式*/li{list-style:none;margin:0 10px;float:left;}/*设置#nav的子元素的子元素a标签鼠标在导航菜单上悬浮时的效果*/#nav > li > a:hover {color:white;}/*主导航相对于它的父级#nav定位*/#nav > li {position:relative;}/*设置#nav子元素的子元素,子菜单的定位因为#nav>li时定位了,所以会依照#nav>li的定位进行定位*/#nav > li > ul {position:absolute;top:50px;width:180px;border:1px solid #aaa;border-top:none}/*设置子菜单里a标签的样式*/#nav > li >ul > li a{display:inline-block;height:50px;color:#444;}/*初始时子菜单不显示*/#nav>li>ul{display:none;}</style>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>下拉菜单</title></head><body><ul id="nav"><li><a href="">首页</a></li><li><a href="">视频教程</a></li><li><a href="">资源下载</a><ul><li><a href="">PHP工具</a></li><li><a href="">在线手册</a></li><li><a href="">学习课件</a></li><li><a href="">网站源码</a></li></ul></li><li><a href="">社区问答</a></li><li><a href="">技术文章</a><ul><li><a href="">头条</a></li><li><a href="">博客</a></li><li><a href="">PHP教程</a></li><li><a href="">PHP框架</a></li></ul></li></ul></body></html>
<script>//获取所有的主导航 "#nav>li"表示这个类的子元素,不包含子元素的下级子元素const navs = document.querySelectorAll("#nav > li");navs.forEach(function (nav){//鼠标移入时显示子菜单nav.addEventListener("mouseover", showSubMenu);//鼠标移出时关闭子菜单nav.addEventListener("mouseout",closeSubMenu);});//显示子菜单function showSubMenu(ev){//判断当前这个导航有没有子菜单,有就显示在块中if(ev.target.nextElementSibling !==null){ev.target.nextElementSibling.style.display = "block";}}//关掉子菜单 判断有没有子菜单,同时满足有a标签的function closeSubMenu(ev){if(ev.target.nodeName ==="A" && ev.target.style.nextElementSibling !==null){ev.target.nextElementSibling.style.display = "none";}}</script>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号