这种模式是目前最受欢迎,也是普遍采用的模式。主要解决的问题是响应鼠标的over 和 out事件,来控制div
参看代码:
<style type="text/css">
ul {
margin: 0;
padding: 0;
list-style: none;
width: 130px;
border-bottom: 1px solid #ccc;
font-size:12px;
}
ul li {
position: relative;
}
li ul {
position: absolute;
left: 129px;
top: 0;
display: none;
}
ul li a {
display: block;
text-decoration: none;
color: #777;
background: #fff;
padding: 5px;
border: 1px solid #ccc;
border-bottom: 0;
}
/* 解决UL在IE中显示不正确问题 */
* html ul li { float: left; height: 1%; }
* html ul li a { height: 1%; }
/* End */
li:hover ul, li.over ul { display: block; }
</style>
<script type="text/javascript"><!--//--><![CDATA[//><!--
startList = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes[i];
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
}
node.onmouseout=function() {
this.className=this.className.replace(" over", "");
}
}
}
}
}
window.onload=startList;
//--><!]]></script>
</head>
<body>
<ul id="nav">
<li><a href="#">CSS布局</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="#">CSS页面元素</a>
<ul>
<li><a href="#">导航</a></li>
<li><a href="#">背景</a></li>
<li><a href="#">列表</a></li>
<li><a href="#">Form表单</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="#">文本</a></li>
<li><a href="#">图文</a></li>
<li><a href="#">全图</a></li>
<li><a href="#">混合排版</a></li>
</ul>
</li>
</ul>
</body>
</html>