0

SCSSでグラデーションを行うためのこの気の利いたミックスインがあります。

@mixin gradient($from, $to) {
    background: -webkit-gradient(linear, left top, left bottom, from($from), to($to));
    background: -moz-linear-gradient(top,  $from, $to);
    filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$from}', endColorstr='#{$to}');
}

問題は、SCSS が自動的に の HEX 値を#FFFFFF単語に変更することwhiteです。IE フィルターはこれを処理できません。完全に形成された HEX 値が必要です。SCSS に値を変換させないようにする方法はありますか? この癖に対応するために、CSS ファイル全体を書き直したくありません。

4

1 に答える 1

1

(CodeKit の組み込み SCSS コンパイラを使用して) 同じ問題が発生し、ie-hex-str関数を使用して修正しました。

    filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($from)}', endColorstr='#{ie-hex-str($to)}');

これは、より一般的な 6 桁の RGB バージョンではなく、8 桁の 16 進数 (RGBA) を生成することに注意してください。そのため、JavaScript にスタイル値を渡す場合は、JavaScript が長い色コードを処理できることを確認する必要があります。

この正確な IE フィルターの問題は、Sass リファレンス マニュアルで説明されています。

于 2013-09-18T20:17:19.917 に答える