二级下拉菜单布局(纵向、横向)

  • 一级菜单
  1. 在ul列表内建立li元素并清除默认样式
  2. 让所有li元素左浮动并清除浮动
DOM中文档结构如下:
<ul class="clearfix">
    <li><a href="#">1</a></li>
    <li><a href="#">2</a></li>
    <li><a href="#">3</a></li>
    <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
</ul>

CSS中的样式如下:

.ul1{
	width:510px;
	margin:0 auto;
}
.ul1 li{
	list-style:none;
	width:100px;
	line-height:45px;
	font-size:25px;
	text-align:center;
	border:1px #000 solid;
	float:left;
	background:#00F;
}
.ul1 a{
	color:#FFF;
	text-decoration:none;
}

效果图如下:


  • 二级下拉菜单(纵向)
  1. 在一级ul列表内建立一级li元素并清除默认样式
  2. 让所有一级li元素左浮动并清除浮动
  3. 在一级li内创建二级ul列表,二级ul列表内建立二级li元素并清除默认样式
  4. 设置二级ul列表属性display:none;让此元素不会被显示
  5. 在JS内动态设置一级li元素被点击时,让其下的二级ul列表属性切换为display:block;让此元素显示

DOM中文档结构如下:

<ul class="ul1 clearfix">
    <li><a href="#">一</a>
        <ul class="clearfix">
            <li><a href="#">1</a></li>
            <li><a href="#">2</a></li>
            <li><a href="#">3</a></li>
            <li><a href="#">4</a></li>
            <li><a href="#">5</a></li>
        </ul>	
    </li>
    <li><a href="#">二</a>
    	<ul class="clearfix">
            <li><a href="#">1</a></li>
            <li><a href="#">2</a></li>
            <li><a href="#">3</a></li>
            <li><a href="#">4</a></li>
            <li><a href="#">5</a></li>
        </ul>
    </li>
    <li><a href="#">三</a>
    	<ul class="clearfix">
            <li><a href="#">1</a></li>
            <li><a href="#">2</a></li>
            <li><a href="#">3</a></li>
            <li><a href="#">4</a></li>
            <li><a href="#">5</a></li>
        </ul>
    </li>
    <li><a href="#">四</a>
    	<ul class="clearfix">
            <li><a href="#">1</a></li>
            <li><a href="#">2</a></li>
            <li><a href="#">3</a></li>
            <li><a href="#">4</a></li>
            <li><a href="#">5</a></li>
        </ul>
    </li>
    <li><a href="#">五</a>
    	<ul class="clearfix">
            <li><a href="#">1</a></li>
            <li><a href="#">2</a></li>
            <li><a href="#">3</a></li>
            <li><a href="#">4</a></li>
            <li><a href="#">5</a></li>
        </ul>
    </li>
</ul>

CSS中的样式如下:

ul,li,a{
	margin:0;
	padding:0;
}
.ul1{
	width:510px;
	margin:0 auto;
}
.ul1 li{
	list-style:none;
	width:100px;
	line-height:45px;
	font-size:25px;
	text-align:center;
	border:1px #000 solid;
	float:left;
	background:#00F;
}
.ul1 a{
	color:#FFF;
	text-decoration:none;
}
.ul1 ul{
	display:none;
}
.ul1 ul li{
	list-style:none;
	width:100px;
	line-height:30px;
	text-align:center;
	border:1px #000 solid;
	background:#0FF;
}

清除浮动样式:

.clearfix:before,.clearfix:after{
	display:table;
	content:"";
}
.clearfix:after{
	clear:both;/*在所有元素的父元素上加伪类*/
}
.clearfix{
	*zoom:1;
}

JS中的样式如下:

var oUl1 = document.getElementsByTagName("ul")[0];
var aLi1 = oUl1.children;
var aUl2 = oUl1.getElementsByTagName("ul");
for(var i=0;i<aLi1.length;i++){
	aLi1[i].onclick = function(){
		this.getElementsByTagName("ul")[0].style.display = "block";
		this.style.backgroundColor = "red";
	}
}
for(var i=0;i<aUl2.length;i++){
	var aLi2 = aUl2[i].getElementsByTagName("li");
	for(var j=0;j<aLi2.length;j++){
		aLi2[j].onmouseover = function(){
			this.getElementsByTagName("a")[0].style.color = "red";
		}
		aLi2[j].onmouseout = function(){
			this.getElementsByTagName("a")[0].style.color = "white";
		}
	}
}

效果图如下:


  • 二级下拉菜单(横向)
  1. 纵向的设计步骤基础上给二级li元素添加左浮动并清除浮动。

在CSS的样式中添加:

.ul1 ul{
	width:510px;
}
.ul1 ul li{
	float:left;
}

效果图如下:



猜你喜欢

转载自blog.csdn.net/number7421/article/details/79995503