The problem is that text-decoration
propagates to descendants:
When specified on or propagated to an inline element, it affects all
the boxes generated by that element, and is further propagated to any
in-flow block-level boxes that split the inline [...]
For block containers that establish an inline formatting context, the
decorations are propagated to an anonymous inline element that wraps
all the in-flow inline-level children of the block container.
For all other elements it is propagated to any in-flow children.
But there are two exceptions: out-of-flow and atomic inline-level descendants:
Note that text decorations are not propagated to floating and
absolutely positioned descendants, nor to the contents of atomic
inline-level descendants such as inline blocks and inline tables.
Therefore, you can use display: inline-block
on a child to prevent its parent's text-decoration
from affecting it.
a > sup {
display: inline-block; /* Remove parent's text-decoration */
color: red;
}
<a href="http:/example.com//">
Example<sup class='tm'>™</sup>
</a>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…