首页 > 其他分享 >第8章利用CSS制作导航菜单

第8章利用CSS制作导航菜单

时间:2024-11-15 11:43:18浏览次数:3  
标签:none 菜单 color li 超链接 background 导航 CSS

8.1 水平顶部导航栏

水平菜单导航栏是网站设计中应用最广泛的导航设计,一般放置在页面的顶部。

8.1.1 简单水平导航栏的设计与实现

8.1.1.1导航栏的创建

<nav>标签是HTML5新增的文档结构标签,用于标记导航栏,以便后续与网站的其他内容整合,所以常用<nav>标签在页面上创建导航栏菜单区域。

代码如下:

<body>
		<center><h3>简单水平菜单导航栏</h3></center>
		<hr>
		<nav>
			<ul>
				<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>
				<li><a href="#">服务器</a></li>
			</ul>
		</nav>
	</body>

运行结果: 


8.1.1.2 列表样式的设计

此时会带有<ul>元素的默认样式,就是每个列表选项前面都有实心点标记,可以利用css在<head>标签中声明,对列表进行改变。

代码如下:

ul{
				list-style-type: none;
			} 
			li{
				float: left;
			}

运行结果: 


8.1.1.3 超链接样式的设计

利用CSS为超链接重新设置样式。

代码如下:

a{
				text-decoration: none;
				display: block;
				width: 150px;
                padding: 12px;
				text-align: center;
				}

运行结果: 


8.1.1.4 鼠标事件

利用CSS为a:hover和 a:active进行样式设置,表示鼠标悬停和活动连接状态时的变换摸样。

代码如下: 

a:link, a:visited{
				background-color: aqua;
				color: pink;
			}
			a:hover, a:active{
				background-color: greenyellow;
				color: yellow;
			}

运行结果: 


8.1.2 下拉子菜单导航栏的设计与实现

下拉子菜单导航是网站设计中常见的子导航设计,一般用于多级别、内容庞杂的网站。

8.1.2.1导航栏的创建

代码如下: 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>下拉子导航栏的制作</title>
		<style type="text/css">
		</style>
	</head>
	<body>
		<center>
			<h3>下拉子菜单导航栏</h3>
		</center>
		<hr>
		<nav>
			<div id="nav">
				<ul>
					<li><a href="#">前端</a>
						<ol>
							<li><a href="#">HTML5</a></li>
							<li><a href="#">CSS</a></li>
							<li><a href="#">Javascript</a></li>
						</ol>
					</li>
					<li><a href="#">后台</a>
						<ol>
							<li><a href="#">Java</a></li>
							<li><a href="#">PHP</a></li>
							<li><a href="#">Python</a></li>
						</ol>
					</li>
					<li><a href="#">移动应用</a>
						<ol>
							<li><a href="#">Android</a></li>
							<li><a href="#">IOS</a></li>
						</ol>
					</li>
					<li><a href="#">数据库</a>
						<ol>
							<li><a href="#">MySql</a></li>
							<li><a href="#">SqlServer</a></li>
						</ol>
					</li>
					<li><a href="#">操作系统</a>
						<ol>
							<li><a href="#">Linux</a></li>
							<li><a href="#">Unix</a></li>
							<li><a href="#">Windows</a></li>
						</ol>
					</li>
					<li><a href="#">服务器</a>
						<ol>
							<li><a href="#">Tomcat</a></li>
							<li><a href="#">WebSphere</a></li>
							<li><a href="#">WebLogicc</a></li>
						</ol>
					</li>
				</ul>
			</div>
		</nav>
	</body>
</html>

运行结果: 


8.1.2.2 列表样式的设计

此时会带有<ul>元素的实心点标记,及<ol>元素的阿拉伯序号,可以利用CSS在<head>标签中进行声明,对列表样式进行改变。

代码如下: 

	ul, ol{
				list-style-type: none;
				padding: 0;
				margin: o;
			}
			ul li{
				float: left;
				
			}
			ul li ol li{
				float: none;
			}

运行结果: 


8.1.2.3 二级菜单的隐藏和显示设计

为了使有序列表的二级菜单隐藏起来,需要设置display属性为none。

为了悬停时可以显示菜单,需要设置有序列表的display属性为block。

代码如下: 

ul li ol{
				display: none;
			}
			ul li:hover ol{
				display: block;
			}

运行结果: 

 


8.1.2.4 DIV样式的设计

完成以上关键步骤后,对内容所处的div样式进行设置,包括宽度、高度、边框和对齐方式。

8.1.2.5 超链接样式的设计

