批改状态:合格
老师批语:目前自己写不出没有关系 , js脚本 直接抄老师的就可以, 重点放在html,css上
.red{color:green;}<link rel="stylesheet" href="style.css" /><a href="https://www.php.cn/" target="_self">php</a><a href="http://127.0.0.1:5500/0612/demo1.rar" target="_blank">php</a><a href="mailto:774288543@qq.com" target="_blank">给我发邮件</a><a href="tel:18865321212" target="_blank">打电话</a>
<a href="#hello" target="_blank">跳转到锚点</a><h1 id="hello" style="margin-top: 1000px;">Hello Word</h1>
<ul><li><a href="">首页</a></li><li><a href="">秒杀</a></li><li><a href="">plus</a></li></ul>
<ol start="5"><li><a href="">电脑、办公</a></li><li><a href="">服装/男装/女装</a></li><li><a href="">图书/文娱、教育</a></li></ol>
<dl><dt>电话:</dt><dd><a href="tel:76546554">手机</a></dd><dd><a href="tel:774288546" target="_blank">7742</a></dd><dt>地址:</dt><dd>青岛市市北区</dd></dl>
1.静态定位 position:static;
一般的标签元素不加任何定位属性都属于文档流定位。
2.相对定位 position:relative; 相对于自己的初始位置开始定位
3.绝对定位 position:absolute; 绝对定位必须要有一个父级元素为定位参照物,否则就相对于body左上角进行定位(就是一步一步往上找,往上都没有定位参照物就按照body来);
<style>body{border: 1px solid red;hight: 100vh;}.box1{border: 2px solid blue;width: 200px;hight: 200px;position: relative;top: 50px;left: 50px;}.box2{border: 2px solid green;width: 100px;hight: 100px;position: absolute;top: 50px;left: 50px;}</style><body><div class="box1"></div><div class="box2"></div></body>


<button onclick="console.log(this.innerText)">按钮1</button>
<script>//document.querySelectorAll("button") 拿到多个按钮//此处为啥用function函数不是很明白document.querySelectorAll("button")[1].onclick = function () {console.log("第一次点击");};document.querySelectorAll("button")[1].onclick = function () {console.log("第二次点击");};</script>
3.通过添加事件监听器来添加.addEventListener (推荐方式)
点击按钮3,控制台输出第一次点击和第二次点击
<script>// const 声明一个只读的常量。一旦声明常量的值不能改变const btn3 = document.querySelectorAll("button")[2];//btn3.addEventListener(事件类型,事件方法);btn3.addEventListener("click", function () {console.log("第一次点击");});btn3.addEventListener("click", function () {console.log("第二次点击");});</script>
<body><div><li><a href="">点击我试试看</a></li></div><script>const a = document.querySelector("a");const li = document.querySelector("li");const div = document.querySelector("div");const body = document.body;//事件冒泡:由内向外a.addEventListener("click", showTagName, false);li.addEventListener("click", showTagName, false);div.addEventListener("click", showTagName);body.addEventListener("click", showTagName);//事件捕获:由内向外(true,必须写)a.addEventListener("click", showTagName, true);li.addEventListener("click", showTagName, true);div.addEventListener("click", showTagName, true);body.addEventListener("click", showTagName, true);function showTagName() {alert(this.tagName);}</script></body>
body><ul><li>item1</li><li>item2</li><li>item3</li><li>item4</li><li>item5</li></ul></body><script>// const lis = document.querySelectorAll("li");// lis.forEach(function (li) {// li.addEventListener("click", function () {// console.log(li.innerText);// });// });// ev: 事件对象// 事件代理: 用父级代理所有子元素以及更下一级的元素上的同名事件document.querySelector("ul").addEventListener("click", function (ev) {// ev.target: 返回的是当前正在触发事件的元素console.log(ev.target);// ev.currentTarget: 返回的是事件绑定者console.log(ev.currentTarget);});</script></html>
<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>

再写css样式
<style>/* 元素样式初始化: 学到盒模型再详细介绍box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。border-box:为元素设定的宽度和高度决定了元素的边框盒。*/* {margin: 0;padding: 0;box-sizing: border-box;}/* 定义a链接文本颜色并清除a链接自带样式 */a {/* color: rgba(255, 255, 255, 0.7); */color: #bbb;text-decoration: none;}/* 给导航nav也就是最大的ul 设置背景色为黑色 高度为50*/#nav {background-color: black;height: 50px;line-height: 50px;}/* 清楚li自带样式,做左浮动 ,设置外边距*/li {list-style: none;margin: 0 10px;float: left;}/* 给nav里面的li里面的a标签设置一个效果鼠标悬停高亮显示 */#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 > ul > li a {display: inline-block;height: 50px;color: #444;}ul.sub li:hover {background-color: #eee;}/* 初始化时不要显示子菜单 */#nav > li > ul {display: none;}</style>

<script>//获取所有主导航const navs = document.querySelectorAll("#nav > li");navs.forEach(function (nav) {// 鼠标移入时: 显示子菜单nav.addEventListener("mouseover", showSubMenu);// 鼠标移出时: 关掉子菜单nav.addEventListener("mouseout", closeSubMenu);});// 显示子菜单function showSubMenu(ev) {console.log(ev.target);// 当前这个导航有没有子菜单?if (ev.target.nextElementSibling !== null) {ev.target.nextElementSibling.style.display = "block";}}// 关掉子菜单 ,判断当前正在被触发元素(ev.target)必须是a标签才关掉.nodeName返回标签名//.nextElementSibling 有没有兄弟元素function closeSubMenu(ev) {if (ev.target.nodeName === "A" && ev.target.nextElementSibling !== null) {ev.target.nextElementSibling.style.display = "none";}}</script>

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