2016-06-17 17 views
1

私は、スタイルを拡張機能を使って設定しました。問題は、特定の状況下では機能しておらず、論理的に見えないことです。CSS拡張機能が期待通りに機能しない

私はCSSを単純化しましたが、問題は同じです。

#how-it-works { 
    .timeline { 
     & > .timeline-step { 

      & > h3:extend(.h3-text) {} 
     } 
    } 
} 

上記の例では、LESSはCSSを出力しません。私はこのような外層削除する場合

しかし、:

.h3-text, 
h3:not([class]), 
.timeline > .timeline-step > h3, 
.legal-info dt, 
.call-to-action .rapr { 
    color: #424242; 
    font-size: 20px; 
    line-height: 28px; 
} 

外側のスタイルはクラスがあるかどうかは関係ありませんか:

.timeline { 
    & > .timeline-step { 

     & > h3:extend(.h3-text) {} 
    } 
} 

を私は、出力は私が必要とする取得しますID。

誰かが状況にどんな光を投げかけていますか?

+0

これは非常に奇妙なことですが、これは '#how-it-works {&.timeline {'が動作します(開始時に '&'に注意してください)ので、ドキュメントを調べる必要があります。それは今のところ回避策に過ぎず、私が答えとして投稿するようにしたい場合、私はそうするでしょう。私は、答えの領域は正しい場所だと思います。なぜなら、コメントは気付かないかもしれませんが、あなたはすでにそのオプションを知っていて、それを避けたいのか分かりません。 – Harry

+1

ハリーの返信をありがとう - あなたの答えは確かに動作します。私は答えを知らなかったので、あなたが答えを作るのが一番だと思います。私はこれまでにこの問題を抱えていましたが、それほど明確ではありませんでした。他の人にも回避策があるかどうかは分かりません。 –

答えて

0

これは非常に奇妙な種類の動作ですが、現在私はこのように動作する理由については説明していませんが、回避策があります。実際のネストされたセレクタ(最も内側のセレクタを除く)の前のすべてのレベルで親セレクタ(&)を使用すると動作するようです。

:extend()の機能がどれくらいの期間存在し、このシナリオがどれほど一般的であるかを考慮すると、意図した機能になる可能性があります。私はそれを見つけるために管理したら、私はその理由についての詳細な説明を追加します:)

.h3-text{ 
    color: #424242; 
    font-size: 20px; 
    line-height: 28px; 
}  
#how-it-works { 
    & .timeline { 
     & > .timeline-step { 
      & > h3:extend(.h3-text) {}; 
     } 
    } 
} 

をも動作するようです別のアプローチは、すべてのレベルで&(親セレクター)を避けるためです。 &は基本的に何もしていないので、この特定のシナリオでは大きな問題ではありません。

.h3-text{ 
    color: #424242; 
    font-size: 20px; 
    line-height: 28px; 
}  
#how-it-works { 
    .timeline { 
     > .timeline-step { 
      > h3:extend(.h3-text) {}; 
     } 
    } 
} 

でも:extendルールセット作品の内部。セレクタに接続された:extendが使用され、セレクタがあるレベルでのみ&の場合に問題が発生しているようです。

.h3-text{ 
    color: #424242; 
    font-size: 20px; 
    line-height: 28px; 
} 
#how-it-works { 
    .timeline { 
     & > .timeline-step { 
      & > h3 { 
       &:extend(.h3-text); 
      } 
     } 
    } 
} 
+1

2番目のオプションは、余分なものを追加しないために優れています。このような状況では、わかりやすいように&を使用してください。 –

+0

@JohnOhara:別のオプションも追加しました。この問題を回避するには複数の方法があるように思えますが、私はその理由を見つけることには至りません:( – Harry

+2

非常に奇妙です。回避策の数があれば、不幸にも私にとっては絶対的な星ですうまくいかないもの –

関連する問題