IE6 li a:hover position
来源:互联网 发布:哪个软件专门看腐剧 编辑:程序博客网 时间:2024/04/29 17:11
首先就是纯div+css做下拉菜单的代码
然后考虑IE6兼容问题
因为IE6不认li:hover,所以需要一段JS代码来实现这个功能
网上有很多种,这里我选择其中的一种
-----------------code-----------------
<script type="text/javascript"><!--//--><![CDATA[//><!--
sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover//b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
//--><!]]>
</script>
-----------------code-----------------
顺便贴个使用的例子:
-----------------code-----------------
<ul id="nav">
<li><a href="#">这是显示的标题1</a>
<ul>
<li><a href="#">这是列表中的内容1</a></li>
<li><a href="#">这是列表中的内容2</a></li>
<li><a href="#">这是列表中的内容3</a></li>
<li><a href="#">这是列表中的内容4</a></li>
</ul>
</li>
<li><a href="#">这是显示的标题2</a>
<ul>
<li><a href="#">这是列表中的内容5</a></li>
<li><a href="#">这是列表中的内容6</a></li>
<li><a href="#">这是列表中的内容7</a></li>
<li><a href="#">这是列表中的内容8</a></li>
</ul>
</li>
</ul>
-----------------code-----------------
还有css,样式大体内容可以自己改 :
-----------------code-----------------
#nav, #nav ul{ /* all lists */
padding: 0;
margin: 0;
list-style: none;
line-height: 1;
}
#nav li{ /* all list items */
float: left;
width: 10em; /* width needed or else Opera goes nuts */
}
#nav li ul{ /* second-level lists */
position: absolute;
background: orange;
width: 10em;
left: -999em; /* using left instead of display to hide menus because display: none isn't read by screen readers 这里用left:-999em的也行,用display:none的也行,看您喜欢用啥 */
}
#nav li:hover ul, #nav li.sfhover ul{ /* lists nested under hovered list items */
left: auto;/* 如果上面用left的了,那么这就不用改,最多改个数,如果用display:none了,那么这里改成display:block*/
}
-----------------code-----------------
至此就可以用了
接下来,如果需要给下拉的那个列表定位
用到position:absolute,并且设置父元素li为position:relative了的话
那么就会发现下拉菜单不会遮住下面的元素,而是跑到了所有层的最底下
并且无论您怎么设置z-index都没有用
那么关键来了,删掉父元素li的position:relative再看看,好了吧?
或许您要问了,如果删了父元素的包含框,那怎么定位absolute那位呢?
用margin吧~!哈哈,比如:
-----------------code-----------------
#nav li ul {
position: absolute;
background: azure;
width: 200px;
height:200px;
display: none;
margin-left: 80px;
margin-top: -15px;
}
-----------------code-----------------
- IE6 li a:hover position
- li:hover与a:hover的区别
- li:hover在IE6下的解决办法
- IE6.0 不支持LI:HOVER的解决方法
- 关于li:hover伪类,以及各种除了a:hover在IE6下不生效的解决办法.
- IE6bug整理(hover a:hover) IE6 a:hover 无效
- ie6 a的hover无效
- JavaScript 解决 IE6 不支持 li:hover 的方法
- 解决IE6不支持li:hover鼠标经过的效果
- IE6.0 不支持LI:HOVER的解决方法
- a:hover在IE6中的BUG
- a:hover在IE6下不起作用
- IE6 a:hover失效 原因是haslayout
- IE6 中 a:hover 的bug
- ie6 a hover 属性失效解决办法
- ie6下li:hover兼容处理方式一(hover及click)
- css实现a hover li悬停区域改变背景色
- IE6中背景属性加a与a:hover问题
- 分析索引的碎片
- shell下进程的前台与后台运行
- Html/Jsp常用的页面跳转方法
- php实现注释的删除【支持//,/*,/**】
- 测试zoundry_2
- IE6 li a:hover position
- .NET中栈和堆的比较 #1
- 用Selenium测试web应用
- javascript的delete
- abrt and debuginfo-install ——转载+个人修改
- keil c51 可重如问题
- 交叉编译boost
- io相关
- .NET中栈和堆的比较 #2