下面'例子:
u i {
text-decoration: none;
color: red;
}

<u>
Underlined text
<i>Text without underline</i>
</u>
&#13;
实际结果:
预期结果:
如何在<i>
内禁用<u>
下划线?
答案 0 :(得分:5)
为什么要花费精力?
我的意思是:您使用<u>
标记标记您的内容;现在你想要一个带下划线的特殊规则,但斜体文本只应该是 italic ,但不加下划线?!
我认为你最好退一步看看你的要求;简单的解决方案是:“切换到斜体时结束</u>
部分。”
并且为了记录:正如TheYaXxE在他的回答中所表明的,这在技术上是可行的。但我在这里与Konrad在一起 - 可以完成的事实并不意味着应该以这种方式完成。
答案 1 :(得分:2)
这并不是说你应该这样做。它是一种黑客和非语义(正如其他用户所提到的)。但是要使用你的HTML结构并回答你如何做到的问题,这就是答案:
u {
display: inline-block;
}
u i {
float: right;
padding-left: 5px;
color: red;
}
&#13;
<u>
Underlined text
<i>Text without underline</i>
</u>
&#13;
答案 2 :(得分:1)
有几种方法可以达到你想要的效果。
最明显的方法就是让你和我紧挨着这样:
i {
color: red;
}
&#13;
<u>Underlined text</u>
<i>Text without underline</i>
&#13;
如果你仍然希望将它们中的两个包裹起来,只需将它们包裹在一个范围内:
span i {
color: red;
}
&#13;
<span>
<u>Underlined text</u>
<i>Text without underline</i>
</span>
&#13;
答案 3 :(得分:0)
最好为带下划线的部分使用单独的标记
i {
text-decoration: none;
color: red;
}
span{
text-decoration:underline;
}
<div>
<span>Underlined text</span>
<i>Text without underline</i>
</div>
答案 4 :(得分:0)
试试这个。此外,您无法禁用<i> inside <u>
的下划线。就像您试图说红色到黑色一样。谢谢!
i {
color: red;
}
<u> Underlined text </u>
<i>Text without underline</i>
答案 5 :(得分:-1)
正如其他答案已经表明的那样,你不应该这样做。给出了各种各样的理由,我在这里不再重复,而且它们都是好的,所以不要这样做。只是不要。
尽管如此,有一个解决方案并不需要更改标记,只有css。
u i {
text-decoration: underline;
text-decoration-color:white;
color: red;
}
&#13;
<u>
Underlined text
<i>Text without underline</i>
</u>
&#13;