<span>在<a> link issue</a> </span>内

时间:2012-01-13 15:40:18

标签: css

我有一个标题链接,如下所示,

<a href="#">Cat<span class="more">See More</span></a>

你看我在里面是为了向右边流动“看到更多”,所以我有以下css

.more {float:right;}
a{text-decoration:none;width:150px;display:block;}
a:hover {text-decoration:underline;}

我希望当我将鼠标悬停在文字“Cat”上时,“看到更多”会加下划线,但它在IE / Firefox中不起作用,但它可以在Chrome中使用。

http://jsfiddle.net/ZW9tt/1/

任何人都知道为什么?

7 个答案:

答案 0 :(得分:10)

  

任何人都知道为什么?

您在IE和Firefox中看到的实际上是预期的行为,在CSS2.1 spec中描述:

  

请注意,文本修饰不会传播到浮动和绝对定位的后代,也不会传播到原子内联级后代(如内联块和内联表)的内容。

但等等,还有更多:

  

一些用户代理通过将装饰传播到后代元素来实现文本修饰,而不是如上所述保持恒定的厚度和线位置。这可以说是CSS2中更宽松的措辞所允许的。 SVG1,仅限CSS1和仅限CSS2的用户代理可以实现旧模型,并且仍声称符合CSS 2.1的这一部分。 (这不适用于本规范发布后开发的UAs。)

鉴于Chrome浏览器是一款CSS2.1浏览器,无论信不信由你,它实际上都出现了一个错误(恰好已经修补过了!)。 Here's the bug report.

如果您需要将下划线应用于浮动范围,则还需要将其明确应用于a:hover .more

a:hover, a:hover .more { text-decoration: underline; }

答案 1 :(得分:1)

使用:

 a:hover, a:hover .more {text-decoration:underline;}

答案 2 :(得分:0)

如何只定位跨度?

.more {float:right;}
a{text-decoration:none;width:150px;display:block;}
a:hover, a:hover span {text-decoration:underline;}

答案 3 :(得分:-1)

这有用吗?

a:hover span.more{text-decoration:underline;}

答案 4 :(得分:-1)

为什么不把课程放在A链接上呢?

答案 5 :(得分:-1)

为什么不使用虚线边框底部更有趣。

.more {float:right;}
a:link {text-decoration:none;width:150px;display:block;}
a:hover, a:hover span {border-bottom:dotted 1px #000;}

答案 6 :(得分:-1)

.more{float:right;cursor:pointer/* for ie6 */;}
a{display:block;width:150px;text-decoration:none;}
a:hover,a:hover span{text-decoration:underline;}