实现简单的导航栏效果

:hover 选择器实现简单的导航栏效果

:hover 选择器

:hover 选择器用于选择鼠标指针浮动在上面的元素。
ps: :hover 选择器可用于所有元素,不只是链接。

一级导航栏效果

一般网页做导航栏都是有跳转效果的功能,所以一般li中都包含了a标签。
i标签里可以放小图标。

html代码

<div class="nav">
			<ul class="nav_ul">
				<li>
					<a href="">首页 <i></i> </a>
				</li>
				<li>
					<a href="">视频 <i></i> </a>
				</li>
				<li>
					<a href="">小说 <i></i> </a>
				</li>
				<li>
					<a href="">音乐 <i></i> </a>
				</li>
				<li>
					<a href="">游戏 <i></i> </a>
				</li>
				<li>
					<a href="">其他 <i></i> </a>
				</li>
			</ul>
		</div>

css代码

*{
			padding: 0;
			margin:0;
		}
		li{
			list-style: none;
		}
		a{
			/*取消a标签下边的线*/
			text-decoration: none;
		}
		.nav{
			width: 300px;
			margin: 30px auto;
		}
		.nav_ul li{
			width: 150px;
			line-height: 35px;
			background-color: powderblue;
		}
		ul.nav_ul li a{
			width: 100px;
			line-height: 35px;
			display: inline-block;
			background-color: lavenderblush;
			padding-left: 25px;
			/*相对自己定位*/
			position: relative;
		}
		/*根据ul找类名为nav_ul的ul下的i*/
		ul.nav_ul i{
			/*改为行内块元素*/
			display: inline-block;
			width: 20px;
			height: 20px;
			/*背景图片*/
			background-image: url(img/shape.png);
			/*背景图片不平铺*/
			background-repeat: no-repeat;
			/*绝对定位 相对于它最近的已有定位的父级元素定位*/
			position: absolute;
			right: 5px;
    		top: 11px;
		}
		
		/*li的hover效果*/
		ul.nav_ul li:hover{
			/*更换li的背景颜色*/
			background-color: plum;
			/*鼠标放上去变成小手*/
			cursor: pointer;
		}
		/*li下的a标签的hover效果*/
		ul.nav_ul li:hover a{
			/*更换a标签的字体颜色*/
			color: lightgreen;
		}
		/*li下的a标签的i的hover效果*/
		ul.nav_ul li:hover a i{
			/*更换背景图片*/
			background-image: url(img/shape1.png);
		}

hover之前的效果:
在这里插入图片描述
hover之后的效果:
在这里插入图片描述
注意: 这个放上去改变了li的背景 ,只是被a标签挡住了一部分。想改变一行的背景颜色的话,可以给a标签的宽高跟li的一样大。然后给a标签的hover改背景颜色。
效果如下
在这里插入图片描述
ps: 一般都在所有要改变元素的大盒子的hover中改变效果,如果不是,容易出现鼠标只有放在给hover的元素上才会出现对应的效果,没有整体性。

二级导航栏效果

简单的二级菜单
html代码

<div class="nav">
			<ul class="nav_ul">
				<li>
					<a href="">首页 <i></i> </a>
				</li>
				<li>
					<a href="">视频 <i></i> </a>
					<!--二级菜单 start-->
					<div class="second_menu">
						<ol>
							<li><a href="">长安十二时辰</a></li>
						</ol>
					</div>
					<!--二级菜单 end-->
				</li>
				<li>
					<a href="">小说 <i></i> </a>
					<!--二级菜单 start-->
					<div class="second_menu">
						<ol>
							<li><a href="">天官赐福</a></li>
							<li><a href="">杀破狼</a></li>
							<li><a href="">镇魂</a></li>
						</ol>
					</div>
					<!--二级菜单 end-->
				</li>
				<li>
					<a href="">音乐 <i></i></a>
					<!--二级菜单 start-->
					<div class="second_menu">
						<ol>
							<li><a href="">富士山下</a></li>
							<li><a href="">夜空中最亮的星</a></li>
							<li><a href="">不如不见</a></li>
							<li><a href="">单车</a></li>
							<li><a href="">陀飞轮</a></li>
						</ol>
					</div>
					<!--二级菜单 end-->
				</li>
				<li>
					<a href="">游戏 <i></i> </a>
					<!--二级菜单 start-->
					<div class="second_menu">
						<ol>
							<li><a href="">英雄联盟</a></li>
							<li><a href="">4399</a></li>
							<li><a href="">绝地求生</a></li>
						</ol>
					</div>
					<!--二级菜单 end-->
				</li>
				<li>
					<a href="">其他 <i></i> </a>
				</li>
			</ul>
		</div>

css代码

*{
			padding: 0;
			margin:0;
		}
		li{
			list-style: none;
		}
		a{
			/*取消a标签下边的线*/
			text-decoration: none;
		}
		.nav{
			width: 300px;
			margin: 30px auto;
		}
		.nav_ul li{
			width: 150px;
			line-height: 35px;
			background-color: powderblue;
			position: relative;
		}
		ul.nav_ul li a{
			width: 150px;
			line-height: 35px;
			display: inline-block;
			background-color: lavenderblush;
			padding-left: 25px;
			/*相对自己定位*/
			position: relative;
		}
		/*根据ul找类名为nav_ul的ul下的i*/
		ul.nav_ul i{
			/*改为行内块元素*/
			display: inline-block;
			width: 20px;
			height: 20px;
			/*背景图片*/
			background-image: url(img/shape.png);
			/*背景图片不平铺*/
			background-repeat: no-repeat;
			/*绝对定位 相对于它最近的已有定位的父级元素定位*/
			position: absolute;
			right: 5px;
    		top: 11px;
		}
	
		/*li下的a标签的hover效果*/
		ul.nav_ul li:hover a{
			color: lightgreen;
			background-color: plum;
		}
		/*li下的a标签的i的hover效果*/
		ul.nav_ul li:hover a i{
			background-image: url(img/shape1.png);
		}
		/*二级菜单显示*/
		ul.nav_ul li:hover .second_menu{
			display: block;
		}
		/*二级菜单*/
		.second_menu{
			width: 150px;
			background-color: lightgoldenrodyellow;
			/*根据一级菜单中它的父元素绝对定位*/
			position: absolute;
			left: 174px;
			top: 0px;
			/*隐藏*/
			display: none;
		}
		.second_menu ul li{
			width: 150px;
			line-height: 35px;
		}
		.second_menu ol li a{
			display: block;
			background-color: lightgoldenrodyellow;
		}
		.second_menu ol li:hover a{
			background-color: blanchedalmond;
		}

hover之前效果
在这里插入图片描述
hover之后效果
在这里插入图片描述

在这里插入图片描述

ps
想把二级菜单放哪里就把它定位在哪里,直接改变他的定位代码就行了。
例子(定位到左边)

/*二级菜单*/
		.second_menu{
			width: 150px;
			background-color: lightgoldenrodyellow;
			/*根据一级菜单中它的父元素绝对定位*/
			position: absolute;
			/*改变这一句代码就ok了*/
			right: 174px;
			top: 0px;
			/*隐藏*/
			display: none;
		}

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

注意 二级菜单中的li可能会受到上面的样式影响,这是就会有优先级的问题。

发布了24 篇原创文章 · 获赞 0 · 访问量 761

猜你喜欢

转载自blog.csdn.net/weixin_45846263/article/details/103215313
今日推荐