6
我知道::first-letter
选择block-level element的第一个字母。如何选择除首字母以外的文字?
如何选择除第一个字母以外的所有文本?
我试过:not(::first-letter)
但没有选择任何东西。
我知道::first-letter
选择block-level element的第一个字母。如何选择除首字母以外的文字?
如何选择除第一个字母以外的所有文本?
我试过:not(::first-letter)
但没有选择任何东西。
:not
can only be applied to simple selectors。伪元素不是simple selectors,所以你不能倒置它们。
您可以将“非首字母”样式应用于所有文本,并将其替换为第一个字母。
例如:
p {
color: red;
text-transform: uppercase;
}
p::first-letter {
color: black;
text-transform: none;
}
<p>red capitals except the first letter.</p>
您可能需要链接到[规格](https://drafts.csswg.org/selectors-3/#negation),也表明为什么伪元素不能作为':not'的参数(这是因为伪元素不是简单的选择器)。只是一个建议:) – Harry
值得注意的是,对于像color这样的属性,'color:currentColor'将不会在这里工作,因为:: first-letter框像所有伪元素框一样是p的后代盒子,所以它的currentColor将是文本的其余部分 - 红色。这就是为什么原始颜色必须重新编码。 – BoltClock