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

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

时间:2024-11-15 19:45:47浏览次数:3  
标签:none 菜单 color 第八章 li nav background CSS

8.1 水平顶部导航栏

8.1.1 简单水平导航栏的设计与实现
简单水平导航栏是网页设计中非常常见的元素,它通常位于页面的顶部,并提供主要的网站导航选项。下面我们将详细讲解如何创建一个基本的水平导航栏,包括HTML结构、CSS样式以及鼠标事件处理。

1 导航栏的创建
首先,我们需要使用HTML来定义导航栏的基本结构。通常我们会用<nav>标签包裹整个导航区域,然后在其中放置一个无序列表<ul>,每个列表项<li>包含一个链接<a>指向不同的页面或部分。

<nav>
  <ul>
    <li><a href="#home">首页</a></li>
    <li><a href="#about">关于我们</a></li>
    <li><a href="#services">服务</a></li>
    <li><a href="#contact">联系我们</a></li>
  </ul>
</nav>
这里我们使用了语义化的HTML5标签<nav>来明确表示这是一个导航区。这样不仅对搜索引擎友好,也便于屏幕阅读器等辅助技术理解页面结构。

2 列表样式的设计
接下来,我们要移除默认的列表样式(如点状符号),并使列表项水平排列。这可以通过CSS完成:
nav ul {
  list-style: none; /* 移除默认的列表标记 */
  padding: 0; /* 去掉内边距 */
  margin: 0; /* 去掉外边距 */
  background-color: #333; /* 设置背景颜色 */
  overflow: hidden; /* 清除浮动 */
}
 
nav li {
  float: left; /* 让列表项水平排列 */
}

通过设置float: left;属性,我们可以让<li>元素从垂直堆叠变为水平排列。同时,为<ul>添加了背景色,以增加视觉上的区分度。

3 超链接样式的设计
为了让导航链接看起来更像按钮而不是普通的文本链接,我们需要进一步定制它们的样式。这包括去除下划线、设定字体大小和颜色等。

nav a {
  display: block; /* 将链接转换为块级元素,以便应用宽度和高度 */
  color: white; /* 文字颜色 */
  text-align: center; /* 水平居中文本 */
  padding: 14px 16px; /* 内填充,给链接添加一些空间 */
  text-decoration: none; /* 去除下划线 */
}

这里将<a>元素设置为block显示类型,使得它可以拥有宽度和高度,并且用户点击时更容易命中目标。同时,通过设置内填充,可以确保链接之间有一定的间距,提高可用性。

4 鼠标事件
最后,为了增强用户体验,我们还可以添加一些交互效果,比如当用户将鼠标悬停在某个链接上时改变其背景色或文字颜色。这可以通过CSS中的:hover伪类轻松实现:

nav a:hover {
  background-color: #111; /* 鼠标悬停时的背景色 */
  color: #f1f1f1; /* 鼠标悬停时的文字颜色 */
}

此外,如果想要突出当前所在页面的链接,可以为其添加一个特殊的“active”类,并定义相应的样式规则:

nav .active {
  background-color: #4CAF50; /* 当前选中链接的背景色 */
}

然后在HTML中为当前页面对应的链接添加这个类名:

<li><a href="#home" class="active">首页</a></li>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
		* {
			margin: 0;
			padding: 0;
		}
		ul {
			width: 600px;
			margin: 0 auto;
			list-style-type: none;
		}
		li {
			float: left;
		}
		a:link,a:visited {
			display: block;
			width: 80px;
			font-weight: 700;
			background-color: greenyellow;
			color: red;
			padding: 10px;
			text-align: center;
			text-decoration: none;
		}
		a:hover,a:active {
			background-color: darkblue;
			color: white;
		}
		
		
		
		</style>
	</head>
	<body>
		<center><h3>简单水平菜单导航栏</h3></center>
		<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>
</html>

8.1.2 下拉子菜单导航栏的设计与实现
在水平顶部导航栏的基础上添加下拉子菜单,可以为用户提供更多层次的导航选项,从而改善用户体验。下面将详细介绍如何设计和实现一个带有下拉子菜单的水平顶部导航栏。

1导航栏的创建
首先,我们需要扩展基本的HTML结构来支持下拉菜单。这通常意味着在某些列表项<li>中嵌套额外的无序列表<ul>,以表示子菜单项。

