是否可以选择前面没有文本的元素?

twh*_*whb 5 html css css-selectors

我想要一个与<code>in匹配的 CSS 选择器:

<p><code>foo</code> bar</p>
Run Code Online (Sandbox Code Playgroud)

但不是<code>在:

<p>foo <code>bar</code></p> 
Run Code Online (Sandbox Code Playgroud)

code:first-child不起作用。它匹配两者。

问只是因为我认为这是不可能的。

我想我会在放弃之前给社区一个机会。


编辑- 人们一直将其标记为重复,所以让我明确一下:如果当前的最佳答案是正确的,那么您所引用问题的答案具有相同的根本原因,但这并不使它成为相同的问题。这两个问题的答案完全有可能不同——或者如果不是,那么“为什么”只是这个问题的答案,而不是那个问题的答案。

Mic*_*l_B 3

您的段落中有两个要素。

<code>bar</code>
Run Code Online (Sandbox Code Playgroud)

和

<anonymous-inline-box>foo</anonymous-inline-box>
Run Code Online (Sandbox Code Playgroud)

匿名内联元素是自动生成的,并且不能被 CSS 定位。因此,无法将样式应用于code相对于文本节点的元素。

如果无法将文本包装在实际元素中,请尝试 JavaScript。

以下是规范中的更多详细信息:

9.2.2.1 匿名内联框

任何直接包含在块容器元素内的文本都必须被视为匿名内联元素。

此类匿名内联框从其块父框继承可继承属性。