我试图为第一个孩子的元素找到一个CSS选择器,将任何可能出现在它之前的文本节点都考虑在内(例如,如果之前有任何元素出现,可能是未包装的文本节点,则不再将其视为第一个孩子)。是否有第一个孩子的CSS选择器,考虑到文本节点?
但似乎:first-child
不包括文本节点,同样没有:nth-child
等
这是我在哪里,但它不工作:
.red-if-not-first {
color: red;
font-weight: bold;
}
.red-if-not-first:first-child {
color: green;
}
<p>
Lorem ipsum. <span class="red-if-not-first">This should be red, not green, because some content comes before it.</span> Eum natus culpa officia a molestias, sed beatae aut in autem architecto iure repellat quam placeat, expedita maxime laborum necessitatibus repudiandae. Corrupti!
</p>
<p>
<span class="red-if-not-first">This is rightly green, not red, because it's first bit of content in this paragraph.</span> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eum natus culpa officia a molestias, sed beatae aut in autem architecto iure repellat quam placeat, expedita maxime laborum necessitatibus repudiandae. Corrupti!
</p>
不幸的是,我对标记无法控制。
我知道这已经是asked before,但那是3年前,这在前端已经有好几千年了!
你是开放的JavaScript的解决方案?我不相信这在CSS中是可行的 –
我可以用JavaScript自己管理它,但我很想知道是否有一种(更好的)CSS方法。我搜索了高和低,只发现“不”,但他们都来自几年前。 –
如果您想要自动解决方案,只能通过javascript朋友完成。 – zsawaf