<nav>
  <ul>
    <li><a href="#home">首页</a></li>
    <li class="dropdown">
      <a href="#">服务</a>
      <ul class="submenu">
        <li><a href="#web_design">网页设计</a></li>
        <li><a href="#app_development">应用开发</a></li>
        <li><a href="#seo_optimization">SEO优化</a></li>
      </ul>
    </li>
    <li><a href="#about">关于我们</a></li>
    <li><a href="#contact">联系我们</a></li>
  </ul>
</nav>

这里,我们给包含子菜单的<li>元素添加了class="dropdown",以便通过CSS选择器进行样式定制。同时,子菜单本身被包裹在一个具有class="submenu"的<ul>标签内。

2 列表样式的设计
接下来,我们需要调整CSS样式,使主菜单项保持水平排列,并确保子菜单垂直显示在其父级下方。

nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  background-color: #333;
  overflow: hidden;
}
 
nav li {
  float: left;
  position: relative; /* 为了绝对定位子菜单 */
}
 
.dropdown .submenu {
  display: none; /* 默认隐藏子菜单 */
  position: absolute; /* 子菜单相对于其直接父元素定位 */
  top: 100%; /* 子菜单从父菜单底部开始 */
  left: 0; /* 与父菜单左对齐 */
  background-color: #444; /* 子菜单背景色 */
  min-width: 160px; /* 子菜单最小宽度 */
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); /* 添加阴影效果 */
}

这里的关键点是设置.submenu的display属性为none,以默认情况下隐藏它;并且使用position: absolute结合top和left属性,让子菜单出现在正确的相对位置上。

3 二级菜单的隐藏和显示设计
为了让子菜单能够响应用户的鼠标悬停事件而显示出来,我们可以利用:hover伪类:

.dropdown:hover .submenu {
  display: block; /* 鼠标悬停时显示子菜单 */
}

这样当用户将鼠标悬停在“服务”这类有下拉菜单的链接上时,子菜单就会自动出现。如果需要更复杂的交互逻辑(如点击展开),则可能需要用到JavaScript。


4 DIV样式的设计
虽然在这个例子中没有特别用到额外的<div>元素来包装子菜单,但在某些复杂场景下,你可能会想要这样做,比如为了添加过渡动画或处理更复杂的布局。在这种情况下,你可以按照以下方式修改HTML结构并相应地更新CSS:

<li class="dropdown">
  <a href="#">服务</a>
  <div class="submenu-wrapper">
    <ul class="submenu">
      <!-- 子菜单项 -->
    </ul>
  </div>
</li>

相应的CSS规则可以用来控制这个新的<div>元素的行为,例如添加过渡效果:

.submenu-wrapper {
  position: absolute;
  transition: opacity 0.2s ease-in-out;
  opacity: 0; /* 初始状态下不透明度为0 */
  pointer-events: none; /* 禁止初始状态下的鼠标事件 */
}
 
.dropdown:hover .submenu-wrapper {
  opacity: 1; /* 显示时完全不透明 */
  pointer-events: auto; /* 允许鼠标事件 */
}
5 超链接样式的设计
对于子菜单中的链接,我们同样需要设定合适的样式,以确保它们在视觉上与其他内容区分开来。
.submenu a {
  color: white;
  text-decoration: none;
  display: block;
  padding: 12px 16px;
}
 
.submenu a:hover {
  background-color: #555; /* 悬停时改变背景色 */
}

这些样式保证了子菜单链接的一致性,同时也提供了清晰的反馈机制,帮助用户识别可点击区域。

6 鼠标事件
除了之前提到的:hover伪类外,还可以考虑其他类型的交互行为,比如通过点击而非悬停来触发子菜单的显示/隐藏。这种情况下,你需要编写一些JavaScript代码来管理DOM的变化。例如,可以监听每个.dropdown元素上的点击事件,然后切换其子菜单的状态。

document.querySelectorAll('.dropdown').forEach(function(dropdown) {
  dropdown.addEventListener('click', function(event) {
    event.preventDefault(); // 阻止默认行为
    this.querySelector('.submenu').classList.toggle('show');
  });
});

