纯CSS打造的导航菜单(附jquery版)

yizhihongxing

好的。在这里,我将为您详细讲解“纯CSS打造的导航菜单(附jquery版)”的完整攻略。该攻略包含了该导航菜单的制作过程以及如何将其转化成jquery版的导航菜单。

制作纯CSS导航菜单

第一步:HTML结构

首先,我们需要创建一个含有ul和li元素的HTML结构。 代码如下:

<nav>
  <ul>
    <li><a href="#">首页</a></li>
    <li><a href="#">新闻资讯</a></li>
    <li><a href="#">产品展示</a></li>
    <li><a href="#">联系我们</a></li>
  </ul>
</nav>

第二步:添加CSS样式

我们需要分别设置ul、li和a元素的样式。代码如下:

nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
}

nav li {
  margin: 0 10px;
}

nav a {
  color: #000;
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
}

nav a:hover {
  color: #f00;
}

第三步:制作下拉菜单

在导航菜单中加入下拉菜单,需要为含有子菜单的li元素添加.hover样式,并为子菜单中的ul元素设置.display-block样式。代码如下:

nav ul li.hover > ul {
  display: block;
}

nav ul ul {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  background-color: #fff;
  padding: 10px;
  min-width: 160px;
  box-shadow: 0 2px 5px rgba(0,0,0,.1);
}

nav ul ul li {
  display: block;
  margin: 10px 0;
}

nav ul ul a {
  font-size: 13px;
}

第四步:添加响应式设计

为了使导航菜单在手机和平板电脑上看起来更好,我们需要添加响应式设计。代码如下:

@media screen and (max-width: 767px) {
  nav ul {
    flex-wrap: wrap;
  }

  nav li {
    width: 50%;
  }

  nav a {
    display: block;
    padding: 10px 0;
    text-align: center;
  }

  nav ul ul {
    position: static;
    display: none;
    width: auto;
    margin: 0;
    box-shadow: none;
  }

  nav ul ul li{
    margin: 0;
  }
}

制作jquery版导航菜单

第一步:HTML结构

我们需要在HTML文件中添加jquery和导航菜单的HTML结构。代码如下:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<nav>
  <ul>
    <li><a href="#">首页</a></li>
    <li><a href="#">新闻资讯</a>
      <ul>
        <li><a href="#">行业新闻</a></li>
        <li><a href="#">公司新闻</a></li>
        <li><a href="#">产品新闻</a></li>
      </ul>
    </li>
    <li><a href="#">产品展示</a>
      <ul>
        <li><a href="#">产品介绍</a></li>
        <li><a href="#">技术支持</a></li>
        <li><a href="#">客户案例</a></li>
      </ul>
    </li>
    <li><a href="#">联系我们</a></li>
  </ul>
</nav>

第二步:添加CSS样式

我们需要添加CSS样式。代码如下:

nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
}

nav li {
  margin: 0 10px;
  position: relative;
}

nav a {
  color: #000;
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
}

nav a:hover {
  color: #f00;
}

nav ul ul {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  background-color: #fff;
  padding: 10px;
  min-width: 160px;
  box-shadow: 0 2px 5px rgba(0,0,0,.1);
}

nav ul ul li {
  display: block;
  margin: 10px 0;
}

nav ul ul a {
  font-size: 13px;
}

第三步:制作jquery版导航菜单

我们需要添加jquery代码,使其支持下拉菜单。代码如下:

$(function() {
  $('nav ul li').hover(function() {
    $(this).children('ul').stop().slideDown(200);
  }, function() {
    $(this).children('ul').stop().slideUp(200);
  });
});

上述代码在导航菜单的li元素上使用事件监听器来添加hover样式并使下拉菜单滑动呈现。

第四步:添加响应式设计

添加响应式设计的过程与纯CSS代码相同,代码如下:

@media screen and (max-width: 767px) {
  nav ul {
    flex-wrap: wrap;
  }

  nav li {
    width: 50%;
  }

  nav a {
    display: block;
    padding: 10px 0;
    text-align: center;
  }

  nav ul ul {
    position: static;
    display: none;
    width: auto;
    margin: 0;
    box-shadow: none;
  }

  nav ul ul li {
    margin: 0;
  }
}

示例说明

示例1

我们要为产品展示栏目的下拉菜单添加新的子菜单,产品介绍的子菜单还应该分为硬件产品和软件产品两个子菜单,如下:

<ul>
  <li><a href="#">产品展示</a>
    <ul>
      <li><a href="#">产品介绍</a>
        <ul>
          <li><a href="#">硬件产品</a></li>
          <li><a href="#">软件产品</a></li>
        </ul>
      </li>
      <li><a href="#">技术支持</a></li>
      <li><a href="#">客户案例</a></li>
    </ul>
  </li>
</ul>

上述代码添加了硬件产品和软件产品两个子菜单。

示例2

