CSSにコンパスを使用していて、次のような関数またはmixinを使用している場合:
@include background-image(linear-gradient(#a3cce0, #fff));
コンパスが生成するすべての行に!importantを追加する簡単な方法はありますか?
[〜#〜] update [〜#〜]:sassの新しいバージョンはこの構文をサポートします:
@include border-radius(5px !important);
これを行うだけです(@naoufalの回答に記載されています)。
---古い回答---
!importantをコンパスミキシングで使用することはできませんが、犯人はコンパスではありません。このためにsassを責める必要があります。
@include border-radius(5px) !important; #=> SASS Syntax Error
次のようにミックスイン内に含めることができます:
@include border-radius(5px !important);
Compassは以下を出力します:
-webkit-border-radius: 5px !important;
-moz-border-radius: 5px !important;
-ms-border-radius: 5px !important;
-o-border-radius: 5px !important;
border-radius: 5px !important;
前回この問題が発生しましたが、より強力なセレクターでコンパススタイルをオーバーライドします。 html要素にIDを追加しました
span { @include border-radius(5px);}
span#no-radius { @include border-radius(0px); } // override
これを理解するのに何時間も費やしましたが、簡単なトリックがあります。 SASSファイルの先頭に次を追加します。
$i: unquote("!important");
あなたのスタイルで次のことを行います:
color: #CCCCCC $i;
出力は次のとおりです。
color: #CCCCCC !important;
完全なサンプル:
$i: unquote("!important");
.some-style {
color: white $i;
}
出力:
.some-style {
color: white !important;
}
この質問は、同様の問題の検索で出てきました、それはスポットです、しかし、私はそれを追加したかっただけです オプションの引数でSassのミックスインを作成する は、私が有用であるとわかった別の可能なアプローチです。
inset
をimportant
に置き換えて、!important
必要なときに。