此外,别忘了在CSS中定义.show类,用于控制子菜单是否可见。

.show {
  display: block !important; /* 强制显示 */
}

  综合案例

 
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>下拉子导航栏的制作</title>
	<style>
		* {
			margin: 0;
			padding: 0;
			list-style: none;
			text-decoration: none;
		}
		ul li {
			float: left;
			position: relative;
		}
		ul li ol li {
			float: none;
		}
		ul li ol {
			background-color: lightcyan;
			position: absolute;
			top: 40px;
			left: 0;
			display: none;
		}
		ul li:hover ol {
			display: block;
		}
		#nav {
			width: 600px;
			height: 40px;
			background-color: lightcyan;
			border: 5px solid blue;
			margin: 0 auto;
		}
		ul li a:link,a:visited {
			display: block;
			width: 80px;
			font-weight: 700;
			color: black;
			padding: 10px;
			text-align: center;
		}
		ul li:hover {
			background-color: pink;
		}
		ul li ol li a:hover {
			background-color: red;
			color: white;
		}
	</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.2 纵向侧边导航栏
纵向侧边导航栏是一种常见的网站布局元素,通常位于页面的左侧或右侧,提供用户一个快速访问不同部分或功能的方式。接下来将按照你的要求逐步讲解简单纵向导航栏及其带有弹出式子菜单版本的设计与实现。

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

1导航栏的创建
首先,我们需要构建HTML结构来定义基本的纵向导航列表。

<aside class="sidebar">
  <nav>
    <ul>
      <li><a href="#home">首页</a></li>
      <li><a href="#services">服务</a></li>
      <li><a href="#about">关于我们</a></li>
      <li><a href="#contact">联系我们</a></li>
    </ul>
  </nav>
</aside>
这里使用了<aside>标签来表示侧边栏,并且在其中嵌入了一个无序列表作为导航项。

2 DIV样式的设计
为了使侧边栏看起来更加整洁有序,我们可以为其添加一些基础样式。
.sidebar {
  width: 200px; /* 固定宽度 */
  height: 100%; /* 占据整个视窗高度 */
  position: fixed; /* 固定位置 */
  left: 0; /* 左对齐 */
  top: 0; /* 上对齐 */
  background-color: #f4f4f4; /* 背景色 */
  padding: 20px; /* 内边距 */
}
这个简单的样式设置为侧边栏赋予了固定尺寸和背景色,同时保持它始终出现在浏览器窗口的一侧。

3 列表样式的设计
接着我们给导航列表添加适当的样式,使其适应于侧边栏布局。
.sidebar nav ul {
  list-style: none; /* 去掉默认项目符号 */
  padding: 0;
  margin: 0;
}
 
.sidebar nav li {
  margin-bottom: 10px; /* 每个列表项之间有间距 */
}
这移除了列表项前的标准圆点,并调整了它们之间的间隔。

4 超链接样式的设计
最后,为超链接设定样式,确保它们清晰可读并易于点击。
.sidebar nav a {
  display: block; /* 使链接充满整个列表项区域 */
  text-decoration: none; /* 移除下划线 */
  color: #333; /* 文字颜色 */
  padding: 10px; /* 内填充 */
  border-radius: 5px; /* 圆角效果 */
  transition: background-color 0.3s; /* 平滑过渡效果 */
}
 
.sidebar nav a:hover,
.sidebar nav a:focus {
  background-color: #ddd; /* 鼠标悬停时改变背景色 */
  color: #000; /* 文字颜色加深 */
}
这样就完成了简单纵向导航栏的基本设计。

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

1 导航栏的创建
对于含有弹出式子菜单的纵向导航栏,我们需要稍微修改一下HTML结构以支持多级菜单。
<aside class="sidebar">
  <nav>
    <ul>
      <li><a href="#home">首页</a></li>
      <li class="has-children">
        <a href="#services">服务</a>
        <ul class="sub-menu">
          <li><a href="#web_design">网页设计</a></li>
          <li><a href="#app_development">应用开发</a></li>
          <li><a href="#seo_optimization">SEO优化</a></li>
        </ul>
      </li>
      <li><a href="#about">关于我们</a></li>
      <li><a href="#contact">联系我们</a></li>
    </ul>
  </nav>
