span标签写法问题导致ie8 hover失效
作者:admin 时间:2013-9-25 16:54:31 浏览:hover在css里比较常见,多用于菜单或一些按钮上的鼠标事件,用法也比较简单,不难掌握。
不过在浏览器兼容性测试中,发现ie浏览器对hover还是很挑剔的,html写法会影响hover是否有效。
我们先比较看看下面两组html代码的写法:
代码一:
<ul>
<li><a href="http://www.webkaka.com/ping.aspx" class="ping-menu">ping<span/></a></li>
<li><a href="http://www.webkaka.com/tracert.aspx" class="tracert-menu">tracert<span/></a></li>
<li><a href="http://www.webkaka.com/dns/" class="dns-menu">dns<span/></a></li>
<li><a href="http://www.webkaka.com/webspeed/" class="webspeed-menu">webspeed<span/></a></li>
</ul>
代码二:
<ul>
<li><a href="http://www.webkaka.com/ping.aspx" class="ping-menu">ping<span></span></a></li>
<li><a href="http://www.webkaka.com/tracert.aspx" class="tracert-menu">tracert<span></span></a></li>
<li><a href="http://www.webkaka.com/dns/" class="dns-menu">dns<span></span></a></li>
<li><a href="http://www.webkaka.com/webspeed/" class="webspeed-menu">webspeed<span></span></a></li>
</ul>
细心些你会发现,<span>标签的差异,但是在这次浏览器兼容性测试中发现,第一种代码的写法,即<span/>,在IE8里不能正确执行hover鼠标事件,而第二种代码的写法,<span></span>在IE8里能正确执行hover鼠标事件。不过,其他浏览器两种写法均可。
这次勘查用了很多时间,谁会想到IE8还有这么挑剔的!
hover知识你懂多少?
CSS :hover 伪类
定义和用法
:hover 伪类在鼠标移到元素上时向此元素添加特殊的样式。
说明
这个伪类应用处于“悬停状态”的元素。悬停定义为用户指示了一个元素但没有将其激活。对此最常见的例子是将鼠标指针移到 HTML 文档中一个超链接的边界范围内。理论上,其他元素也可以处于悬停状态,不过 CSS 没有定义究竟是哪些元素。
激活的、已访问的、未访问的或者当有鼠标悬停在其上的链接,它们会在支持 CSS 的浏览器中以不同的方式显示出来:
a:link {color: #FF0000} /* 未访问的链接 */
a:visited {color: #00FF00} /* 已访问的链接 */
a:hover {color: #FF00FF} /* 当有鼠标悬停在链接上 */
a:active {color: #0000FF} /* 被选择的链接 */
注释:为了产生预期的效果,在 CSS 定义中,a:hover 必须位于 a:link 和 a:visited 之后!!
注释:为了产生预期的效果,在 CSS 定义中,a:active 必须位于 a:hover 之后!!
注释:Pseudo-class(伪类)的名称对大小写不敏感。
注释:伪类可与 CSS 类配合使用:
a.red:visited {color: #FF0000;}
<a class="red" href="css_syntax.asp">CSS Syntax</a>
如果上面这个例子中的链接已访问过,那么它会显示为红色。
实例
规定链接的颜色:
a:link {color: #FF0000} /* 未访问的链接 */
a:visited {color: #00FF00} /* 已访问的链接 */
a:hover {color: #FF00FF} /* 当有鼠标悬停在链接上 */
a:active {color: #0000FF} /* 被选择的链接 */
浏览器支持
所有主流浏览器都支持 :hover 伪类。
- 站长推荐