DIV CSS实现左边商品分类菜单

与某个电子商务网站的左边商品分类菜单类似的用div + css实现的分类菜单,具体的实现如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>左菜单分类显示</title>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
	$(function(){
		$(".listsum-1 dt").click(function(){
			//点击时切换样式
			$(this).parent().toggleClass("listhover");
			$(this).find("a").toggleClass("on");
		});
	});

</script>

<style type="text/css">

/*小类列表菜单*/
.listsum{
	width:188px;
	border:1px solid #dddddd; 
	padding:10px;
	border-top:2px solid #659a32;}
.listsum .tit{ 
	width:188px; 
	height:15px;
	font:400 14px/15px "微软雅黑";color:#000; 
	padding-bottom:10px; 
	border-bottom:1px solid #dddddd}
.listsum .listsum-1{ cursor:pointer;}
.listsum .listsum-1 dt{ 
	height:35px; 
	line-height:35px; 
	padding-left:15px; 
	font-size:12px; 
	color:#333; 
	background:url(open.gif) no-repeat 2px 13px;}
.listsum .listhover dt{/*设置分类菜单的展开收缩小图标*/
	height:35px; 
	line-height:35px; 
	padding-left:15px; 
	font-size:12px; 
	color:#333; 
	background:url(close.gif) no-repeat 2px 13px; 
	cursor:pointer;}
.listsum .listsum-1 dl dt .on {
	height:35px; 
	line-height:35px; 
	font-size:12px; 
	color:#EB6100; 
	text-decoration:none;}
.listsum .listsum-1 dl dt a:hover {color:#eb6100;}
.listsum .listsum-1 dd{ display:none; padding-left:16px;}
.listsum .listhover dd{ display:block;margin-left: 0;}
.listsum .listsum-1 dd ul{margin: 0;padding: 0;}/*设置ul的内边距外边距为0使得内部li能紧贴ul*/
.listsum .listsum-1 dd ul li{ 
	height:22px; 
	line-height:22px; 
	float:left; 
	width:86px; 
	margin:4px 0px; 
	display:inline;} 
.listsum .listsum-1 dd ul li a{ 
	height:22px; 
	line-height:22px;
	padding:0px 4px; 
	display:inline-block; 
	color:#8f8f8f;
	font-size: 14px;}
.listsum .listsum-1 dd ul li a:hover,.listsum .listsum-1 dd ul li a.onlinked{
	height:22px; line-height:22px; 
	padding:0px 4px; 
	display:inline-block; 
	color:#763e02; 
	background-color:#e6ca9a; 
	text-decoration:none;}
.listsum .listsum-1 dd .clear{clear: both;}
		
</style>

</head>
<body>
	<!-- 左边分类 -->
	<div class="listsum" id="categoryListSum">
		<div class="tit">粮油副食</div>
		<div class="listsum-1"
			data-link="#">
			<dl class="">
				<dt>
					<a class="" href="#"
						hidefocus="true">米面杂粮</a>
				</dt>
				<dd>
					<ul>
						<li><a href="#"
							class="" title="大米">大米</a>
						</li>
						<li><a href="#"
							class="" title="面粉">面粉</a>
						</li>
					</ul>
					<!--清除浮动,可以让dd的高度随着li的增多而增大,下同-->
					<div class="clear"></div>
				</dd>
			</dl>
		</div>
		<div class="listsum-1"
			data-link="#">
			<dl class="">
				<dt>
					<a class="" href="#"
						hidefocus="true">食用油</a>
				</dt>
				<dd>
					<ul>
						<li><a href="#"
							class="" title="花生油">花生油</a>
						</li>
						<li><a href="#"
							class="" title="橄榄油">橄榄油</a>
						</li>
					</ul>
					<div class="clear"></div>
				</dd>
			</dl>
		</div>
		<div class="listsum-1"
			data-link="#">
			<dl class="">
				<dt>
					<a class="" href="#"
						hidefocus="true">调味品</a>
				</dt>
				<dd>
					<ul>
						<li><a href="#"
							class="" title="酱油">酱油</a>
						</li>
						<li><a href="#"
							class="" title="醋">醋</a>
						</li>
					</ul>
					<div class="clear"></div>
				</dd>
			</dl>
		</div>
		<div class="listsum-1"
			data-link="#">
			<dl class="">
				<dt>
					<a class="" href="#"
						hidefocus="true">南北干货</a>
				</dt>
				<dd>
					<ul>
						<li><a href="#"
							class="" title="干菌菇类">干菌菇类</a>
						</li>
						<li><a href="#"
							class="" title="粉丝腐竹类">粉丝腐竹类</a>
						</li>
						<li><a href="#"
							class="" title="滋补类">滋补类</a>
						</li>
					</ul>
					<div class="clear"></div>
				</dd>
			</dl>
		</div>
		<div class="listsum-1"
			data-link="#">
			<dl class="">
				<dt>
					<a class="" href="#"
						hidefocus="true">酱菜.罐头</a>
				</dt>
				<dd>
					<ul>
						<li><a href="#"
							class="" title="腌菜">腌菜</a>
						</li>
					</ul>
					<div class="clear"></div>
				</dd>
			</dl>
		</div>
		<div class="listsum-1"
			data-link="#">
			<dl class="">
				<dt>
					<a class="" href="#"
						hidefocus="true">厨房用品</a>
				</dt>
				<dd>
					<ul>
						<li><a href="#"
							class="" title="烘焙良选">烘焙良选</a>
						</li>
					</ul>
					<div class="clear"></div>
				</dd>
			</dl>
		</div>
	</div>
	<!-- 左边分类结束 -->
</body>
</html>

实现效果:


虽然是挺简单的效果,但也用到一些技巧,比如样式的切换使用等。

上面利用到div和清除浮动样式:

<div class="clear"></div>   css: .clear:{clear:both;}

这样可以不设置Div高度,就能自适应高度,背景色或背景图也能自动延伸,当点击展开时<dd>就能自动根据li的高度而自动增加高度。
这种方法是向父容器的末尾再插入一个额外的标签,并令其清除浮动(clear)以撑大父容器。一下还有三种方法可以实现:

2) 对父容器使用after伪类和内容声明在指定的现在内容末尾添加新的内容。

#outer:after{ 

   content:"."; 

   height:0; 

   visibility:hidden; 

   display:block; 

   clear:both; 

  } 

3)设置overflow为hidden或者auto 

  这种做法就是将父容器的overflow设为hidden或auot就可以在标准兼容浏览器中闭合浮动元素.