</aside>
这里新增了一个包含子菜单的<li>元素,并通过class="has-children"标记出来。

2 DIV样式的设计
我们可能需要额外的CSS规则来处理子菜单的位置和显示状态
.sub-menu {
  display: none; /* 默认隐藏 */
  position: absolute; /* 绝对定位 */
  left: 100%; /* 子菜单从父菜单右边开始 */
  top: 0; /* 顶部对齐 */
  background-color: #fff; /* 白色背景 */
  box-shadow: 0 0 10px rgba(0,0,0,0.1); /* 添加阴影 */
  min-width: 150px; /* 最小宽度 */
}
这些样式保证了子菜单不会一开始就显示出来,并且能够正确地定位到主菜单旁边。

3 二级菜单的隐藏和显示设计
为了让子菜单响应鼠标事件而显示,可以利用:hover伪类:
.has-children:hover .sub-menu {
  display: block; /* 显示子菜单 */
}
如果想要通过点击而不是悬停来控制子菜单的显示,则需借助JavaScript。

4 列表样式的设计
对于子菜单的列表项,也需要适当调整样式以匹配整体设计风格。
.sub-menu li {
  white-space: nowrap; /* 防止文本换行 */
}
这有助于保持子菜单项的一致性。

5 超链接样式的设计
子菜单中的链接也应进行样式化,以便与主菜单区分开来。
.sub-menu a {
  padding: 10px 15px; /* 更大的内填充 */
  color: #666; /* 较淡的文字颜色 */
}
 
.sub-menu a:hover,
.sub-menu a:focus {
  background-color: #eee; /* 更浅的背景色 */
  color: #333; /* 加深文字颜色 */
}

综合案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
		#nav {
			width: 150px;
			border: 1px solid red;
			background-color: lightgreen;
		}
		.tit {
			height: 16px;
			line-height: 16px;
			color: white;
			text-align: center;
		}
		#nav ul li {
			height: 30px;
			line-height: 30px;
			text-align: center;
			border-bottom: 1px solid gray;
			position: relative;
		}
		#nav ul li ol{
			display: none;
			width: 120px;
			border: 1px solid red;
			position: absolute;
			top: -1px;
			left: 150px;
		}
		#nav ul li:hover ol {
			display: block;
		}
		#nav ul,#nav ol{ 
			margin: 0;
			padding: 0;
			list-style: none;
			background-color: white;
		}
		#nav ul li a:link,a:visited {
			display: block;
			font-size: 18px;
			color: brown;
			text-decoration: none;
		}
		#nav ul li:hover {
			background-image: url('../照片/bg (2).JPG');
			font-weight: bold;
		}
		#nav ul li ol li a:link {
			font-size: 15px;
		}
		#nav ul li ol li a:hover {
			background-color: red;
			color: white;
		}
		</style>
	</head>
	<body>
		<nav>
			<div id="nav">
				<h3 class="tit">所有商品分类</h3>
				<ul>
					<li><a href="#">家居用品<img src="../照片/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="../照片/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="../照片/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="../照片/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="../照片/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="../照片/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.3 底部固定导航栏
底部固定导航栏是网站设计中常用的一种元素,它通常位于页面的最下方,并且随着用户滚动页面而保持可见。这种类型的导航栏适合用于提供快速访问关键页面链接或功能按钮,如返回顶部、联系我们等。

8.3.1 导航栏的创建
首先,我们需要构建HTML结构来定义基本的底部导航列表。

<footer class="footer-nav">
  <nav>
    <ul>
      <li><a href="#home">首页</a></li>
      <li><a href="#services">服务</a></li>
      <li><a href="#about">关于我们</a></li>
      <li><a href="#contact">联系我们</a></li>
      <li><a href="#" id="backToTop">返回顶部</a></li>
    </ul>
  </nav>
</footer>
这里使用了<footer>标签来表示页面的底部区域,并包含了一个无序列表作为导航项。

8.3.2 列表样式的设计
接下来,我们为导航列表添加适当的CSS样式,以确保其在视觉上清晰有序。
.footer-nav {
  width: 100%; /* 宽度占满整个屏幕 */
  position: fixed; /* 固定位置 */
  bottom: 0; /* 底部对齐 */
  left: 0; /* 左侧对齐 */
  background-color: #333; /* 背景色 */
  color: white; /* 文字颜色 */
  padding: 10px 0; /* 上下内边距 */
  z-index: 1000; /* 确保始终位于内容之上 */
}
 