我们想要在菜单中添加一条新的主菜单,关于我们,应该位于联系我们的左侧,如下:

<ul>
  <li><a href="#">首页</a></li>
  <li><a href="#">新闻资讯</a>
    <ul>
      <li><a href="#">行业新闻</a></li>
      <li><a href="#">公司新闻</a></li>
      <li><a href="#">产品新闻</a></li>
    </ul>
  </li>
  <li><a href="#">产品展示</a>
    <ul>
      <li><a href="#">产品介绍</a></li>
      <li><a href="#">技术支持</a></li>
      <li><a href="#">客户案例</a></li>
    </ul>
  </li>
  <li><a href="#">关于我们</a></li>
  <li><a href="#">联系我们</a></li>
</ul>

上述代码在菜单中添加了关于我们主菜单。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:纯CSS打造的导航菜单(附jquery版) - Python技术站

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

相关文章

  • 浅谈最全面的水平垂直居中方案与flexbox布局

    浅谈最全面的水平垂直居中方案与flexbox布局 水平垂直居中的需求与问题 在前端开发中,经常会遇到需要在页面上实现水平、垂直居中的需求。例如,把一个div居中显示在页面上,或者是把图片和文字居中显示在一个容器中。但是很多时候,由于浏览器的不同,屏幕大小的不同等因素,常规的布局方法往往无法满足我们的需求,出现了无法居中的情况。 最全面的水平垂直居中方案 父容…

    css 2023年6月10日
    00
  • css为图片设置背景图片

    为图片设置CSS背景图片,通常需要使用CSS的background-image属性。以下是将图片设置为CSS背景图片的完整步骤: 1. 将图片上传到服务器 在设置CSS背景图片之前,您需要将图像上传到可访问的服务器上。在上传图像时,请记住其路径并将其用作CSS中背景图像的URL。 2. 使用background-image属性 使用background-im…

    css 2023年6月9日
    00
  • 为何img、input等内联元素可以设置宽高

    img和input等内联元素可以设置宽高,是因为它们在HTML中被定义为替换元素(replaced element)。替换元素是指浏览器根据元素的标签和属性,来决定元素的具体显示内容。例如,img元素的src属性指向一张图片,浏览器会根据该属性值加载图片,并在文档流中占据一定的宽度和高度。 因此,对于内联替换元素,可以通过设置其width和height属性来…

    css 2023年6月10日
    00
  • CSS进阶指引

    当您已经了解了CSS基础知识之后,您可以开始学习CSS进阶内容。下面是我建议的学习方法及一些实用技巧。 相对单位 在设计现代网站时,经常需要使用百分比和em(或rem)两种相对单位。百分比单位用于布局和呈现响应式设计,而em(或rem)用于设置字体大小,允许字体以缩放方式自适应其容器和屏幕大小。 百分比单位 百分比单位可以相对于它的容器进行计算。例如,您可以…

    css 2023年6月9日
    00
  • 5个ChatGPT功能帮助你提升日常编码效率

    5个ChatGPT功能帮助你提升日常编码效率 ChatGPT是一款基于GPT-3模型的人工智能对话机器人,可以为开发人员提供多种帮助,提高日常编码效率。下面介绍5个ChatGPT功能帮助你提升日常编码效率的完整攻略。 1. 代码自动生成 ChatGPT可根据您提供的描述自动生成代码。例如,您可以告诉ChatGPT您需要一个函数来计算一个数字列表中数字的平均值…

    css 2023年6月9日
    00
  • 详解CSS中@supports的用法

    详解CSS中@supports的用法 CSS中的@supports规则是一种在样式表中使用条件语句的方式。它可以使你在不影响不支持该特性的浏览器中的样式的情况下,仅针对支持该特性的浏览器中的样式进行设置。以下是关于@supports的一些细节: @supports必须跟随在样式声明块之前 可以包含单个或多个CSS声明块 @supports不能被嵌套 如果浏览…

    css 2023年6月10日
    00
  • DW如何制作一个简单的垂直导航?

    要制作一个简单的垂直导航,我们可以使用DW(Dreamweaver)提供的视觉化编辑工具和CSS样式来实现。下面是详细的步骤: 步骤一:创建HTML文件和CSS文件 首先,在DW中创建一个新的HTML文档(或打开已有的HTML文档)。然后,使用DW的代码视图或拖放视图向文档中添加一个无序列表(ul)和列表项(li)。 在同一个目录下创建一个CSS文件,用来管…

    css 2023年6月10日
    00
  • HTML表格布局实例讲解

    HTML表格布局实例讲解 HTML表格是一种非常常见的布局方式,常用于展示数据等需要排列的内容,同时也可以用于网页的整体布局。在本篇文章中,我们将详细讲解HTML表格布局的使用方法和相关技巧。 基本语法 在HTML中,表格由<table>标签包裹,每行由<tr>标签包裹,每个单元格由<td>标签包裹。例如: <tab…

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