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 ...
随机推荐
- POJ 1577 Falling Leaves(二叉搜索树)
思路:当时学长讲了之后,似乎有点思路----------就是倒着建一个 二叉搜索树 代码1:超时 详见超时原因 #include<iostream> #include<cstrin ...
- CI中控制器名不能和本个 控制器中的方法名相同
控制器名称:application/controllers/tang.php 控制器中方法名称:application/controllers/role.php 中有方法 public funct ...
- 【跨域】Access-Control-Allow-Origin
- SPOJ Query on a tree III (树剖(dfs序)+主席树 || Splay等平衡树)(询问点)
You are given a node-labeled rooted tree with n nodes. Define the query (x, k): Find the node whose ...
- ACM学习历程——ZOJ 3822 Domination (2014牡丹江区域赛 D题)(概率,数学递推)
Description Edward is the headmaster of Marjar University. He is enthusiastic about chess and often ...
- 在屏幕中间显示,按ESC键后改变字符的颜色
程序功能:编写程序在屏幕中间显示“a”~“z”,并可以让人看清,这个任务比较好实现. (1)在b800:[ 160*12+40*2]处存入a的ASCII码.(2)在循环中使用一个10000000000 ...
- SparkWriteToHFile
1. HFile的LoadIncrement卡住 原来是因为权限,我一直以为,load函数之后是要删除文件的,但是hdfs://slave1:8020/test/info文件夹所有的是只读权限,而且考 ...
- POJ3468(树状数组区间维护)
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 89818 ...
- Python:.join()函数
转于:https://blog.csdn.net/chixujohnny/article/details/53301995 博主:chixujohnny 介绍:.join是一个字符串操作函数,将元素相 ...
- Java常见设计模式之观察者模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式.模型-视图(Mo ...