html 二级菜单

html 二级菜单先放效果图:首先设置菜单的基本轮廓<divid=”nav”><ul><li><ahref=”#”>一级菜单1</a></li><li><ahref=”#”>一级菜单2</a></li><li>…

大家好,又见面了,我是你们的朋友全栈君。

先放效果图:
在这里插入图片描述

首先设置菜单的基本轮廓

<div id="nav">
<ul>
<li><a href="#">一级菜单1</a></li>
<li><a href="#">一级菜单2</a></li>
<li>
<a href="#" class="caidan3">菜单3</a>
<ul class="yincang">
<li><a href="#">javascript</a></li>
<li><a href="#">子菜单2</a></li>
<li><a href="#">子菜单3</a></li>
</ul>
</li>
<li><a href="#">一级菜单3</a></li>
<li><a href="#">一级菜单4</a></li>
<li><a href="#">一级菜单5</a></li>
</ul>
</div>

基本原理就是二级菜单先设置隐藏,当鼠标放到一级菜单之上时再显示二级菜单

核心代码:

 ul li ul{ 

display: none;
}
li:hover .yincang{ 

display: block;
}

注意要点

1.一级菜单和二级菜单必须在同一个父元素之下。
2. (这之前的必须是一级菜单的上一级,比如当前代码,一级菜单是“菜单三”,为a标签,那么这里就应该写它的上一级‘li’)li:hover .yincang(后面就直接写被隐藏的元素标签)
3. line-height: 设置行间距
4. text-decoration: none :去除a元素的下划线
5. list-style:none :去除 ul li的圆点

完整代码:

<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style> *{ 
 margin: 0; padding: 0; } #nav{ 
 background: #eee; width: 600px; height: 40px; margin: 0 auto; } ul{ 
 list-style:none; } ul li{ 
 float: left; line-height: 40px; text-align: center; position: relative; } a{ 
 text-decoration: none; color: #000; display: block; padding: 0 10px; height: 40px; } a:hover{ 
 color: #fff; background: #666; } ul li ul li{ 
 float: none; background: #eee; margin-top: 2px; } ul li ul{ 
 position: absolute; left: 0; top: 40px; } ul li ul li a{ 
 width: 80px; } ul li ul li a:hover{ 
 background: #06f; } ul li ul{ 
 display: none; } .yiji:hover .yincang{ 
 display: block; } </style>
</head>
<body>
<div id="nav">
<ul>
<li><a href="#">一级菜单1</a></li>
<li><a href="#">一级菜单2</a></li>
<li class="yiji">
<a href="#" class="caidan3">菜单3</a>
<ul class="yincang">
<li><a href="#">javascript</a></li>
<li><a href="#">子菜单2</a></li>
<li><a href="#">子菜单3</a></li>
</ul>
</li>
<li><a href="#">一级菜单3</a></li>
<li><a href="#">一级菜单4</a></li>
<li><a href="#">一级菜单5</a></li>
</ul>
</div>
</body>
</html>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130619.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • ACM中Java输入输出[通俗易懂]

    ACM中Java输入输出[通俗易懂]最初写算法时,是用Scanner的。因为当时接触的测试数据基本都是以算法的复杂度为主,但是后面遇到大量的输入数据时。发现Scanner远远不能满足条件。下面列出几种常用的输入输出方式。(输出统一用printwriter,系统的system.out太慢,结尾要释放缓存才能输出,不然数据放在缓存中输不出来)1:Scanner这个类最慢,但是最好用,因为这个类没有缓存处理,所以io方面大量输入…

  • docker部署jenkins安装使用教程_docker安装python

    docker部署jenkins安装使用教程_docker安装python前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

  • executescalar mysql_ExecuteScalar

    executescalar mysql_ExecuteScalar这两个答案和一点点思考使我想到了一个接近答案的东西。首先再澄清一下:该应用程序是用C#(2.0+)编写的,并使用ADO.NET与SQLServer2005进行通信。镜像设置是托管主体和镜像的两个W2k3服务器以及托管作为监视器的快速实例的第三个服务器。这样做的好处是,故障转移对于使用数据库的应用程序几乎是透明的,它将对某些连接引发错误,但从根本上讲一切都会很好地进行。是的,我们得到了奇怪的误报…

  • oracle赋予dba用户权限_oracle给用户dba权限

    oracle赋予dba用户权限_oracle给用户dba权限很多时候我们用拥有DBA权限的用户从oracle数据库导出数据,那么再导入新的数据库时就还得需要DBA权限的用户,下面是如何创建一个新用户并授予DBA权限命令。1.用有dba权限的用户登录:sys用户2.创建一个新用户:createuserabcidentifiedby123456;3.授予DBA权限:grantconnect,resource,dbatoabc;ok,创建好了,就可以用abc这个用户登录了,abc用户拥有dba权限。select*fromdba_user

  • vuex的五大核心_vue实现页面传值的方式

    vuex的五大核心_vue实现页面传值的方式Vuex的核心概念Vuex有5个核心概念,分别是State,Getters,mutations,Actions,Modules。StateVuex使用单一状态树,也就是说,用一个对象包含了所有应

  • slic超像素分割算法_hdr算法

    slic超像素分割算法_hdr算法原文出自:https://blog.csdn.net/Fighting_Dreamer/article/details/77170859SLIC与目前最优超像素算法的比较RadhakrishnaAchanta,AppuShaji,KevinSmith,AurelienLucchi,PascalFua,andSabineS¨usstrunk摘要近年来,计算机视觉应用越来越依赖…

    2022年10月28日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号