.footer-nav ul {
  list-style: none; /* 去掉默认项目符号 */
  margin: 0;
  padding: 0;
  display: flex; /* 使用Flexbox布局 */
  justify-content: center; /* 水平居中 */
}
 
.footer-nav li {
  margin: 0 15px; /* 左右间距 */
}

这些样式移除了列表项前的标准圆点,并通过Flexbox实现了水平居中的效果。

8.3.3 菜单固定底部的设计
上面的.footer-nav类已经包含了将菜单固定到底部所需的CSS属性。position: fixed; bottom: 0;确保了导航栏始终保持在视口的最下方。如果需要考虑响应式设计,可以添加媒体查询来调整小屏幕设备上的表现。

@media (max-width: 768px) {
  .footer-nav {
    position: static; /* 对于小屏幕取消固定定位 */
    text-align: center; /* 文本居中 */
  }
}
8.3.4 超链接样式的设计
为了使超链接易于点击并且具有良好的视觉效果,我们可以设置以下样式:
.footer-nav a {
  color: white; /* 链接文字颜色 */
  text-decoration: none; /* 移除下划线 */
  font-size: 14px; /* 字体大小 */
  transition: color 0.3s; /* 平滑过渡效果 */
}
 
.footer-nav a:hover,
.footer-nav a:focus {
  color: #ddd; /* 鼠标悬停时改变文字颜色 */
}
8.3.5 鼠标事件
对于“返回顶部”这类特定的功能链接,可能需要一些JavaScript来处理点击事件。
document.getElementById('backToTop').addEventListener('click', function(event) {
  event.preventDefault(); // 阻止默认行为
  window.scrollTo({ top: 0, behavior: 'smooth' }); // 平滑滚动到顶部
});

