纯CSS滑动显示多级菜单

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
#menu a {
	display: block;	/*指定背景色占整块,不然背景色只在字体下有*/
	text-decoration: none;	/*取消下划线*/
	background-color: #569E3D;	/*菜单背景色*/
	line-height: 25px;	/*调整行高*/
	text-align: center;
}
#menu ul {
	list-style: none;	/*取消前缀符号*/
	border-top: 1px solid #fff;
	border-left: 1px solid #fff;
}

#menu ul li {
	border-bottom: 1px solid #fff;
	border-right: 1px solid #fff;
}
/*上面的是样式可有可无*/

#menu ul li {
	float: left;	/*取消首行菜单换行*/
	position: relative;
	width: 150px;
}

#menu ul {
	padding-left: 0px;
}
#menu ul ul {
	display: none;	/*第二级菜单默认隐藏*/
	position: absolute;
}
#menu ul :hover ul :hover ul {
	display: block;
	left: 150px;
	top: -1px;	/*菜单左右保持对齐,如果不加则往下移一格*/
}

#menu ul :hover ul, #menu ul :hover ul :hover ul :hover ul, #menu ul :hover ul :hover ul :hover ul :hover ul {
	display: block;	/*:hover是关键,且:hover前的空格使用也很关键,个人觉得加空格就是前面的元素一起保持:hover*/
}


#menu ul :hover ul ul, #menu ul :hover ul :hover ul ul, #menu ul :hover ul :hover ul :hover ul ul {
	display: none;	/*:hover只显示下一级菜单,下一级以下的菜单隐藏*/
}
</style>
</head>
<body>
<div id="menu">
<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>
		<li><a href="#">荣誉</a></li>
	</ul>
	</li>
	<li><a href="#">产品服务</a>
	<ul>
		<li><a href="#">产品1</a>
		<ul>
			<li><a href="#">配套</a></li>
			<li><a href="#">配件</a></li>
		</ul>
		</li>
		<li><a href="#">产品2</a>
		<ul>
			<li><a href="#">产品2-1</a></li>
			<li><a href="#">产品2-2</a></li>
		</ul>
		</li>
		<li><a href="#">服务</a>
		<ul>
			<li><a href="#">服务111</a></li>
			<li><a href="#">服务112</a></li>
			<li><a href="#">服务113</a></li>
			<li><a href="#">服务114</a></li>
			<li><a href="#">服务115</a></li>
		</ul>
		</li>
	</ul>
	</li>
</ul>
</div>
</body>
</html>


关键是:hover的使用,这里的:hover前要加空格,空格不能删除,不好的地方是:hover前加空格,强大的是可以加很多级菜单,只需按照后面两行配置就可以,其它不用改。CSS的代码已经简到不能再简了,我也想要更简单的。ul li和ul ul中的position也挺重要,没搞明白里面的原理。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值