CSS选择器:如何选择非元素兄弟节点?

时间:2012-11-20 05:05:26

标签: css css-selectors

根据此处的说明:http://www.w3.org/TR/CSS21/selector.html#adjacent-selectors

  

相邻的兄弟选择器具有以下语法:E1 + E2,其中   E2是选择器的主题。选择器匹配E1和E2   在文档树中共享同一个父级,E1紧接在之前   E2,忽略非元素节点(例如文本节点和注释)。

那么我们如何选择非元素兄弟节点。例如:在下面的html中,我们如何选择“非元素文本”文本?

<div><label>Some text here</label> Non-element text</div>

2 个答案:

答案 0 :(得分:10)

你做不到。 CSS选择器只能选择元素节点。这就是相邻兄弟组合器按照描述工作的原因。

如果您需要应用样式,请尝试将它们应用于div并覆盖label中的样式。当然,这取决于您应用的样式,因为某些样式无法撤消或继承。

答案 1 :(得分:1)

如前所述,CSS选择器只能选择元素节点。

要解决您的问题,您可以将文本节点包装在元素中,并在此元素上应用样式,或者在容器元素上应用样式,并在label元素中覆盖它。