DIV+CSS 二级菜单实现

DIV+CSS实现二级菜单

在网页制作中我们经常会用到的这样的导航栏+二级菜单布局 实现效果如下:
在这里插入图片描述
设计思路就是通过 ul li 的双重嵌套来实现二级菜单,l利用display:none将二级菜单默认隐藏,li:hover鼠标悬浮时再将其显示出来。
需要注意的是:
1.需要清除掉网页的原始属性 以防止二级菜单错位*{margin:0;padding:0;}
2.在一级菜单中使用display: block; float:left 使其横向显示
3.使用绝对对位 然后使二级菜单默认隐藏position:absolute;display:none;
4.使用display: block;将二级菜单显示为独占一行
5.在二级菜单中需要将浮动清除float:none
6.设置二级菜单的宽度与一级同宽 使其显示正常

实现非常简单 具体代码如下:
1.HTML部分

<div class="nav">
			<ul>
				<li>
					首页
				</li>
				<li>
					CSS布局与定位
					<div class="droplist">
						<ul>
							<li><a href="1. CSS布局与定位/1.1 盒子模型Ⅰ.html">盒子模型Ⅰ</a></li>
							<li><a href="1. CSS布局与定位/1.2 盒子模型Ⅱ.html">盒子模型Ⅱ</a></li>
							<li><a href="1. CSS布局与定位/1.3 CSS定位机制.html">CSS定位机制</a></li>
							<li><a href="1. CSS布局与定位/1.4 文档流定位.html">文档流定位</a></li>
							<li><a href="1. CSS布局与定位/1.5 浮动定位.html">浮动定位</a></li>
							<li><a href="1. CSS布局与定位/1.6 层定位.html">层定位</a></li>
							<li><a href="1. CSS布局与定位/1.7 弹性盒子布局.html">弹性盒子布局</a></li>
							<li><a href="1. CSS布局与定位/1.8 网格布局.html">网格布局</a></li>
							<li><a href="1. CSS布局与定位/网格布局案例.html">网格布局案例</a></li>
						</ul>
					</div>
				</li>
				<li>
					CSS3
					<div class="droplist">
						<ul>
							<li><a class="2. CSS3/2.1 圆角边框与阴影.html">圆角边框与阴影</a></li>
							<li><a href="2. CSS3/2.2 文字与文本.html">文字与文本</a></li>
							<li><a href="2. CSS3/2.3 2D变换.html">2D变换</a></li>
							<li><a href="2. CSS3/2.4 过渡与动画.html">过渡与动画</a></li>
							<li><a href="2. CSS3/2.5 3D变换.html">3D变换</a></li>
						</ul>
					</div>
				</li>
				
				<li>
					CSS综合案例
					<div class="droplist">
						<a href="3. CSS综合案例/3D翻转.html">3D翻转</a>
					</div>
				</li>
			</ul>
		</div>

这里将导航栏部分整体放置在一个flexbox中,以便于后期其他部分的编辑。用div做二级菜单的容器便于调整。

2.CSS部分

			*{
				margin: 0;
				padding: 0;
			}
			.nav{
				background-color: #333;
				display: flex;
			}
			.droplist{
				display: none;
				background-color: #333;
				position: absolute;
				float: none;
				width: 200px;
			}
			li:hover .droplist{
				display: block;
			}
			ul a{
				color: white;
				list-style-type: none;
				overflow: hidden;
				text-decoration: none;
			}
			li{
				list-style-type: none;
				display: block;
				float: left;
				width: 200px;
				height: 60px;
				line-height: 60px;
				text-align: center;
				color: white;
				cursor: pointer;
			}
			li:hover{
				background-color: #111;
			}

代码块中没有写注释,可以在评论区中讨论!祝大家五一快乐!

