html二级菜单:DIV+CSS制作二级菜单(横排二级下拉菜单)以及二级菜单出现错位怎么解决

html二级菜单制作(横排二级下拉菜单)以及二级菜单出现错位怎么解决

摘要:DIV+CSS制作二级菜单(横排二级下拉菜单)以及二级菜单出现错位怎么解决(解决办法放在代码下面)

1.先看一下最终的效果图

在这里插入图片描述
在这里插入图片描述

2. 来先看具体代码吧,设计的具体思路就放在代码下面哈哈哈ヾ(≧▽≦*)o

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>二级菜单</title>
	<style>
   	  	/*去除网页原有的格式*/
		* { margin:0; padding:0;}
		/*去除标签前的圆点*/
		ul, li { list-style:none;}
		/*去除下划线*/
		a { text-decoration:none;}
		/*盛放二级菜单的盒子*/
		.mxl_bigbox_10{
			width: 620px;
			height:300px;
			background-color: pink;
			margin: 15px auto auto  30%;
			float:left;
			position: relative;
			padding-left:15px;
			padding-top: 15px: 

		}
		ul li{float:left; }
		ul li a{
			width:120px;
			height:30px;
			font-size: 20px;
			text-align: center;
			font-family: 宋体;
			line-height: 25px;
			/*将元素显示为块级元素display:block;*/
			display: block;
			border-right:2px solid silver;
            border-bottom: 0.3px solid silver;
            background-color: #E8E8E8;
            color:black;


		}
		/*鼠标悬停改变背景颜色*/
		ul li a:hover{background-color:aqua; }
		/*display:none;用来隐藏二级菜单  */
		ul li ul{
			position: absolute;
			display:none;
		}
		/*float:none;使二级菜单不左右浮动也是默认值*/
		ul li ul li{
			float: none;
		}
		ul li ul li a{
				border-top:1px dashed silver; 
		}
		/*在鼠标移到li上的时候它下面的ul会显示*/	
		ul li:hover ul{display:block;}



	</style>
		
</head>
<body>
			
	<div  class="mxl_bigbox_10">
			<ul>
				<li><a href="#">首页</a>
					<ul>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
					</ul>					
				</li>

				<li><a href="">验收专栏</a>
					 <ul>						
							<li><a href="#">2级菜单</a></li>
							<li><a href="#">2级菜单</a></li>
							<li><a href="#">2级菜单</a></li>
							<li><a href="#">2级菜单</a></li>
							<li><a href="#">2级菜单</a></li>
					 </ul>

				</li>
				
				<li><a href="">专业概况</a>
					<ul>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
					</ul>
				</li>

				<li><a href="">教学资源</a>
					<ul>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
					</ul>
				</li>

				<li><a href="">获奖状况</a>
					<ul>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
						<li><a href="#">2级菜单</a></li>
					</ul>
				</li>

			</ul>

	</div>
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by/4.0/">知识共享署名 4.0 国际许可协议</a>进行许可。

</body>
</html>

3.二级菜单出现错位解决办法如下:

错位原因:再css样式里即内没有添加去掉网页原有属性的代码(* { margin:0; padding:0;}),接下来我把源代码里的 * { margin:0; padding:0;}注释掉来看看网页打开后的效果图:

在这里插入图片描述

很明显已经错位了!

ヾ(≧▽≦*)o😊喜欢的话就留个赞吧!

😊😊布局思路:通过 ul li ul li的嵌套以及使用div 、css 、a三种标签来一起实现二级菜单。

具体步骤如下:

1. 首先在body部分用div标签做一个盒子,在盒子内部(div内部) 用“<ul><li><a>一级菜单</a></li></ul>”生成一级菜单然, 但是此时所有一级菜单带式竖向排列的,每个一级菜单还需要在style内把一级菜单通过“display:block;”设置成块,再给他们加上边框;
2.然后通过“float:left;”控制浮动,这样横向排列的一级菜单就好了;一些细节方面比如一级菜单的边框颜色、像素大小、背景色文字在框里的位置都得设置好。
3.接着在一级菜单里嵌入二级菜单即<ul><li><a>一级菜单</a><ul><li><a>二级菜单</a></li></ul></li></ul>
4.嵌入后接下来控制二级菜单的样式,通过绝对定位使二级菜单出现在一级菜单下然后隐藏即“{ position:absolute; display:none;}”,但是这时二级菜单还是横向排列的,只需用“float:none;”不让其左右浮动就可以完成。
5.最后,当鼠标移动到一级菜单上时二级菜单这时时显示不出来的,还需要添加“ul li:hover ul{ display:block}”使二级菜单显示出来;下面的文字部分和图片部分是用两个小盒子,通过类选择器独立控制各自的样式。

🎈🎈🎈注意点:盛放二级菜单的盒子宽度,要根据标签的宽度来决定 ;比如你的ul li {width: 60px;height:30px} 有六个一级菜单,那么60*6=360那么你的盒子的宽度要至少大于300左右;

🎈🎈🎈 padding属性还会撑大盒子,所以在调节标签里的文字居中时尽量不要用padding,建议使用text-align:center;和line-height:多少px;一起使用,主要调节line-height,就可以;文字的大小尽量小点,不然还是会出现问题。
  • 57
    点赞
  • 200
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答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样式,你就可以设计出一个简单的纵向二级菜单。这个菜单设计在许多不同的网站中都是很常见的,因为它既简单易用,同时还为网站提供了更好的导航体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值