故事: 我有一个链接,其中包含一些文本。链接的一部分应该以稍微不同的样式呈现(不同的大小和颜色)。
HTML:
<a href="#">Lorem Ipsum <span>Lorem Ipsum</span> Lorem Ipsum</a>
CSS:
a { color: blue; text-decoration: underline; }
a span { color: yellow; font-size: 2em; }
问题: 无论我做什么,都找不到一个好的方法让线条与span文本颜色一致。
我唯一能想到的解决方案是在a标签上设置text-decoration: none,并为每个子元素设置它。但这对我来说似乎不是一个好方法。
我已经在Firefox v12(Windows和Ubuntu),Opera v11,IE v7,IE v9,Safari v5.1和Chrome(Nightly)中进行了测试...
只有Firefox和Opera似乎存在此问题(Opera甚至比Firefox更糟糕,但我不太关心Opera)。
编辑: 我的目标不是完全摆脱线条,而是改变颜色(通过任何解决方案)。根据Chris所写的答案,我认为它必须是类似于覆盖绘制的东西。这至少是在IE和Webkit浏览器中看起来像这样。
示例: 这里有一个扩展示例的链接:http://jsfiddle.net/r2dhb/3/
更新: CSS3 http://www.w3.org/TR/css3-text/#decoration 中肯定会有一些变化,但我不在意,因为这些东西在任何浏览器中都不受支持 :)
<a>
标签的内容,如果你将spans更改为inline-block,它们就不再有下划线了,但你当然会遇到不同的布局问题。我认为这些观察结果可能会有所帮助。 :) - Chris<a>
被下划线标记,其子元素的样式不应影响它。这就像如果你给元素应用边框一样。你不会期望它在子元素处停止...我正在尝试找到一个适当的非歧义性的w3引用来解决这个问题,然后再发布为答案... - Chris