4)浮动外部元素,float-in-float 

  这种做法就是让父容器也浮动,这利用到了浮动元素的一个特性——浮动元素会闭合浮动元素



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
js+css下拉导航菜单 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>首页 - 铁煤集团协同办公平台</title> <link href="style/left.css" rel="stylesheet" type="text/css" /> </head> <body id="newskin"> <div class="contain"> <div class="c_top"> <script language=javascript> var MyBlogName = "netoe"; function logonout() { document.getElementById("a_logon").href="../../utility.tool.hexun.com/quit.aspx@gourl="+document.location.href; } </script> <script language=javascript> var myblogName="netoe"; var homeDiv=5; function ShowIndexDiv(index) { for(var i=1;i<= homeDiv;i++) { var e = document.getElementById("indexDiv_"+ i); if( e == null) continue; if( i == index) { e.className="topnew_on"; } else { e.className="topnew_out"; } } } var indexLoc=document.location.href.toLowerCase(); if(indexLoc.indexOf("admin_index")>0) { ShowIndexDiv(1); } if(indexLoc.indexOf("admin_userfocus")>0||indexLoc.indexOf("admin_mefocus")>0||indexLoc.indexOf("admin_focusme")>0||indexLoc.indexOf("admin_focusmore")>0) { ShowIndexDiv(2); } if(indexLoc.indexOf("admin_myfriends1")>0) { ShowIndexDiv(3); } if(indexLoc.indexOf("admin_relatecircle")>0||indexLoc.indexOf("admin_mycircle1")>0) { ShowIndexDiv(4); } if(indexLoc.indexOf("admin_window")>0||indexLoc.indexOf("admin_window")>0) { ShowIndexDiv(5); } /* //lhj */ </script> </div> <div class="c_left"> <!-- 【左侧:开始】 --> <script language="javascript"> <!-- var DIV_COUNT = 12; var PostBlogUrl = "../../post.blog.hexun.com/newpost.aspx"; function ControlDiv(index) { for(var i=1;i<= DIV_COUNT;i++) { var e = document.getElementById("dv"+ i); var ev = document.getElementById("dvShow"+ i); if( e == null || ev == null ) continue; if( i == index) { if(e.className=="left2_on") { e.className="left2_out"; } else{ e.className="left2_on"; } } else { e.className="left2_out"; ev.style.display="none"; } } } function showdv(index) { if(document.getElementById("dvShow"+index).style.display == "none") { document.getElementById("dvShow"+index).style.display = ""; document.getElementById("dv"+index).className="left2_out"; } else { document.getElementById("dvShow"+index).style.display = "none"; document.getElementById("dv"+index).className="left2_on"; } ControlDiv(index); } function SpaceClass(div) { document.getElementById("divset" + div).className="left2_break_1"; } --> </script> <div class="left"> <div class="left2"> <a href="javascript:showdv('1')"><div class="left2_out" id="dv1" style="cursor:hand;"> 个人设置</div></a> <div class="left2_break" style="display: none" id="dvShow1"> <div class="left2_break_2" id="divset7"> <a href="admin_pwdmodify.aspx">修改密码</a></div> <div class="left2_break_2" id="divset50"> <a href="admin_messageboard.aspx">留言板</a></div> <div class="left2_break_2" id="divset8"> <a href="Admin_Privacy.aspx">隐私设置</a></div> </div> <a href="javascript:showdv('2')"><div class="left2_out" id="dv2" style="cursor:hand;"> 闭环管理</div></a> <div class="left2_break" style="display: none" id="dvShow2"> <div class="left2_break_2" id="divset9"> <a href="admin_baseinfo.aspx">安全管理</a></div> <div class="left2_break_2" id="divset10"> <a href="admin_JobModify.aspx">质量管理</a></div> </div> <a href="javascript:showdv('3')"><div class="left2_out" id="dv3" style="cursor:hand;"> C菜单项</div></a> <div class="left2_break" style="display: none" id="dvShow3"> <div class="left2_break_2" id="divset29"> <a href="Admin_BlogArticleManage.aspx">C子菜单1</a></div> <div class="left2_break_2" id="divset13"> <a href="Admin_selfcategory.aspx">自定义模块</a></div> </div> <a href="javascript:showdv('4')"><div class="left2_out" id="dv4" style="cursor:hand;"> D菜单项</div></a> <div class="left2_break" style="display: none" id="dvShow4"> <div class="left2_break_2" id="divset15"> <a href="Admin_BlogArticleManage.aspx">D子菜单1</a></div> </div> <a href="javascript:showdv('5')"><div class="left2_out" id="dv5" style="cursor:hand;"> E菜单项</div></a> <div class="left2_break" style="display: none" id="dvShow5"> <div class="left2_break_2" id="divset1"> <a href="#">E子菜单1</a></div> </div> <a href="javascript:showdv('6')"><div class="left2_out" id="dv6" style="cursor:hand;"> F菜单项</div></a> <div class="left2_break" style="display: none" id="dvShow6"> <div class="left2_break_2" id="divset2"> <a href="#">F子菜单1</a></div> </div> <a href="javascript:showdv('7')"><div class="left2_out" id="dv7" style="cursor:hand;"> G菜单项</div></a> <div class="left2_break" style="display: none" id="dvShow7"> <div class="left2_break_2" id="divset9"> <a href="#">G子菜单1</a></div> <div class="left2_break_2" id="divset48"> <a href="Admin_BlogTagShow.aspx">标签显示</a></div> </div> <a href="javascript:showdv('8')"><div class="left2_out" id="dv8" style="cursor:hand;"> H菜单项</div></a> <div class="left2_break" style="display: none" id="dvShow8"> <div class="left2_break_2" id="divset32"> <a href="#">H子菜单1</a> </div> <div class="left2_break_2" id="divset49"> <a href="admin_ManageVideo.aspx">视频管理</a></div> <div class="left2_break_2" id="divset35"> <a href="admin_ManageVidSpe.aspx">专辑管理</a></div> </div> </div> </div> </body> </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值