2017-03-20 21 views
0

内の要素にスタイルを適用するときに最初の子を無視しているように見える私は:first-child要素に背景を適用する-nesting SASSの&を使用していますが、また、特定の他の要素に独自のスタイルを適用したいと思います以内:first-childの要素です。ここでCSSセレクタ:そのセレクタ

はSASSです:

// Part Tree 
.part-tree-item{ 
    ... 

    &:first-child{ 
     background: red; 

     .part-tree-item-header{ 
      top: -5px; 
      margin-top: 0; 
     } 
    } 
} 

CSS :first-childセレクタは最初の子供(とのみ最初の子供)に赤色の背景を適用し、うまく動作するように表示されます。

enter image description here

しかし、 SASSからわかるように、特別なスタイリングがありますが、.part-tree-item-headerの要素は.part-tree-item:first-child

ここ

、Iはない:first-child(などを示す、赤い背景の欠如に注意してください)である.part-tree-item要素内.part-tree-item-headerのスタイリングを示しています。

しかし、この.part-tree-item-headerはまだ特殊なケースSASS(それはtopだ調整しmargin-topスタイリング)ここでenter image description here

は、問題の.part-tree-item親が実際には、ではないことを証明するために、HTMLであるがあり、 :first-child

enter image description here

私はちょうどを使用していますセレクタが間違っていますか?私はそれが思うようにチェーンしていないのですか?セレクタの最後の部分としてのみ使用できますか?

何か助けが大いに評価されるでしょう!

+0

代わり:.part-tree-item-headerとの関係でのみ.part-tree-item:first-childは親ではなく、それ以外の場合はセレクタに一致するだろうその祖先のいずれかであることを保証するために、この問題を解決.part-tree-item-headerルールに子コンビネータを追加するには

'top:-5px'のうち、' margin-top:-5px'を試しましたか? –

+0

これについての唯一の説明は、親の最初の子である遠隔の.part-tree-item祖先があることです。 – BoltClock

+0

Ahhhhh、ありがとう、BoltClock!これは実際には木の小さな塊でしかありません。これは、より大きく、無限に再帰的なツリーの一部です。そして、すべての内部のセル(赤いものと白いもの)は ':first-child'要素の一部です。意味をなさない! –

答えて

1

唯一の説明は、その親の最初の子である遠い.part-tree-item先祖があるということです。

// Part Tree 
.part-tree-item{ 
    ... 

    &:first-child{ 
     background: red; 

     > .part-tree-item-header{ 
      top: -5px; 
      margin-top: 0; 
     } 
    } 
} 
+0

これはトリック、ありがとう! –