噢!这里为了勋章不得不废话了。。。。。。。。。。。。。。。。。
国际劳动节又称“五一国际劳动节”、“国际示威游行日”,它是世界上80多个国家的全国性节日。这一天,对于面对整日面对键盘的程序员或软件从业者,又到了春暖花开,技术骚客们又开始纷纷走出家门,开始享受美好的春光。希望搞技术的人群们,无论是那类技术都能充实的度过新的一年。
最后保佑大家都能跑路成功,不被老板追杀,阿弥陀佛!
在这里插入图片描述
在那些我们看到、看不到的角落,劳动者们用自己的双手诠释着生活的奥义,用自己的方式创造着人生的美好。他们可能是艺术家、运动员,也可能是快递员、环卫工…他们以任何形式付出的辛苦,都值得肯定和尊重;向劳动者致以深切的问候——感谢你们,您辛苦了!
广厦千万间,凝聚着每一个建筑者的心血;粮食大米和蔬菜,源于农民的辛劳和汗水;几只粉笔,三尺讲台,教师为国家输送了一代又一代的人才;救死扶伤,治病救人,医生温暖了一个又一个的家庭。是他们,给我们带来了一个更美好的世界。他们是默默无闻的奉献者,是这个时代最美丽的人!
今天,是五一劳动节,是这群最可爱的人最盛大的节日!让我们怀着感恩的心,真挚地对这群伟大的劳动者说声:劳动节快乐! 因为有你们负重前行,才有了我们的岁月静好;因为有你们的辛勤付出,才成就了我们的安暖时光。
在此,致敬所有平凡生活中不平凡的人们,是你,是我,也是他!感谢生命中的无畏的坚守,感谢生活中的无私的奉献,致敬每一个努力生活的我们!

  • 13
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 用纯CSS实现简单的二级菜单可以通过以下步骤: 1. 使用HTML创建菜单栏和子菜单的结构。 2. 使用CSS隐藏子菜单,当鼠标悬停在父菜单上时显示子菜单。 3. 使用CSS对菜单项的样式进行修饰,例如更改字体颜色、背景颜色等。 以下是一个实现二级菜单的简单HTMLCSS示例: HTML代码: ``` <nav> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a> <ul> <li><a href="#">Our Team</a></li> <li><a href="#">Our History</a></li> <li><a href="#">Our Values</a></li> </ul> </li> <li><a href="#">Services</a></li> <li><a href="#">Contact</a></li> </ul> </nav> ``` CSS代码: ``` nav ul { list-style: none; margin: 0; padding: 0; } nav ul li { display: inline-block; } nav ul li a { display: block; padding: 10px; text-decoration: none; color: #333; } nav ul li:hover > ul { display: block; } nav ul ul { display: none; position: absolute; background-color: #fff; padding: 0; } nav ul ul li { display: block; } nav ul ul li a { padding: 5px 10px; } nav ul ul li a:hover { background-color: #f5f5f5; } ``` 以上代码会实现一个具有简单二级菜单的导航栏。当鼠标悬停在“About”菜单上时,将显示三个子菜单项(Our Team,Our History和Our Values)。 ### 回答2: 要实现一个简单的纵向二级菜单,需要使用HTMLCSS。首先,我们需要为每个菜单链接创建一个列表项。用HTML的<ul>标签来创建一个无序列表,每个菜单项定义为<li>标签,则每 个次级菜单都是第一级菜单项的子级列表。接下来,我们用CSS来控制菜单项的样式和位置。 首先,我们需要增加一些样式来改变默认的无序列表样式。可以使用CSS中的list-style属性来删除点号或数字,并使用“none”值来禁用其显示。将“margin”属性设置为0可使列表项之间的间距为0。 接下来,我们需要创建菜单项的hover样式。鼠标悬停在菜单项上时,需要修改其颜色、背景色或其他样式。可以使用:hover伪类来完成这个效果。 最后,我们需要确定菜单项的位置。使用CSS中的position属性来定义元素的定位方式。可以将菜单项的定位方式设置为absolute,这样就可以将其相对于最近的已定位父元素进行定位。例如,可以将最外层的<ul>元素设置为已定位,以便在其内部菜单项定位。对于子级菜单,我们可以设置其父级菜单项的position属性为relative,并将子级菜单的top属性设置为父级菜单项的高度,这样子级菜单就会出现在其父级菜单项的下方。 通过上述步骤,我们就可以实现一个简单的纵向二级菜单。如下面的代码: HTML: <ul> <li><a href="#">菜单1</a> <ul> <li><a href="#">子菜单1.1</a></li> <li><a href="#">子菜单1.2</a></li> <li><a href="#">子菜单1.3</a></li> </ul> </li> <li><a href="#">菜单2</a> <ul> <li><a href="#">子菜单2.1</a></li> <li><a href="#">子菜单2.2</a></li> <li><a href="#">子菜单2.3</a></li> </ul> </li> </ul> CSS: ul { margin: 0; padding: 0; list-style: none; position: relative; /*设置最外层列表的定位属性*/ } li { display: block; position: relative; float: left; } ul ul { position: absolute; top: 100%; /*设置子菜单的top属性*/ left: 0; display: none; z-index: 999; } ul li:hover > ul { display:inherit; } ul li a { display:block; padding:0 10px; line-height: 30px; text-decoration:none; } ul li:hover a { color: #fff; background: #000; } ul ul li { width:100%; float:none; display:list-item; position: relative; } ul ul ul li { position:relative; top:-60px; left:100%; } ### 回答3: div css实现纵向简单的二级菜单是基于CSS的菜单设计。如果你想要增加网站的可导航性,那么使用CSS菜单设计将会非常方便。 CSS菜单设计中最常见的就是横向菜单,但是如果你想实现纵向简单的二级菜单也是十分容易的。 首先,你需要创建两个具有子标签的div元素,一个作为导航栏的容器,一个作为菜单项的容器,并将它们都设置为显示为block元素。 ``` html <div class="nav-container"> <div class="menu-item"> <a href="#">菜单1</a> <ul> <li><a href="#">子菜单1-1</a></li> <li><a href="#">子菜单1-2</a></li> <li><a href="#">子菜单1-3</a></li> </ul> </div> <div class="menu-item"> <a href="#">菜单2</a> <ul> <li><a href="#">子菜单2-1</a></li> <li><a href="#">子菜单2-2</a></li> <li><a href="#">子菜单2-3</a></li> </ul> </div> </div> ``` 接下来,在CSS文件中,你需要设置.nav-container元素以及.menu-item元素的样式,以确保它们垂直排列,并使用一些CSS属性来隐藏其子元素的菜单项,直到鼠标悬停在它们上面的时候才显示。 ``` css .nav-container { display: block; } .menu-item { display: block; position: relative; padding: 10px; } ul { display: none; position: absolute; top: 100%; left: 0; margin: 0; padding: 0; } .menu-item:hover > ul { display: block; } ``` 这里我们设置子菜单的display为none,并设置它的position为absolute,使它在父元素.menu-item中完全脱离文档流,接下来是它的left和top值,我们设置成100%和0,使它能够完全垂直地展开。 最后,我们使用:hover伪类选择器来控制子菜单的显示和隐藏,这使得只有在鼠标悬停在菜单项上时才显示子菜单。 使用上面的CSS样式,你就可以设计出一个简单的纵向二级菜单。这个菜单设计在许多不同的网站中都是很常见的,因为它既简单易用,同时还为网站提供了更好的导航体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶极致

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值