本文和大家重点讨论一下CSS伪类:hover 在IE中使用及其BUG,伪类:hover是我们在CSS设计中最常运用的伪类之一,许多绚丽效果的实现离不开伪类:hover,比如我们常见的纯CSS菜单、相册效果等等。
CSS伪类:hover 在IE中使用及其BUG
伪类:hover是我们在CSS设计中最常运用的伪类之一,许多绚丽效果的实现离不开伪类:hover,比如我们常见的纯CSS菜单、相册效果等等。或许用了这么久的伪类:hover,还有部分朋友还不完全了解hover的规则:
◆在CSS1中此伪类仅可用于a对象。且对于无href属性(特性)的a对象,此伪类不发生作用。
◆在CSS2中此伪类可以应用于任何对象。
但目前IE5.5、IE6仅支持CSS1中的:hover,不过新出的IE7是支持CSS2中的:hover。
当我们用伪类:hover做某些特殊效果时,依据CSS2很好完成,但为了现在占据主流浏览器的IE6,我们又不得不做很多工作,比如给添加a元素等来模拟完成最终的效果。
或许这样讲太空洞,请看下面一个常见的触发显示的例子(仅选择IE6为例讲解)。
我们先用CSS2的写法来实现:
XHTML部分:
ExampleSourceCode
- <ul>
- <li>鼠标移过来触发我吧!<ahrefahref="#"title="">
- 哈哈,终于被你发现了!</a></li>
- </ul>
CSS部分:
ExampleSourceCode
- *{margin:0;padding:0;}
- ul{list-style:none;margin:100px;}
- li{height:100px;width:100px;background:#000;
- font-size:12px;color:#fff;position:relative;}
- lia{display:none;}
- li:hovera{display:block;
- text-decoration:none;width:100px;height:100px;
- background:#c00;position:absolute;top:50px;
- left:50px;color:#fff;}
◆查看效果:
SourceCodetoRun
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">
- <head>
- <metahttp-equivmetahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
- <title>css</title>
- <styletypestyletype="text/css">
- ul{list-style:none;}
- li{height:100px;width:100px;background:#000;
- font-size:12px;color:#fff;position:relative;}
- lia{display:none;}
- li:hovera{display:block;text-decoration:none;width:100px;height:100px;background:#c00;
- position:absolute;top:50px;left:50px;color:#fff;}
- </style>
- </head>
- <body>
- <h2>使用CSS2做出的效果</h2>
- <ul>
- <li>鼠标移过来触发我吧!<ahrefahref="#"title="">哈哈,终于被你发现了!</a></li>
- </ul>
- </body>
- </html>