博主信息
博文 8
粉丝 0
评论 0
访问量 7822
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
导航下拉菜单的实现以及对事件,定位的理解。
不加糖的浓咖啡
原创
617人浏览过

导航下拉菜单的实现

<!DOCTYPE html>

<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>导航下拉菜单</title>
<style>
*{
margin:0px;
padding:0px;
box-sizing:border-box;
}
a{
color:red;
text-decoration:none;
}
#nav{
background:black;
height:50px;
line-height:50px;
}
li{
list-style:none;
margin:0px 10px;
float:left;
}
#nav>li>a:hover{
color:white;
}
#nav>li{
position:relative;
}
#nav>li>ul{
position:absolute;
top:50px;
width:180px;
border:1px solid #aaa;
border-top:none;
}
#nav>li>url>li a{
display:line-block;
height:50px;
color:#444;
}
ul.sub li:hover{
background:#eee;
}
#nav>li>ul{
display:none;
}
</style>
</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="">php手册</a></li>
<li><a href="">在线课程</a></li>
<li><a href="">学习工具</a></li>
<li><a href="">网站源码</a></li>
</ul>
</li>
</ul>
</body>
<script>
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”;
}}
function closeSubMenu(ev){
if(ev.target.nodeName ==”A” && ev.target.nextElementSibling !== null){
ev.target.nextElementSibling.style.display=”none”;
}}
</script>
</html>

对定位的理解

  • 定位说的是元素在页面中的位置,其位置可用相对定位或绝对定位的方法进行偏移,元素默认在页面中以文档流的形式进行排列,通俗的理解就是源码中的书写位置。
  • 相对定位:position:relative;元素相对于它在页面中的默认位置发生偏移。
  • 绝对定位:positiong:absolute;元素相对于它的定位父级的位置发生偏移,如没有定位父级,就相对于body的位置发生偏移。绝对定位的上一级必须有定位设置,才会相对于它发生偏移。

对事件的理解

  • 事件,就是发生的事情,发生的动作等,代码中的事件有点击、鼠标移入移出等。
  • 时间的添加方式有两种,在元素中用属性的方式添加,或者在js代码中用对象属性的方式添加。
  • 元素的同名事件不能重复,会相互覆盖,只有最后一次添加的事件有效。
  • 用事件监听器可以为一个元素添加多个同名事件。并能够定义触发阶段(比如事件冒泡),产生什么动作。
  • 用事件监听器为元素添加事件会有事件冒泡、和事件属性两种方式。在子级元素触发一个事件时,其父级也会产生相同的事件。事件冒泡,由内向外(由子级向父级)。事件捕获,由外向内(由父级向子级(到事件的触发者))。由事件冒泡的特性,我们可以用事件代理的形式来为子级元素添加事件,简化了代码的书写。所谓事件代理,就是用父级元素来代理子级元素甚至更下一级子级元素的同名事件。
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:记得下次代码要放到代码块中再提交
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学