2016-09-22 149 views
1

我想在不使用第n個孩子/第n類型選擇器的情況下定位'Person 2'但是我似乎無法縮小使用範圍相鄰兄弟選擇在此刻:CSS選擇器(相鄰的兄弟姐妹和第n孩子/第n類型)

https://jsfiddle.net/fk5fxbm4/4/

<div id="myID"> 
    <h2>Title</h2> 

    <blockquote title="quote"> 
     <p>Statement 1</p> 
     <cite>Person 1</cite> 
    </blockquote> 

    <blockquote> 
     <p>Statement 2</p> 
     <cite>Person 2</cite> 
    </blockquote> 

    <blockquote> 
     <p>Statement 3</p> 
     <cite>Person 2</cite> 
    </blockquote> 
</div> 

blockquote[title="quote"] cite { 
    color: red; 
} 

上面的代碼針對1人但是「舉舉+」或「塊引用[標題=」引用「]舉舉+」不起作用。我在這裏錯過了什麼?

另外,你能解釋我將如何去改變最後<em>的顏色?我曾嘗試第n個孩子/類型第n-的選擇器但它選擇多個<em>每次:

https://jsfiddle.net/zs58xbch/7/

<main> 
    <h2>Paragraph 1</h2> 
    <p><em>Lorem ipsum dolor sit amet</em>, Lorem ipsum dolor sit amet. <em>Lorem ipsum dolor sit amet</em>.</p> 
    <h2>Paragraph 2</h2> 
    <p>Lorem ipsum dolor sit amet. <em>Lorem</em> ipsum dolor sit amet. 
    <h2>Paragraph 3</h2> 
    <p><em>Lorem </em> ipsum dolor sit amet.</p> 
    <p><em>Change my color!</em> 
</main> 

em:last-of-type { 
    color: red; 
} 
+0

請點擊這裏包含HTML與CSS一起。不要強迫讀者點擊鏈接。 – BoltClock

+1

'p:last-of-type em {}'會改變最後一個em .... - > https:// jsfiddle。net/NotInUse/zs58xbch/8/ – Scott

+0

'p:最後一種em:最後一種{ color:red; }'嘗試第二個問題 – Sasikumar

回答

1

第N個選擇當前的嵌套環境中工作。因此,您需要升級到目標最後一個分組,如blockquote:last-of-type em {}

至於第一個問題,您不能只瞄準沒有第n個選擇器的第二個問題。我建議增加一個班級。

好吧你可以作爲安德烈評論這個答案的黑客在一起的第n孩子(2)近似。我仍然建議使用一個類。

+0

*您不能在沒有第n個選擇器*的情況下定位第二個問題。真?那麼'.parent> *:first-child + * {}'? –

+0

我的不好 - 被精神上的爭吵和一般的兄弟選擇。這具體會起作用,但不會超越第二。 – probablyup

+1

我從來沒有說過它是可擴展的。它實際上感覺像用左手在右側刮傷。但你說這是不可能的,我發現不完全準確。乾杯! –

3

你想選擇person2嗎?試試這個簡單的代碼。

只要選擇相鄰的和樣式cite

blockquote[title="quote"] + blockquote cite{ 
    color: green; 
} 

而這個代碼使用了針對最後一個孩子。

blockquote:last-child cite{ 
    color: cyan; //select last child 
} 

代碼片段

blockquote[title="quote"] cite { 
 
color: red; 
 
} 
 

 
blockquote[title="quote"] + blockquote cite{ 
 
    color: green; //select 2nd child 
 
} 
 

 
blockquote:last-child cite{ 
 
    color: cyan; //select last child 
 
}
<div id="myID"> 
 
    
 
      <h2>Title</h2> 
 
      
 
      <blockquote title="quote"> 
 
      <p>Statement 1</p> 
 
      <cite>Person 1</cite> 
 
      </blockquote> 
 
      
 
      <blockquote> 
 
      <p>Statement 2</p> 
 
      <cite>Person 2</cite> 
 
      </blockquote> 
 
      
 
      <blockquote> 
 
      <p>Statement 3</p> 
 
      <cite>Person 2</cite> 
 
      </blockquote> 
 
      
 
</div>