CSS+JavaScript下拉菜单布局与代码执行

article/2025/9/8 1:46:49

导读:今天来通过一个安居客web下拉菜单来总结一下怎么用css布局以及通过js切换css效果

 头部的布局以及下拉菜单布局

实现代码:

<html>
<body><div class="box"><ul class="body"><li><a href="#">首页</a><ul></ul></li><li><a href="#">新房</a><ul class="pull-down"><li> <a href="#">新盘</a></li><li> <a href="#">楼讯</a></li><li> <a href="#">热门活动</a></li></ul></li><li><a href="#">二手房</a><ul class="pull-down"><li><a href="#">地图找房</a></li><li><a href="#">房源</a></li><li> <a href="#">小区</a></li></ul></li><li><a href="#">租房</a><ul class="pull-down"><li> <a href="#">区域找房</a></li><li><a href="#">地图找房</a></li><li><a href="#">地铁找房</a></li></ul></li><li><a href="#">商铺写字楼</a><ul class="pull-down"><li> <a href="#">商铺出租</a></li><li><a href="#">商铺出售</a></li><li> <a href="#">商铺新盘</a></li></ul></li><li><a href="#">海外地产</a><ul></ul></li><li><a href="#">装修</a><ul></ul></li><li><a href="#">楼讯</a><ul></ul></li><li><a href="#">房产研究院</a><ul></ul></li><li><a href="#">房价</a><ul></ul></li></ul></div>
</body>
</html>

css布局部分:

<style>* {margin: 0;padding: 0;}.box {width: 100%;height: 48px;background-color: #62AB00;position: relative;float: left;line-height: 48px;}li {list-style: none;}.body>li {float: left;list-style: none;position: relative;}.body {width: 1180px;margin: 0 auto;height: 100%;}ul>li>a {text-decoration: none;padding: 0 15px;font-size: 18px;color: black;}li>.pull-down>a {text-decoration: none;}li>.pull-down a:hover {color: green;}.pull-down {border: 1px solid #ccc;background-color: #F9F9F9;position: absolute;left: 0;width: 150px;z-index: 344;display: none;}.hover {background-color: #528E01;}</style>

css这一块主要核心是通过盒子浮动,定位来布局,还有对选择器的熟练掌握

js代码块实现鼠标移入目标事件,显示下拉菜单,失去鼠标焦点隐藏下拉菜单

主要重点在于逻辑的判断,通过for循环来遍历鼠标移入目标的具体项,主要防止效果重复不消失

然后就是DOM中对于父子节点的掌握,通过父节点找到子节点,实现下拉菜单的显示隐藏

<script>var move = document.querySelectorAll('.body>li');// console.log(move[0])for (i = 0; i < move.length; i++) {move[i].onmouseover = function () {this.children[1].style.display = 'block'this.className = 'hover'// console.log("dianjil")}move[i].onmouseout = function () {this.className = ''this.children[1].style.display = 'none'}}</script>

这里需要注意得是这样通过父子节点找事件,会出现一个BUG,就是在鼠标移入没有第二个子节点的项时会报错,但是不影响运行。为什么出现,因为我们的需求是要寻找子集菜单,而子集菜单是children【1】项,就是下标为1的那个,但是所有的项并不都是有下拉菜单,这样就会导致在运行中找不到下标为【1】的children,就会报错。

此时正常

此时报错 

 

 把鼠标放入首页上就报错,

怎么解决

1,在没有children【1】项的地方添加一个空标签,促使执行时找到有第二个子节点

2,通过if判断length的长度,比较复杂,但是更适合开发使用


http://chatgpt.dhexx.cn/article/jsrFDf1w.shtml

相关文章

CSS实现的大型导航下拉菜单

阅读目录 阐述HTML结构CSS 预览 阐述 这是一款纯 CSS 实现的大型导航下拉菜单。 该大型菜单使用 HTML 和纯 CSS 代码制作&#xff0c;没有任何 js 代码&#xff0c;不依赖任意第三方插件。 适合用于栏目分类较多的大型网站使用。 HTML结构 该大型菜单的HTML结构如下&#x…

零基础CSS入门教程(29)–CSS下拉菜单实例

点此查看 所有教程、项目、源码导航 本文目录 1. 前言2. 开发过程2.1 HTML元素组成2.2 设定按钮样式2.3 设置菜单区域样式 2.4 设置菜单中链接样式2.5 设置下拉菜单样式 3. 小结 1. 前言 下拉菜单也是使用频率很高的网页控件&#xff0c;例如百度首页上方的【设置】按钮就是一…

css下拉菜单代码(用纯css实现下拉菜单)

用纯css代码写一个css下拉菜单&#xff0c;二级菜单opacity默认是0&#xff0c;鼠标在一级菜单hover时opacity就是1&#xff0c;opacity从0到1有一个transition过渡时间1秒钟&#xff0c;就实现了css下拉菜单动画缓慢出现效果&#xff0c;具体看下面例子代码。 css下拉菜单代码…

html用css做下拉菜单,纯css实现下拉菜单

纯css实现下拉菜单 1、效果如下&#xff1a; 2、html代码 时间最近 时间最近评论最多被赞最多 3、css代码 * { margin: 0; padding: 0; } ul { list-style: none; } .drop-box { box-sizing: border-box; width: 150px; font-size: 14px; text-align: center; border-radius: 1…

CSS下拉菜单

共有三种可悬停的下拉内容&#xff1a;下拉文本&#xff0c;下拉菜单&#xff0c;下拉式图像 一.下拉文本 当用户鼠标悬停到指定文本时&#xff0c;会出现的文本下拉框&#xff0c;下面是效果图&#xff1a; HTML <body><div class"wai"><span>把…

纯css 下拉选择,纯CSS实现的下拉菜单

实现效果 实现代码 html homewordpress themespluginstutorialsweb design resourceslinkstutorials html/cssjqueryother stuffthingsother stuffgraphic designinspirationcontactabout pure css drop down menu a simple dropdown navigation menu made with css only. drop…

CSS 下拉菜单

使用 CSS 创建可悬停的下拉列表。 1. 基础的下拉菜单 创建当用户将鼠标移到元素上时出现的下拉框。 代码如下&#xff1a; <!DOCTYPE html> <html> <head> <style> .dropdown {position: relative;display: inline-block; }.dropdown-content {dis…

html css下拉菜单居中,css如何设置下拉菜单?

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。 CSS 能够对网页中元素位置的排版…

CSS 如何制作下拉菜单

下拉菜单 .dropdown 类使用 position:relative&#xff0c;当我们希望将下拉内容放置在下拉按钮的正下方&#xff08;使用 position:absolute&#xff09;时&#xff0c;需要使用该类。 .dropdown-content 类保存实际的下拉菜单内容。默认情况下它是隐藏的&#xff0c;并将在悬…

Oracle Flex ASM

Oracle Flex ASM 允许 Oracle ASM 实例运行在与数据库服务器分离的物理服务器上。通过这种部署&#xff0c;更大的 Oracle ASM 实例集群可以支持更多的数据库客户端&#xff0c;同时减少整个系统的 Oracle ASM占用空间。当使用 Oracle Flex ASM 时&#xff0c;Oracle ASM 客户端…

从AssemblyInfo.cs里获得信息

AssemblyInfo.cs文件代码片段: [assembly: AssemblyTitle( "" )][assembly: AssemblyDescription( "" )][assembly: AssemblyConfiguration( "" )][assembly: AssemblyCompany( "" )][assembly: AssemblyProduct( " 飞鼠工作室 &…

.NET Assembly

Load GAC Assembly class Program ... { static void Main(string[] args) ...{ // 动态引用GAC的Assembly Assembly assembly Assembly.Load("GACDemo,Version1.0.0.0,Cultureneutral,PublicKeyTokenb821349f6886a4a6"); …

VS 创建assemblyinfo项目信息文件

1、先右键项目名称,点击“属性” 2、点击“程序集信息” 3、修改 4、生成GUID AssemblyInfo.cs主要用来设定生成的有关程序集的常规信息dll文件的一些参数请看以下具体说明://备注: [assembly:Assembly

C# 获取应用程序exe的AssemblyInfo.cs文件信息

通过 FileVersionInfo类获取应用程序AssemblyInfo的信息。 比如想获取文件说明//strPath是exe的完整路径 string strFileDescription FileVersionInfo.GetVersionInfo(strPath).FileDescription;

C#中AssemblyInfo.cs文件详解

1、.Net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件&#xff0c;一般情况下我们很少直接改动该文件。但我们实际上通过另一个形式操作该文件。那就是通过在鼠标右键点击项目的属性进入“应用程序”->“程序集信息”&#xff0c;然后修改信息。 2、通过特…

内存错误分析工具----asan(AddressSanitizer)的介绍和使用

目录 1 ASAN介绍 2 使用前提 2.1 gcc版本大于4.8 2.2 系统中有asan 3 使用方法 3.1 makefile中增加编译选项-fsanitizeaddress -g 3.2 makefile中链接libasan.so库 3.3 export选项 4 编译运行可执行程序 在项目中遇到了一个内存泄漏的问题&#xff0c;最开始用valgrind…

VS中AssemblyInfo.cs文件详解

1、.Net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件&#xff0c;一般情况下我们很少直接改动该文件。但我们实际上通过另一个形式操作该文件。那就是通过在鼠标右键点击项目的属性进入“应用程序”->“程序集信息”&#xff0c;然后修改信息。 2、通过特…

AssemblyInfo.cs文件详解

1、.Net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件&#xff0c;一般情况下我们很少直接改动该文件。但我们实际上通过另一个形式操作该文件。那就是通过在鼠标右键点击项目的属性进入“应用程序”->“程序集信息”&#xff0c;然后修改信息。 2、通过特…

window开机自动运行python脚本

最近写了一个项目需要开机自启&#xff0c;在网上找了很多方法&#xff0c;终于成功了&#xff0c;在这里记录一下步骤 方法一&#xff1a;使用window自带了任务计划程序 在任务计划程序中点击创建基本任务输入名称&#xff0c;名称一般随意&#xff0c;最好不要包含中文 根据…

Android 程序随开机自动运行

目录 本文导读 应用开机自启 常用系统事件 本文导读 因为业务需要&#xff0c;项目中需要实现 APP 跟随系统开机后自动运行&#xff0c;环境是&#xff1a;minSdkVersion 17、targetSdkVersion 28、Android Studio 3.1.2&#xff0c;本人手机 系统为 Android 5.1.1。 网络…