css 实现三级联动菜单
昨天因为项目中想要把二级联动菜单改成三级联动菜单,所以我就单独写了一个tab导航栏,用纯css的方式实现的三级联动。一开始我想着可以用js实现,但是js的hover事件和mouseenter,mouseover,mouseleave,mouseout事件都会有一个问题,就是当鼠标移出区域块儿的时候,我们希望弹出来的二级菜单和三级菜单可能不会像我们希望的显示隐藏。所以,我们可以用css3的伪类元素实现。
大家可以去我的gitHub上去看demo,我把网址贴一下:https://github.com/dreamITGirl/projectStudy/blob/master/html/%E5%88%86%E7%BA%A7%E8%81%94%E5%8A%A8%E8%8F%9C%E5%8D%95%E6%A0%8F.html
顺便再把效果图贴一下:

代码如下
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0"/>
<title>菜单栏</title>
<style>
html, body, ul, li {
margin: 0;
padding: 0;
font-family: "微软雅黑", Helvetica, Arial, sans-serif;
} ul, li {
list-style: none;
} .top {
background: #4db3a4;
height: 34px;
width: 100%;
padding: 0 10%;
box-sizing: border-box;
} .main-nav {
display: flex;
line-height: 34px;
} .two-nav {
background: #4db3a4;
position: relative;
display: none;
} .three-nav {
background: #4db3a4;
position: absolute;
top: 0;
right: -116px;
display: none;
} .item-nav, .two-item, .three-item {
width: 126px;
text-align: center;
} .item-nav > a, .two-item > a, .three-item > a {
text-decoration: none;
color: #fff;
} .none {
display: none;
}
.item-nav:hover > .two-nav {
display: block;
} .two-item:hover > .three-nav {
display: block;
} .item-nav:hover, .two-item:hover, .three-item:hover {
background: #44a597;
}
</style>
</head>
<body>
<div class="top">
<ul class="main-nav">
<li class="item-nav">
<a href="javascript:;">我的行程</a>
</li>
<li class="item-nav">
<a href="javascript:;">ES管理员</a>
<ul class="two-nav none">
<li class="two-item">
<a href="javascript:;">ES差旅预订</a>
<ul class="three-nav none">
<li class="three-item">
<a href="javascript:;">ES差旅1</a>
</li>
<li class="three-item">
<a href="javascript:;">2</a>
</li>
<li class="three-item">
<a href="javascript:;">3</a>
</li>
<li class="three-item">
<a href="javascript:;">4</a>
</li>
</ul>
</li>
<li class="two-item">
<a href="javascript:;">ES差旅</a>
<ul class="three-nav none">
<li class="three-item">
<a href="javascript:;">酒店账单</a>
</li>
<li class="three-item">
<a href="javascript:;">飞机账单</a>
</li>
<li class="three-item">
<a href="javascript:;">火车账单</a>
</li>
<li class="three-item">
<a href="javascript:;">全部账单</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="item-nav">
<a href="javascript:;">差旅报表</a> </li>
<li class="item-nav">
<a href="javascript:;">差旅审批</a>
<ul class="two-nav none">
<li class="two-item">
<a href="javascript:;">酒店账单</a>
<ul class="three-nav none">
<li class="three-item">
<a href="javascript:;">酒店账单</a>
</li>
<li class="three-item">
<a href="javascript:;">飞机账单</a>
</li>
<li class="three-item">
<a href="javascript:;">火车账单</a>
</li>
<li class="three-item">
<a href="javascript:;">全部账单</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>
css 实现三级联动菜单的更多相关文章
- 基于jQuery的AJAX实现三级联动菜单
最近学习jQuery,所以就写了一个关于中国省市县/区的三级联动菜单,权当相互学习,相互促进,特此记录. 下面是嵌套js的html文件: <!DOCTYPE html> <html ...
- js封装的三级联动菜单(使用时只需要一行js代码)
前言 在实际的项目开发中,我们经常需要三级联动,比如省市区的选择,商品的三级分类的选择等等. 而网上却找不到一个代码完整.功能强大.使用简单的三级联动菜单,大都只是简单的讲了一下实现思路. 下面就给大 ...
- 转: javascript实现全国城市三级联动菜单代码
<html> <head> <title>js全国城市三级联动菜单代码_B5教程网</title> <meta http-equiv=" ...
- JS+CSS打造三级折叠菜单,自动收缩其它级 js
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...
- 基于JQ的三级联动菜单选择
<!-- author:青芒 --> <!DOCTYPE html> <html lang="en"> <head> <met ...
- jQuery实现三级联动菜单(鼠标悬停联动)
效果图: 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> < ...
- 用css实现三级导航菜单
主要使用css的hover伪类来实现该功能. 主要思路:先搭出三级菜单的框架,然后使用css的:hover来实现! 对li添加类selected,对该类添加position:relative属性,然后 ...
- Js三级联动菜单
效果演示: <SCRIPT LANGUAGE="JavaScript"> <!-- function CreateSelect(_FormName,_SName, ...
- 30行代码实现js原生三级联动菜单
var oneArr=[['00','成都'],['01','绵阳'],['02','南充']] var towArr={ '00':[['000','武侯区'],['002','锦江区']], '0 ...
随机推荐
- Python基础-处理json函数
#json是一种通用的数据类型,所有的语言都认识#json是一个字符串,json串里面都得是双引号,主要是这四个函数 #dump#dumps#load#loads import jsonnames = ...
- jmeter 多压力机并发测试过程
要实现多台压力机并发,就必须有多台服务器上安装了jmeter程序包,首先把一台服务器作为主压力机,测试脚本放到这台机器上,主压力机与从压力机在同一局域网中,服务器之间可以ping通 第一步:在linu ...
- Java微信开发_Exception_02_"errcode":40164,"errmsg":"invalid ip 61.172.68.219, not in whitelist hint
ip查询网址: http://www.ip.cn/ 一.异常现象 今天开始做微信开发,在办公室时能正常获取access_token,晚上回家之后获取access_token时却报出下列错误信息: {& ...
- Hibernate - POJO 类和数据库的映射文件*.hbm.xml
POJO 类和关系数据库之间的映射可以用一个XML文档来定义. 通过 POJO 类的数据库映射文件,Hibernate可以理解持久化类和数据表之间的对应关系,也可以理解持久化类属性与数据库表列之间的对 ...
- luogu1901 发射站
单调栈 正着插一遍反着插一遍 记录每个点左边右边第一个比他高的... yyc太强辣 #include<iostream> #include<cstdlib> #include& ...
- 洛谷 P2777 [AHOI2016初中组]自行车比赛
题目描述 小雪非常关注自行车比赛,尤其是环滨湖自行车赛.一年一度的环滨湖自行车赛,需要选手们连续比赛数日,最终按照累计得分决出冠军.今年一共有 N 位参赛选手.每一天的比赛总会决出当日的排名,第一名的 ...
- debian服务查询
1.查询 用root身份执行service --status-all查看所有服务的状态 "+" started "-" stopped "?" ...
- mysqllog
-- mysql delete log online 1 mysql命令purge mysql> purge master logs to "mysql-bin.000410&quo ...
- 报错之-Cannot set property 'onclick' of null
当js文件放在head里面时,如果绑定了onclick或者onmouseover事件,就会出现如下图类似的错误,是因为浏览器的加载你写的html文档的顺序是从上往下,加载完按钮节点才执行的js,所以当 ...
- Zend Server 安装与配置图文教程
Zend Server是一款专业的PHP Web开发应用服务器,一些初次接触并使用此程序的朋友可能不太了解安装方法,本文为您提供了Zend Server 安装与配置图文教程,欢迎大家阅读,并提出自己的 ...