2016-11-21 5 views
0

擬似クラスを積み重ねて要素を対象とすることが可能かどうか疑問に思っていました。複数の擬似クラス/要素が動作していない要素へのCSSパス

私はこの試みた:

#advertise .row:first-of-type .one-third:nth-of-type(2) .contentwrap { 
    font-size:16px; 
} 

をしかし、私たちの行のためのID場合にのみ、[#oneまたは#two] .rowの代わりに動作します:最初の型/ .row:最後-of-type

これは私が複数の疑似を使ってターゲット要素を傾けたり、何かばかげて実現していないためですか?ここ

はHTMLである:

<div id="advertise"> 
    <h1 class="maintitle"></h1> 
    <h2 class="maintitle-sub"></h2> 

    <div class="contentwrap"> 
     <p></p> 
    </div> 

    <div class="row" id="one"> 
     <div class="one-third first shadow"> 
      <h1 class="header"></h1> 
      <div class="contentwrap">     
       <p></p> 
      </div> 
     </div> 
     <div class="one-third shadow"> 
      <h1 class="header"></h1> 
      <div class="contentwrap"> 
       <p></p> 
      </div> 
     </div> 
     <div class="one-third shadow"> 
      <h1 class="header"></h1> 
      <div class="contentwrap"> 
       <p></p> 
      </div> 
     </div> 
    </div> 

    <div class="row" id="two"> 
     <div class="one-third first shadow"> 
      <h1 class="header"></h1> 
      <div class="contentwrap">     
       <p></p> 
      </div> 
     </div> 
     <div class="one-third shadow"> 
      <h1 class="header"></h1> 
      <div class="contentwrap"> 
       <p></p> 
      </div> 
     </div> 
     <div class="one-third shadow"> 
      <h1 class="header"></h1> 
      <div class="contentwrap"> 
       <p></p> 
      </div> 
     </div> 
    </div> 
</div> 
+0

ジェームズ・ドネリーさん答えはすでにあなたの問題をカバーしていますが、あなたが試みている方法で擬似セレクタを「積み重ね」ても問題ないです。 – TheThirdMan

+0

あなたの目的は特定の 'div.contentwrap'またはそのすべてを対象にしていますか? – zer00ne

+0

上記の例で言及した特定のもの - 第1行の第2の3分の1の内容の折り返し。 – Moose

答えて

3

:first-of-typeセレクタは、要素の特定のタイプ(例えば<div>)の最初のインスタンスを選択します。ここでは、最初の.row要素は秒の<div>要素なので、:first-of-typeセレクタでは選択されません。

代わりに、あなたが使用することができます。

#advertise .row:nth-of-type(2) .one-third:nth-of-type(2) .contentwrap { 
    font-size:16px; 
} 
をしかし、それはすでに(その要素に一意である必要があります) id属性を持っているとして、あなたが同様にこだわることがあります。

#advertise #one .one-third:nth-of-type(2) .contentwrap { 
    font-size:16px; 
} 
+0

ああ、わかりました。私は、/ divの最初のインスタンスではなく、.rowの最初のインスタンスを選択するという印象を受けました! – Moose

+0

この回答の最初の提案はうまくいきますが、実際のマークアップについては多くの仮定があります。これはクラスベースのスタイリングの仕方に反しています。それより良い方法があることを反映するためにアップフォワードされていますが、完全性のためにそれを含めています。 – TheThirdMan

関連する問題