IE6下面的hover不兼容

第一种解决方法:
ie6中hover只是对a标签有作用 必须有href=“”,否则都不管用,如果不能写a标签,还想让ie6下有滑过效果,那只能写javascript或者jquery。
例如:ie6是不支持li:hover的,想实现的话可以这样写 li:hover 变成 li a:hover

在IE6中,因为只支持css1,而hover伪类(css伪类)在css1中只支持<a>标签使用,其他标签一概不接纳,下面是一个简单的例子:
 还有一种情况:
   a {},a span {color: green;}    a:hover {},a:hover span {color: red; }
  <a href=”#”> Hello <span> World! </span></a>
  在IE7/FF中,鼠标移动到链接上时,”World!”字样会变为红色,但IE6则无反应。所以IE6的bug就是如果a 与a:hover   的css定义是一样的,也就是说如果a:hover 中没有样式的改变,hover就不会被触发。但如果在a:hover{}增加一些特定的属性,例如
  a:hover{border:none;}或者a:hover{padding:0;}又或者a:hover{background: none;}此时hover就可以触发了。

第二中解决方法:

  IE6以及更低版本的浏览器对“:hover”的支持不理想,对于类似的“p:hover”、“img:hover”、 
“#header:hover”...,今天给大家介绍一种新的方法,可以完美解决IE6不支持hover的情况,
用法很简单,将下载后的 “csshover.htc”文件,定义在body样式内。
body{behavior:url("csshover.htc");}
第三种解决方法:
<style type=”text/css”>  
      p:hover,p.hover { background:#eee; }   /* 就是要多写一个.hover而已 */
</style>

下面这段代码要放到页面的底部在</body> 前:
<script type=”text/javascript”>   
//<!–  让所有标记支持hover   
  function $(){   
        if(document.all){ // 判断是否IE浏览器   
             var obj=document.all;   
              for(var i=0;i<obj.length;i++){   
                    obj[i].onmouseover=function(){   
                          this.className=”hover”   
                    } ;   
                  obj[i].onmouseout=function(){   
                        this.className=”"   
                    }   
              }   
        }   
  }   
  $();   
//–>   
</script>
posted @ 2013-12-03 16:31  蛋蛋的小家  阅读(248)  评论(0编辑  收藏  举报