基于CSS实现网页悬浮菜单效果

在此我将详细讲解一下“基于CSS实现网页悬浮菜单效果”的完整攻略。

准备工作

在开始实现悬浮菜单之前,我们需要先准备好以下内容:

HTML结构

在页面中添加一个菜单导航的HTML结构,如下所示:

<div class="menu">
  <ul>
    <li><a href="#">菜单1</a></li>
    <li><a href="#">菜单2</a></li>
    <li><a href="#">菜单3</a></li>
    <li><a href="#">菜单4</a></li>
  </ul>
</div>

CSS样式

在页面中添加一个基本的CSS样式,如下所示:

.menu {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}
.menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row;
}
.menu li {
  margin-right: 20px;
}
.menu li:last-child {
  margin-right: 0;
}
.menu a {
  color: #333;
  text-decoration: none;
  font-size: 18px;
  font-weight: bold;
  padding: 10px 20px;
  border-bottom: 2px solid transparent;
  transition: border-bottom 0.3s ease;
}
.menu a:hover {
  border-bottom: 2px solid #333;
}

实现悬浮菜单效果

接下来就可以实现悬浮菜单的效果了。我们可以通过添加CSS样式来实现鼠标移上去时菜单的展开和收起。

.menu ul {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.menu:hover ul {
  max-height: 200px; /* 菜单最大高度 */
}

通过将菜单的最大高度设置为0,再将鼠标悬浮在菜单上时,将其最大高度设置为一定值,即可实现菜单的展开和收起效果。

以下是完整的示例代码:

<div class="menu">
  <ul>
    <li><a href="#">菜单1</a></li>
    <li><a href="#">菜单2</a></li>
    <li><a href="#">菜单3</a></li>
    <li><a href="#">菜单4</a></li>
  </ul>
</div>

<style>
.menu {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}
.menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.menu:hover ul {
  max-height: 200px; /* 菜单最大高度 */
}
.menu li {
  margin-right: 20px;
}
.menu li:last-child {
  margin-right: 0;
}
.menu a {
  color: #333;
  text-decoration: none;
  font-size: 18px;
  font-weight: bold;
  padding: 10px 20px;
  border-bottom: 2px solid transparent;
  transition: border-bottom 0.3s ease;
}
.menu a:hover {
  border-bottom: 2px solid #333;
}
</style>

示例说明

以下是两个实际示例,展示了如何使用不同的HTML结构和CSS样式来实现悬浮菜单效果:

示例1

在这个示例中,我们使用了另一种HTML结构和CSS样式来实现悬浮菜单的效果。

<div class="menu">
  <a href="#" class="menu__btn">菜单</a>
  <ul class="menu__list">
    <li><a href="#">菜单1</a></li>
    <li><a href="#">菜单2</a></li>
    <li><a href="#">菜单3</a></li>
    <li><a href="#">菜单4</a></li>
  </ul>
</div>

<style>
.menu {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
.menu__btn {
  display: inline-block;
  color: #333;
  text-decoration: none;
  font-size: 18px;
  font-weight: bold;
  padding: 10px 20px;
  border: 2px solid #333;
  border-radius: 5px;
  transition: all 0.3s ease;
}
.menu__btn:hover {
  background-color: #333;
  color: #fff;
}
.menu__list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  top: 100%;
  left: 0;
  border: 2px solid #333;
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}
.menu:hover .menu__list {
  opacity: 1;
  visibility: visible;
  margin-top: 10px;
}
.menu__list li {
  margin: 0;
}
.menu__list li a {
  display: block;
  color: #333;
  text-decoration: none;
  font-size: 16px;
  font-weight: bold;
  padding: 10px 20px;
  transition: all 0.3s ease;
}
.menu__list li a:hover {
  background-color: #333;
  color: #fff;
}
</style>

示例2

在这个示例中,我们使用了另一种HTML结构和CSS样式来实现悬浮菜单的效果。

<div class="menu">
  <ul>
    <li><a href="#">菜单1</a></li>
    <li><a href="#">菜单2</a></li>
    <li><a href="#">菜单3</a></li>
    <li><a href="#">菜单4</a></li>
  </ul>
</div>

<style>
.menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: #fff; /* 菜单父元素底色 */
}
.menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.menu li {
  margin-right: 20px;
}
.menu li:last-child {
  margin-right: 0;
}
.menu a {
  display: block;
  color: #333;
  text-decoration: none;
  font-size: 18px;
  font-weight: bold;
  padding: 10px 20px;
  transition: all 0.3s ease;
}
.menu a:hover {
  background-color: #333; /* 悬浮时菜单项底色 */
  color: #fff;
}
@media screen and (max-width: 768px) { /* 小屏幕下菜单行布局 */
  .menu ul {
    flex-direction: column;
  }
  .menu li {
    margin-right: 0;
    margin-bottom: 10px;
  }
}
</style>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于CSS实现网页悬浮菜单效果 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • CSS3盒子模型详解

    下面是关于“CSS3盒子模型详解”的完整攻略。 什么是CSS3盒子模型 CSS3盒子模型是Web开发中的一种基本布局模型,它是指用于布局的文档树中的任何元素都可以看作是一个矩形的盒子,这个盒子包含了元素的内容、内边距、边框和外边距。 CSS3盒子模型的属性 CSS3盒子模型的属性包括: width(宽度) 宽度指定了盒子的内容区域的宽度,不包含内边距、边框和…

    css 2023年6月10日
    00
  • jQuery常见的选择器及用法介绍

    jQuery常见的选择器及用法介绍 jQuery是一个流行的JavaScript库,它广泛用于Web开发中。在jQuery中,选择器对于处理和操作DOM元素非常重要。以下是一些常见的jQuery选择器及其用法介绍。 基本选择器 ID选择器 使用ID选择器,可以根据元素的id属性值来选择元素。可以使用#符号来指定ID选择器。 $("#myDiv&qu…

    css 2023年6月10日
    00
  • 原生javascript实现图片轮播效果代码

    下面是完整的攻略: 前置知识 在阅读本攻略前,你需要掌握基本的 HTML 和 CSS 技能,还要熟练掌握 JavaScript 中的 DOM 操作,了解一些简单的 jQuery 使用方法。 实现步骤 第一步:HTML 结构 首先,在页面中准备好需要轮播的图片和圆点标识的 HTML 结构,并设置好对应的 CSS 样式。 以下是一个简单的示例: <div …

    css 2023年6月10日
    00
  • 基于jQuery的简单的列表导航菜单

    那接下来我将详细讲解“基于jQuery的简单的列表导航菜单”的完整攻略,同时提供两个示例说明。 一、介绍 在网站设计过程中,导航菜单(navigation menu)是必不可少的,它能够帮助用户快速地找到所需内容。而使用jQuery创建导航菜单,则能够让菜单更加生动和有趣。 本攻略旨在教授如何使用jQuery创建简单的列表导航菜单,主要包括HTML的结构、C…

    css 2023年6月9日
    00
  • JS+CSS实现简单滑动门(滑动菜单)效果

    JS+CSS实现简单滑动门(滑动菜单)效果,可以通过CSS的transition和transform属性以及JavaScript的事件处理函数来实现。 HTML结构 首先,在HTML中需要通过标签嵌套来构建滑动门的结构。以两个滑动门为例: <div class="slider"> <div class="sli…

    css 2023年6月9日
    00
  • 记一次拼多多Web前端面试(一面+二面+hr面)

    那我来详细讲解下“记一次拼多多Web前端面试(一面+二面+hr面)”的完整攻略: 一面 自我介绍 在面试开始的时候,第一件事情就是进行自我介绍。你需要简要地介绍自己的基本信息,比如姓名、就读学校、专业、实习经历等等。自我介绍的时候,需要注意不要太啰嗦,言简意赅地介绍一下自己即可。 项目介绍 在自我介绍之后,面试官通常会要求你介绍自己的项目经验。在这里,你需要…

    css 2023年6月10日
    00
  • jQuery+css+html实现页面遮罩弹出框

    下面是详细讲解“jQuery+css+html实现页面遮罩弹出框”的完整攻略: 1. 引入jQuery库文件 在<head>标签中引入jQuery库文件,示例代码如下: <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"&g…

    css 2023年6月9日
    00
  • 学习JS中的DOM节点以及操作

    学习JS中的DOM节点以及操作是Web前端开发的基础,下面是一个完整的攻略,主要包含以下几个部分: 理解DOM的基础知识 DOM,即文档对象模型,是指将HTML和XML文档表示为树形结构的方式,使开发者可以使用脚本语言例如Javascript来操作这个文档的树形结构。 Web浏览器将HTML和XML文档转变为一系列的节点,而这些节点就是元素(如<div…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部