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>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python如何使用继承

    python如何使用继承#-*-coding:utf-8-*-'''使用继承'''classSchoolMember:def__init__(self,name,age,

    2022年7月6日
    27
  • .net 读书笔记

    好书不能只读一遍,这两天又翻看了一遍《你必须知道的.NET》,重温了下基础,重温了下经典,简单记录了下来。内存分配:CLR管理内存的区域,主要有三块,分别为:线程的堆栈,用于分配值类型实例。堆栈

    2021年12月23日
    43
  • 报关与报检的区别和联系_简述报关与报检的区别

    报关与报检的区别和联系_简述报关与报检的区别区别是,报关是向海关申报,海关查验的重点是申报的货物与实际是否相符报检是向商检局申报,商检的查验重点是货物是否符合合同的或国家或国际的相关标准和要求.所有进出口货物均必须向海关申报不是所有的进出口货物都需要报商检,(看货物的HS编码是否属于免检范围)联系是,先报检后报关,凭商检检货合格后出具的”换证凭条”(单)换通关单,再凭通关单及其他相关单据向海关申报问题:通关单

    2022年9月15日
    3
  • QT是什么?

    QT是什么?了解QT踏上开发这条路已经有好几年了,通过这些年的学习,自己也总结了一些基础的知识,在这里,跟大家分享下。QT是什么1.Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。2、Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaObject

    2022年5月17日
    95
  • linux重启mysql

    linux重启mysqllinux重启mysql的方法:1、直接使用“servicemysqldrestart”或“servicemysqlrestart”命令重启;2、使用“/etc/init.d/mysqldrestart”命令重启。1、查看mysql版本方法一:status;方法二:selectversion();2、Mysql启动、停止、重启常用命令a、重启1)、使用service启动: 1 2 servicemysqldres.

    2022年10月17日
    3
  • JavaScript之继承

    JavaScript之继承

    2020年11月19日
    173

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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