利用CSS为列表超链接重新设置样式,对超链接的a:hover和 a:active进行设置,表示超链接未被访问或已访问状态。然后将其display属性设置为black,使得超链接成为块级元素,这样才可以为超链接设置宽度。

代码如下: 

a{
				display: block;
				text-decoration: none;
				padding: 12px;
				width: 150px;
				text-align: center;
			}
			ul li a{
				background-color: aqua;
				color: lightpink;
			}
			ul li ol li a{
				background-color: pink;
				color: yellow;
			}

运行结果: 


8.1.2.6 鼠标事件

利用CSS为无序列表选项li: hover和 a: hover进行样式设置,表示鼠标悬停状态时的样式变化。

代码如下: 

ul li a:hover{
				border-bottom: lightgreen solid 3px; 
			}
			ul li ol li a:hover{
				border-bottom:none;
				background-color: paleturquoise;
				color: yellow;

运行结果: 


8.2 纵向侧边导航栏

纵向侧边导航栏是网站设计中应用频率仅次于水平导航栏的导航设计,一般放在首页的左上角。

8.2.1 简单纵向导航栏的设计与实现

8.2.1.1导航栏的创建

纵向侧边导航栏同样可以使用超链接和列表元素来实现,只需要将文字链接设置为块级元素。

区别于水平导航栏,侧边导航栏不需要设置列表选项<li>的浮动属性。

代码如下: 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<nav>
			<div id="nav">
				<h3 class="tit">所有商品分类</h3>
				<ul>
					<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>
					<li><a href="#">运动器材</a></li>
				</ul>
			</div>
		</nav>
	</body>
</html>

运行结果:

 


8.2.1.2 DIV样式的设计

对导航栏所处的div样式进行设置,同时对大标题文字的CSS进行设置,包括高度、行高、颜色和对齐方式。

代码如下: 

div{
				background-color: pink;
				width: 150px;
				padding: 10px;
			}
			h3{
				text-align: center;
				color: aliceblue;
			}

运行结果: 


8.2.1.3 列表样式的设计

使用list-style-type属性去掉<ul>元素的默认实心圆点样式,设置margin和padding的属性值。

代码如下: 

ul{
				list-style-type: none;
				padding: 0;
				margin: 0;
a{
				text-decoration: none;
				line-height: 30px;
				display: block;
				width: 150px;
				text-align: center;

运行结果: 


8.2.1.4 超链接样式的设计

利用CSS为列表超链接重新设置样式,对超链接的a: link和 a: visted进行设置,表示超链接未被访问或已访问状态。利用CSS为列表超链接重新设置样式,对超链接的a:hover和 a:active进行设置,表示超链接未被访问或已访问状态时的样式变化。然后将其display属性设置为black,使得超链接成为块级元素,这样才可以为超链接设置宽度。

代码如下: 


a:link, a:visited{
				background-color: pink;
				color: white;
			}
			a:hover, a:active{
				/* background-color: white; */
				color: pink;
				background-image: url(img/bg.JPG);
			}

运行结果: 


8.2.2 出式子菜单导航栏的设计与实现

和下拉子菜单一样,是网站中常见的子导航设计,只是出式子菜单多于侧边纵向导航栏。

8.2.2.1 导航栏的创建

代码如下:

<html>
	<head>
		<meta charset="utf-8" />
		<title>出式子导航栏的制作</title>
		<style type="text/css">
			
		</style>
	</head>
	<body>
		<nav>
			<div id="nav">
				<h3 class="tit">所有商品分类</h3>
				<ul>
					<li><a href="#">家居用品<img src="img/more.JPG" align="right" /></a>
						<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>
					</li>
					<li><a href="#">手机数码<img src="img/more.JPG" align="right" /></a>
						<ol>
							<li><a href="#">电脑主机</a></li>
							<li><a href="#">鼠标键盘</a></li>
							<li><a href="#">无人机</a></li>
							<li><a href="#">数码相机</a></li>
						</ol>
					</li>
					<li><a href="#">家用电器<img src="img/more.JPG" align="right" /></a>
						<ol>
							<li><a href="#">吸尘器</a></li>
							<li><a href="#">电饭煲</a></li>
							<li><a href="#">冰箱</a></li>
						</ol>
					</li>
					<li><a href="#">厨卫工具<img src="img/more.JPG" align="right" /></a>
						<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>
					</li>
					<li><a href="#">汽车用品<img src="img/more.JPG" align="right" /></a>
						<ol>
							<li><a href="#">打蜡服务</a></li>
							<li><a href="#">超级试驾</a></li>
							<li><a href="#">导航仪</a></li>
							<li><a href="#">机油</a></li>
						</ol>
					</li>
					<li><a href="#">运动器材<img src="img/more.JPG" align="right" /></a>
						<ol>
							<li><a href="#">跑鞋</a></li>
							<li><a href="#">帐篷</a></li>
							<li><a href="#">山地车</a></li>
						</ol>
					</li>
				</ul>
			</div>
		</nav>
	</body>
</html>

运行结果: 


8.2.2.2 DIV样式的设计

对导航栏所处的div和文字的CSS样式进行设置。

代码如下: 

div{
				background-color: pink;
				width: 150px;
				padding: 10px;
			}
			h3{
				text-align: center;
				color: aliceblue;
			}
			ul, ol{
				list-style-type: none;
				padding: 0;
				margin: 0;
			}


8.2.2.3 二级菜单的隐藏和显示设计

为了使有序列表的二级菜单隐藏起来,需要设置display属性为none。

代码如下:

ul li{
				position: relative;
			}
			ul li ol{
				display:none;
				position: absolute;
				left: 150px;
				top:-1px;
			}
			ul li:hover ol{
				display:block;
			}


8.2.2.4 列表样式的设计

使用list-style-type属性去掉默认标记。


8.2.2.5 超链接样式的设计

利用CSS为列表超链接重新设置样式,对超链接的a: link和 a: visted进行设置,表示超链接未被访问或已访问状态。利用CSS为列表超链接重新设置样式,对超链接的a:hover和 a:active进行设置,表示超链接未被访问或已访问状态时的样式变化。然后将其display属性设置为black,使得超链接成为块级元素,这样才可以为超链接设置宽度。

	a{
				display: block;
				width: 150px;
				line-height:30px;
				text-decoration: none;
				text-align: center;
				background-color: pink;
				color: white;
			}
			ul li a:hover{
				color:pink;
				background-image:url(img/bg2.JPG);
			}
			ul li ol li a:hover{
				background-image: none;
				background-color: white;
			}

运行结果:


8.3 底部固定导航栏

顾名思义就是放在页面底部,是网站设计的一种辅助导航。


8.3.1 导航栏的创建

在<nav>的首尾标签之间,使用<div>标签创建菜单范围,结合无序列表<ul>配合列表选项<li>创建菜单选项。

代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<nav>
			<div class="fix-footer">
				<ul>
					<li><a href="#">首页</a></li>
					<li><a href="#">前端</a></li>
					<li><a href="#">后台</a></li>
					<li><a href="#">移动应用</a></li>
				</ul>
			</div>
		</nav>
	</body>
</html>

运行结果:


8.3.2 列表样式的设计

使用list-style-type属性去掉<ul>元素的默认实心圆点样式,设置margin和padding的属性值。列表选项设置float属性,让列表元素能够在同一行显示。

代码如下:

ul{
				list-style-type: none;
				margin: 0;
				padding: 0;
			}
			li{
				float: left;
			}


8.3.3 菜单固定底部的设计

为了美化文字内容的外观,可以设置div的高度、宽度、背景和边框以及文本对齐方式。设置z-index属性的优先值让导航菜单始终处于页面的最上层。

设置位置属性position和各个方向的位置值使导航菜单固定位于页面底部。

8.3.4 超链接样式的设计

利用CSS为列表超链接重新设置样式,对超链接的a: link和 a: visted进行设置,表示超链接未被访问或已访问状态。然后将其display属性设置为black,使得超链接成为块级元素。

代码如下:

a{
				display: block;
				width: 80px;
				padding: 10px;
				text-decoration: none;
				text-align: center;
			}

8.3.5 鼠标事件

对超链接的a:hover和 a:active进行设置,表示超链接未被访问或已访问状态时的样式变化。

代码如下:

a:link, a:visited{
				background-color: pink;
				color: white;
			}
			a:hover, a:active{
				background-color: white;
				color: pink;
			}

运行结果:


8.4 综合案例——优名养生馆

8.4.1 封面页的设计与实现

代码如下: 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>优名养生馆</title>
		<style type="text/css">
			body{
				background-image: url(img/bg.jpg);
			}
			ul{
				margin: 0;
				padding: 0;
				list-style-type: none;
			}
			li{
				width: 25%;
				float: left;
				line-height: 50px;
			}
			img{
				margin-top: 70px;
				margin-right: 40px;
			}
			.footer{
				height: 50px;
				width: 100%;
				background-image: url(img/footer-bg.jpg);
				border-top: 3px solid gray;
				text-align: center;
				z-index: 9998;
				position: fixed;
				bottom: 0;
				left: 0;
			}
			.footer-top{
				height: 90px;
				width: 90px;
				text-align: center;
				line-height: 90px;
				z-index: 9999;
				position: fixed;
				bottom: 0;
				left: 45%;
			}
			.footer-top a{
				border-radius: 90px;
			}
			.footer-top a:link,a:visited{
				display: block;
				font-size: 20px;
				color: brown;
				text-decoration: none;
				font-weight: bold;
				border-top: 3px solid gray;
				background-image: url(../img/img/footer-top-bg1.jpg);
			}
			.footer-top a:hover{
				background-image: url(../img/img/footer-top-bg2.jpg);
				color: white;
			}
			.footer-top a:link,a:visited{
				display: block;
				font-size: 20px;
				color: brown;
				text-decoration: none;
				font-weight: bold;
			}
			.footer a:hover{
				background-color: darkgray;
				border-left: 2px solid white;
				border-right: 2px solid white;
				font-size: 16px;
				color: red;
			}
		</style>
	</head>
	<body>
		<div>
			<marquee direction="right" scrollamount="20">
				<img src="../img/img/marquee1.jpg"/>
				<img src="../img/img/marquee2.jpg"/>
				<img src="../img/img/marquee3.jpg"/>
			</marquee>
		</div>
		<nav>
			<div class="footer-top">
				<a href="../index.html">进入官网</a>
			</div>
			<div class="footer">
				<ul>
					<li><a href="#">奇幻世界</a></li>
					<li><a href="#">主题风采</a></li>
					<li><a href="#">加盟相关</a></li>
					<li><a href="#">友情推荐</a></li>
				</ul>
			</div>
		</nav>
	</body>
</html>

运行结果:


8.4.2 主页的设计与实现
 

代码如下: 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>优名养生馆</title>
		<style>
			body{
				background-image: url(img/hh.jpg);
			}
			.all{
				margin: 0px auto;
				width: 900px;
			}
			.top{
				width: 900px;
				height: 225px;
				background-image: url(img/top-bg.jpg);s
			}
			.cent{
				width: 320px;
				margin-left: auto;
				margin-right: auto;
				font-size: 58px;
				font-family: "楷体";
				color: lemonchiffon;
				font-style: italic;
			}
			.nav{
				width: 200px;
				float: left;
				margin-top: 30px;
				font-size: 20px;
				font-weight: bold;
				color: saddlebrown;
			}
			.main{
				width: 700px;
				height: 300px;
				float: left;
				margin-top: 10px;
			}
			.footer{
				font-size: 14px;
				font-weight: bold;
				color: brown;
				text-align: center;
				clear: both;
				background-image: url(img/footer-bg.jpg);
			}
			p{
				color: brown;
				font-size: 16px;
			}
			img{
				margin: 15px;
			}
			ul{
				list-style-type: none;
			}
			li{
				list-style-type: none;
			}
			li{
				height: 22px;
			}
			a:link{
				font-size: 16px;
				text-decoration: none;
				color: brown;
			}
			a:hover{
				background-color: burlywood;
				color: white;
			}
		</style>
	</head>
	<body>
		<div class="all">
			<div class="top">
				<br />
				<div class="cent">优名养生馆</div>
			</div>
			<nav>
				<div class="nav">
					<table>
						<tr>养生之道</tr>
						<tr>
							<ul>
								<li><a href="#">运动养生</a></li>
								<li><a href="#">四季养生</a></li>
								<li><a href="#">健康检测</a></li>
							</ul>
						</tr>
						<tr>中医养生</tr>
						<tr>
							<ul>
								<li><a href="#">经络养生</a></li>
								<li><a href="#">体质养生</a></li>
								<li><a href="#">特色疗法</a></li>
							</ul>
						</tr>
					</table>
				</div>
			</nav>
			<div class="main">
				<img src="../img/img/main.jpg" align="left"/>
				<p>&emsp;&emsp;古人云:善养生者,上养神智、中养形态、下养筋骨。</p>
				<p>&emsp;&emsp;养生不是简单的体育锻炼、也不是吃一顿营养餐、
				打一套太极拳。养生是以调阴阳、和气血、保精神为原则,运用调神、导引吐纳
				、四时调摄、食养、药养、节欲、服气辟谷等多种方法,以期达到保养、调养
				、颐养生命,实现人类健康、长寿的目的</p>
				<p>&emsp;&emsp;养生,是养护保养生命,以达到长寿。养生不是简单的体育锻炼、也不是吃一顿营养餐、
				打一套太极拳。养生是以调阴阳、和气血、保精神为原则,运用调神、导引吐纳
				、四时调摄、食养、药养、节欲、服气辟谷等多种方法,以期达到保养、调养
				、颐养生命,实现人类健康、长寿的目的养生不是简单的体育锻炼、也不是吃一顿营养餐、
				打一套太极拳。养生是以调阴阳、和气血、保精神为原则,运用调神、导引吐纳
				、四时调摄、食养、药养、节欲、服气辟谷等多种方法,以期达到保养、调养
				、颐养生命,实现人类健康、长寿的目的</p>
			</div>
			<hr />
			<hr />
			<hr />
			<div class="footer">版权所有&copy;优名养生馆</div>
		</div>
	</body>
</html>

运行结果:

标签:none,菜单,color,li,超链接,background,导航,CSS
From: https://blog.csdn.net/2301_80756005/article/details/143382939

相关文章

  • 第九章 DIV+CSS布局
    9.1DIV+CSS概述9.1.1认识DIVdiv标签在Web标准的网页中使用非常频繁,属于块状元素。div标签是双标签,即以<div></div>的形式存在,中间可以放置任何内容,包括其他的div标签。但是在没有CSS的影响下,每个div标签只占据一行,即一行只能容纳一个div标签。9.1.2DIV的宽高设置对div......
  • SwiftUI 4.0 的全新导航系统
    SwiftUI4.0的全新导航系统东坡肘子​公共号:肘子的Swift记事本​关注他 34人赞同了该文章​展开目录 长久以来,开发者对SwiftUI的导航系统颇有微词。受NavigationView的能力限制,开发者需要动用各种技巧乃至黑科技才能实现一些......
  • 使用Tailwind CSS的几个小Tips
    前情TailwindCSS是一个原子类CSS框架,它将基础的CSS全部拆分为原子级别。它的工作原理是扫描所有HTML文件、JavaScript文件以及任何模板中的CSS类名,然后生成相应的样式代码并写入到一个静态CSS文件中。TailwindCSS快速、灵活、可靠、没有运行时负担。自从接触了Tai......
  • 第九章DIV+CSS布局
    9.1DIV+CSS概述    DIV+CSS是Web设计标准,它是一种网页的布局方法。与传统中通过表格(table)布局定位的方式不同,它可以实现网页页面内容与表现相分离。DIV组成了网页的格局,CSS 则装饰了格局,比如建一栋房子,开始的架子是DIV,架子搭建好后开始装饰,这个装饰就是CSS样式。用......
  • 响应式Web设计:纯HTML和CSS实现技巧
    响应式Web设计是一种确保网页在不同设备和屏幕尺寸下都能良好显示的设计方法。以下是使用纯HTML和CSS实现响应式设计的关键技巧:流式布局(FluidLayouts):使用相对单位(如百分比)而非固定单位(如像素)来定义元素的宽度,使元素能根据容器宽度动态调整。媒体查询(MediaQueries):根据不同......
  • <Project-23 Navigator Portal> Python flask web 网站导航应用 可编辑界面:添加图片、UR
    目的:浏览器的地址簿太厚,如下图:开始,想给每个Web应用加icon来提高辨识度,发现很麻烦:createimage,resize,还要挑来挑去,重复性地添加代码。再看着这些密密麻麻的含有重复与有规则的字符,真刺眼!做这个PortalWeb应用来进行网站应用导航,docker部署后,占用端口:9999,可以在ap......
  • CSS DAY2
    盒子模型:盒子模型盒子模型介绍盒子的概念   页面中的每一个标签,都可看做是一个“盒子”,通过盒子的视角更方便的进行布局浏览器在渲染(显示)网页时,会将网页中的元素看做是一个个的矩形区域,我们也形象的称之为盒子。  CSS中规定每个盒子分别由:内容区域(content)、......
  • 检测 HTML5\CSS3\JAVASCRIPT 在浏览器的适应情况
    https://www.cnblogs.com/czhyuwj/p/4796690.html CSS3SelectorsTest:这是CSS3.INFO网站提供的css选择器测试页面,它能够详细显示当前浏览器对所有CSS3选择器的支持情况。启动测试,浏览器会自动测验,并已列表的方式显示当前浏览器对所有css3选择器的支持情况  http://tool......
  • 数据可视化CSS3
    可视化-解决方案2D动画-transform坐标系transform-origin3D动画-transform3D旋转-rotateZ、rotateX、rotateY3D旋转-rotate3d3D透视-perspective3D位移-translateX、translateY、translateZ3D位移-translate3d3D缩放-scaleX、scaleY、scaleZ3D缩放-scale3d......
  • 大学生网页设计制作作业实例代码 HTML+CSS+JS (1)
    文章目录......