2016-09-22 9 views
1

nth-child/nth-of-typeセレクタを使用せずに 'Person 2'をターゲットにしたいと思いますが、現時点では隣接兄弟セレクタ:コードの上CSSセレクタ(隣接する兄弟とnth-child/nth-of-type)

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を対象に、「引用+引用」や「BLOCKQUOTE [タイトル=」引用「]は動作しません引用+引用します」。私はここで何が欠けていますか?

また、最後の<em>の色を変更する方法についても説明できますか?しかし私はそれが複数選択<em>毎回n番目の子/第nの型セレクタを試みた:

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

更新あなたのCSSと一緒にここにあなたのHTMLを含めてください。読者にリンクをクリックさせないでください。 – BoltClock

+1

'p:last-of-type em {}'は最後のem .... - > https:// jsfiddleを変更します。net/NotInUse/zs58xbch/8/ – Scott

+0

'p:last-of-type em:last-of-type { 色:赤; } '2番目の質問でこれを試してください – Sasikumar

答えて

1

N番目のセレクタは、現在の入れ子コンテキスト内で動作します。だから、最後のグループ化を目標にするレベルを上げる必要があります。blockquote:last-of-type em {}

最初の質問は、n番目のセレクタなしで2番目の質問のみを対象にすることはできません。私はクラスを追加することをお勧めします。

[編集]大丈夫ですか? Andreiがこの回答にコメントしたように、nth-child(2)近似を一緒にハックします。私はまだクラスを使用することをお勧めします。

+0

* n番目のセレクタなしで2番目のものを対象にすることはできません。本当に?どうやら '.parent> *:first-child + * {}'はどうですか? –

+0

私の悪い - 精神的にそれと一般的な兄弟セレクターをスクランブルしていた。それは具体的には機能しますが、2次以降はスケーラビリティがあまりありません。 – probablyup

+1

私はスケーラブルだとは言いませんでした。それは実際には左手で右手に引っかかるような感じです。しかし、それは可能ではなかったと私は正確に正確ではないとあなたは言った。乾杯! –

3

person2を選択したいですか?この簡単なコードを試してみてください。

隣接するを選択し、citeをスタイルするだけです。

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

そして、最後の子を標的とするため、このコード使用。

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

SNIPPET

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>

関連する問題