选择元素后面没有其他元素

san*_*nta 6 css css-selectors

我需要能够选择一个HTML p标签,只要它没有跟着另一个具有特定类的div元素.例如,我需要选择此P.

<div id="myContainer">
    <p>...</p>
    <div>...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

但不是这个,因为它后跟一个div = class ="red"的div.

<div id="myContainer">
    <p>...</p>
    <div class="red">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试的:

#myContainer > p ~ div:not(.step) 
Run Code Online (Sandbox Code Playgroud)

Arb*_*bel 6

您不能使用CSS来定位以前的元素,但根据您的HTML结构,您可以使用直接兄弟选择器.

CSS:

.myContainer p + div:not(.red)   {
   border: 1px solid #000;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="myContainer">
    <p>...</p>
    <div>...</div>
</div>
<div class="myContainer">
    <p>...</p>
    <div class="red">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

演示 http://jsfiddle.net/92VVZ/


kei*_*kei -3

你是这个意思吗?那么你就快到了。

演示版

/* will select p not directly followed by div.red */
#myContainer > p + div:not(.red) 
Run Code Online (Sandbox Code Playgroud)

  • @santa但是[它没有选择](http://jsfiddle.net/hashem/9bL2j/1/)`&lt;p&gt;`元素,但相邻的`&lt;div&gt;`不具有`.red`类。 (34认同)
  • 您选择的是 div 而不是 p (3认同)