最近看到一些利用CSS实现的下拉菜单,有的纯CSS在IE6下面实现不了下拉效果,经过很多次尝试,终于知道在IE6下面必须使用脚本。
下拉菜单的实现文件如下:
- <!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" lang="zh-CN">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>CSS下拉菜单演示</title>
- <style type="text/css">
- <!--
- *{margin:0;padding:0;border:0;}
- body {
- font-family: arial, 宋体, serif;
- font-size:12px;
- }
- #nav {
- line-height: 24px; list-style-type: none; background:#666;
- }
- #nav a {
- display: block; width: 80px; text-align:center;
- }
- #nav a:link {
- color:#666; text-decoration:none;
- }
- #nav a:visited {
- color:#666;text-decoration:none;
- }
- #nav a:hover {
- color:#FFF;text-decoration:none;font-weight:bold;
- }
- #nav li {
- float: left; width: 80px; background:#CCC;
- }
- #nav li a:hover{
- background:#999;
- }
- #nav li ul {
- line-height: 27px; list-style-type: none;text-align:left;
- left: -999em; width: 180px; position: absolute;
- }
- #nav li ul li{
- float: left; width: 180px;
- background: #F6F6F6;
- }
- #nav li ul a{ wedisplay: block; width: 156px;text-align:left;padding-left:24px;
- }
- #nav li ul a:link {
- color:#666; text-decoration:none;
- }
- #nav li ul a:visited {
- color:#666;text-decoration:none;
- }
- #nav li ul a:hover {
- color:#F3F3F3;text-decoration:none;font-weight:normal;
- background:#C00;
- }
- #nav li:hover ul {
- left: auto;
- }
- #nav li.sfhover ul {
- left: auto;
- }
- #content {
- clear: left;
- }
- -->
- </style>
- <script type=text/javascript>
- <!--//--><![CDATA[//><!--
- function menuFix() {
- var sfEls = document.getElementById("nav").getElementsByTagName("li");
- for (var i=0; i<sfEls.length; i++) {
- sfEls[i].οnmοuseοver=function() {
- this.className+=(this.className.length>0? " ": "") + "sfhover";
- }
- sfEls[i].onMouseDown=function() {
- this.className+=(this.className.length>0? " ": "") + "sfhover";
- }
- sfEls[i].onMouseUp=function() {
- this.className+=(this.className.length>0? " ": "") + "sfhover";
- }
- sfEls[i].οnmοuseοut=function() {
- this.className=this.className.replace(new RegExp("( ?|^)sfhover//b"),
- "");
- }
- }
- }
- window.οnlοad=menuFix;
- //--><!]]>
- </script>
- </head>
- <body>
- <ul id="nav">
- <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>
- <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>
- <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>
- <li><a href="#">关于我们</a>
- <ul>
- <li><a href="#">我们四</a></li>
- <li><a href="#">我们四</a></li>
- <li><a href="#">我们四</a></li>
- <li><a href="#">我们四111</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>
- <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="#">联系联系联系联系联系</a></li>
- <li><a href="#">联系联系联系</a></li>
- <li><a href="#">联系</a></li>
- <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>
可以兼容容IE6,IE7,经过测试,也可以在最新的FireFox,Google浏览器实现。
我的浏览器是 IE7,去掉JS脚本也可以实现,而且FireFox,Google 都可以,但就是IE6不行。没办法,为了兼容,还是把那段JS加上了。