接受的答案中的以下行不正确:
后代框上的任何文本装饰设置都不能“撤消”祖先框的文本装饰。
永远不要说永远,对吧?
我还没有找到适用于 IE 的解决方案(除非您碰巧正在处理在 a 上设置删除线的场景<TD>
)但是对于其他浏览器也是可能的,尽管您必须与解决方案的副作用作斗争。
请访问http://result.dabblet.com/gist/3713284/亲自查看
简而言之:只是添加display:table;
到孩子的风格。出于某种原因,在 FF 中,您可以使用、或中的任何一个table
,但这些在 Safari/Chrome 中不起作用。block
list-item
table-caption
它使用下面的代码:
<span style="text-decoration:line-through;">
Dead Text
<a href="#" style="text-decoration:underline;color:Red;">Undesired strikethrough</a>
</span>
<div style="text-decoration:line-through;">
Dead Text
<a href="#" style="text-decoration:underline;color:Red; display: table;">display: table in a div</a>
</div>
<span style="text-decoration:line-through;">
Dead Text
<a href="#" style="text-decoration:underline;color:Red; display: table;">display: table in a span</a>
</span>
<span style="text-decoration:line-through; display: block;">
Dead Text
<a href="#" style="text-decoration:underline;color:Red; display: table;">display: table in a span with "display:block;"</a>
</span>
<span style="text-decoration:line-through; display: table-cell;">
Dead Text
<a href="#" style="text-decoration:underline;color:Red; display: table;">display: table in a span with "display:table-cell;"</a>
</span>
<span style="text-decoration:line-through;">
Dead Text
<a href="#" style="text-decoration:underline;color:Red; display: list-item;">display: list-item</a>
</span>
<span style="text-decoration:line-through;">
Dead Text
<a href="#" style="text-decoration:underline;color:Red; display: table-caption;">display: table-caption;</a>
</span>