这段脚本会在用户点击“返回顶部”链接时平滑地滚动页面回到最上方。

                                                       综合案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>底部固定导航栏</title>
		<style>
			ul {
				margin: 0;
				padding: 0;
				list-style: none;
			}
			li {
				width: 25%;
				float: left;
				line-height: 50px;
			}
			.fix-footer {
				height: 50px;
				width: 100%;
				background-color: lightgreen;
				border-top: 2px solid blue;
				text-align: center;
				z-index: 6;
				position: fixed;
				bottom: 0;
				left: 0;
			}
			a:link,a:visited {
				display: block;
				font-size: 20px;
				color: black;
				text-decoration: none;
				font-weight: bold;
			}
			a:hover,a:active {
				background-color: darkgray;
				border-left: 2px solid white;
				border-right: 2px solid white;
				font-size: 16px;
				color: red;
				font-weight: bold;
			}
		</style>
	</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>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>优名养生馆</title>
		<style type="text/css">
		body{
			background-image: url(img/bg3.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-bg1.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/footer-top-bg1.jpg);
		}
		.footer-top a:hover{
			background-image: url(img/footer-top-bg2.jpg);
			color: white;
		}
		.footer a:link,a:visited{
			display: block;
			font-sine: 20px;
			color: brown;
			text-decoration: none;
			foni-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/marquee1.jpg"/>
				<img src="img/marquee2.jpg"/>
				<img src="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>

案例

主页设计与实现

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>优名养生馆</title>
		<style>
			body{
				background-image: url(img/bg3.jpg);
				margin: 0px auto;
				width: 900px;
			}
			.top{
				width: 900px;
				height: 225px;
				background-image: url(img/top-bg1.jpg);
			}
			.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-bg1.jpg);
			}
			p{
				color: brown;
				font-size: 16px;
			}
			img{
				margin: 15px;
			}
			ul{
				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/main1.jpg" align="left"/>
				<p>&emsp;&emsp;古人云:善养生者,上养神智、中养形态、下养筋骨。</p>
				<p>&emsp;&emsp;养生不是简单的体育锻炼、也不是吃一顿营养餐、打一套太极拳。养生是以调阴阳、和气血、保精神为原则,运用调神、导引吐纳、四时调摄、食养、药养、节欲、服气辟谷等多种方法,以达到保养、调养、颐养生命,实现人类健康、长寿的目的。</p>
				<p>&emsp;&emsp;养生,是养护保养生命,以达长寿。养生是指有目的的通过各种手段护养人体生命的行为,即根据人体生命过程的活动规律所进行的物质与精神的身心护养活动。既包括生理层面的养生,注重身体机能的维护和康复;也包括心理层面的养生,腔调内在精神的平衡和祥和。按照层次划分,生理层面的养生包括养颜、养体、养老;心理层面的养生包括养心、养性、养神。</p>
			</div>
			<hr />
			<div class="footer">版权所有&copy;优名养生馆</div>
		</div>
	</body>
</html>

标签:none,菜单,color,第八章,li,nav,background,CSS
From: https://blog.csdn.net/l1397222107/article/details/143753613

相关文章

  • 第九章 DIV+CSS布局
    9.1DIV+CSS概述 DIV+CSS是Web设计标准,它是一种网页的布局方法。与传统中通过表格(table)布局定位的方式不同,它可以实现网页页面内容与表现相分离。DIV组成了网页的格局,CSS则装饰了格局,比如建一栋房子,开始的架子是DIV,架子搭建好后开始装饰,这个装饰就是CSS样式。用DIV+CSS布......
  • Vue 3实现一个带有左侧导航菜单的页面。该页面包含一个类似的增删改查(CRUD)功能模块。
    效果图:实现步骤:项目结构我们将构建一个简单的Vue3项目,包含以下内容:左侧导航栏:用于切换不同页面或模块。右侧内容区域:用于展示不同模块的内容(如小组成员管理)。代码实现1.创建主页面组件App.vue首先,在App.vue中定义左侧导航栏和内容区域:<template><divid="app"......
  • css制作消息框
     css如下:        .msg{            width:200px;height:50px;            margin-bottom:20px;            background:#20B2AA;color:#fff;            text-align:center;line-height:50px;......
  • 前端CSS规范
     分号每个属性声明后面都要加分号。命名不使用id选择器适用有意义的名词命名单词全部小写,名词超过1个时,使用-分隔符属性声明顺序原则:整体到局部,外部到内部,重要属性优先.element{display:block;float:left;position:absolute;top:0;......
  • 第9章DIV+CSS布局
    9.1DIV+CSS概述9.1.1认识DIV无特殊作用,一个盒子9.1.2DIV的宽高设置9.1.2.1宽高属性宽度:width高度:height单位:可使用像素或者百分比9.1.2.2div标签内直接设置宽高使用style属性设置宽高9.1.2.3div使用选择器设置宽高可使用class,id等选择器9.1.2.4div高度的百......
  • css动态检测视口屏幕的尺寸
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>css动态检测屏幕的视口尺寸</title&g......
  • 使用css 画三角形的三种方法
    使用纯css绘制三角形方法一使用边框实现先实现一个div四个粗边框不同颜色保留左右和下边框设置左右边框为颜色为transparent<body><divclass="div1"></div><divclass="div2"></div><divclass="div3"></div>&l......
  • CSS复合选择器详解与应用指南
    CSS复合选择器详解与应用指南CSS复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的,可以更准确、更高效地选择目标元素(标签)。以下是CSS复合选择器所有重要的基础知识点:一、复合选择器的类型1.后代选择器:又称为包含选择器,可以选择父元素里面的子元素。其写法......
  • 第8章利用CSS制作导航菜单
    8.1水平顶部导航栏水平菜单导航栏是网站设计中应用最广泛的导航设计,一般放置在页面的顶部。8.1.1简单水平导航栏的设计与实现8.1.1.1导航栏的创建<nav>标签是HTML5新增的文档结构标签,用于标记导航栏,以便后续与网站的其他内容整合,所以常用<nav>标签在页面上创建导航栏菜单......
  • 第九章 DIV+CSS布局
    9.1DIV+CSS概述9.1.1认识DIVdiv标签在Web标准的网页中使用非常频繁,属于块状元素。div标签是双标签,即以<div></div>的形式存在,中间可以放置任何内容,包括其他的div标签。但是在没有CSS的影响下,每个div标签只占据一行,即一行只能容纳一个div标签。9.1.2DIV的宽高设置对div......