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 ...
随机推荐
- kaggle 欺诈信用卡预测——不平衡训练样本的处理方法 综合结论就是:随机森林+过采样(直接复制或者smote后,黑白比例1:3 or 1:1)效果比较好!记得在smote前一定要先做标准化!!!其实随机森林对特征是否标准化无感,但是svm和LR就非常非常关键了
先看数据: 特征如下: Time Number of seconds elapsed between each transaction (over two days) numeric V1 No de ...
- JS中的prototype、__proto__与constructor属性
作为一名前端工程师,必须搞懂JS中的prototype.__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞 ...
- js修改css时如何考虑兼容性问题es5+es6
es5的写法 var elementStyle = document.createElement('div').style var vendor = (function(){ let transfor ...
- css 多行文本以...代替
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- HashMap,Hashtable,TreeMap ,Map
package com.wzy.list; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterato ...
- [BZOJ2962][清华集训]序列操作
bzoj luogu 题意 有一个长度为\(n\) 的序列,有三个操作: \(I \ \ a\ b\ c\ :\)表示将\([a,b]\)这一段区间的元素集体增加\(c\): \(R \ \ a\ b ...
- ACM学习历程—FZU2191完美的数字(数学)
Description Bob是个很喜欢数字的孩子,现在他正在研究一个与数字相关的题目,我们知道一个数字的完美度是 把这个数字分解成三个整数相乘A*A*B(0<A<=B)的方法数,例如数字 ...
- bzoj 3221: Obserbing the tree树上询问 树链剖分+线段树
题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=3221 题解 啊呀...这是昨天的考试题啊...直接就粘了.. 与4515: [Sdoi2 ...
- 【ML】关于神经网络优化问题的随笔记
1. 为什么不去试着最大化正确分类的图像数量而使用二次代价函数? 在神经网络中,被正确分类的图像数量所关于权重和偏置的函数并不是一个平滑的函数.大多数情况下,对权重和偏执做出的微小变动完全不会影响被正 ...
- Java的native关键字
一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由非j ...