2016-10-14 5 views
0

私が作業しているプロジェクトでは、postcsspostcss-cssnextpostcss-include)のCSSモジュールを使用しています。我々はまた、グローバルに提供される依存関係としてブートストラップを持っています。cssモジュールクラスとboostrapアクティブを混ぜて

特定のコンポーネントには、ボタン用のカスタムクラスがあります。だから私のボタンは、次のクラスを持っています:btn btn-custom

要件に応じて、アクティブな状態のボタンの外観を変更したいと思います。そのブートストラップには、次のセレクタがあります:.btn.active, .btn:active。疑似クラスを上書きするのは簡単な部分です。 .activeクラスは難しいところです。

私のCSSファイルでは、これを処理するいくつかの方法を試しましたが、どれもうまくいかないようです。私が試したことのいくつかを以下に示します:

.btn-custom { 
    &.active, &:active {} 
    @nested :global &.active, &:active {} 
    @nested :global & { &.active, &:active: {} } 
    @nested :global { &.active, &:active: {} } 
} 

:global { 
    .btn-custom { &.active, &:active {} } 
    .btn { &.active, &:active {} } 
} 

これがどのように達成されたかについての考え方はありますか?

+0

これはまったく機能しませんか?それとも、オーバーライドされていますか? – Garconis

+0

全く動作しません。 .activeクラスは、 ':global'にないときに、class(s​​ome hash is added)のようなcssモジュールに変換されます。 ':global'に入っているときには、もう一度動いていません。 – gkaran89

答えて

1

グローバルそうのように、括弧で包まれる必要があるクラスを対象:

.btn-custom { 
    color: red; 
} 

.btn-custom:global(.active) { 
    color: blue; 
} 

だから、ネスティングで:

.btn-custom { 
    &:global(.active), 
    &:active {} 
} 

最後のものは、私はPostCSSプラグインの順序が重要であると思い、テストされていないされていることここに。

関連する問題