您的位置:首页 > Web前端 > CSS

IE中伪类:hover的使用及BUG,以及如何在IE6中进行修正(CSS)

2007-12-20 10:51 841 查看
:hover是我们在CSS设计中最常运用的伪类之一,许多绚丽效果的实现离不开伪类:hover,比如我们常见的纯CSS菜单、相册效果等等。

或许用了这么久的伪类:hover,还有部分朋友还不完全了解hover的规则:

引用:
在CSS1中此伪类仅可用于a对象。且对于无href属性(特性)的a对象,此伪类不发生作用。
在CSS2中此伪类可以应用于任何对象。

但目前IE5.5、IE6仅支持CSS1中的:hover,不过新出的IE7是支持CSS2中的:hover。

这里有一个解决办法让IE和其他浏览器一起痛快地HOVER(利用IE6 的Expression CSS):

span.link {
    cursor:pointer;
    color: blue;
    text-decoration: none;
    m: expression(this.onmouseover =  new Function("this.className = 'link-hover';"));
}
span.link:hover, .link-hover {
    cursor:pointer;
    color: red;
    text-decoration: underline;
    m: expression(this.onmouseout =  new Function("this.className = 'link';"));
}

<span class="link">this is a link</span>

也可以这么用
#m:expression(this.onmouseout=function(){this.className='link'});

其中"#"开头代表只有IE认识
注意 Firefox 不认识 .link:hover, 必须前面加tag,才能认识,如 span.link:hover ,很奇怪

span.link {
    cursor:pointer;
    color:blue;
    text-decoration:none;
    #m:expression(this.onmouseover=function(){this.className='link-hover'});
}
span.link:hover, .link-hover {
    cursor:pointer;
    color:red;
    text-decoration:underline;
    #m:expression(this.onmouseout=function(){this.className='link'});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息