0

アルファ背景を定義できるsassミックスインがあります

@mixin background-rgba($r,$g,$b,$a) {

    $color: ie_hex($r,$g,$b,$a);
    $value: unquote("progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=##{$color},endColorstr=##{$color})");

    //ie
    -ms-filter: $value;
    filter: $value;
    zoom: 1;

    background-color: transparent\9;
  // Good browsers.
    background-color: rgba($r,$g,$b,$a);

これはIE7-8で機能しますが、フィルタールールはIE9によって取得されています。で条件付きタグを使用できることはわかっています<head>が、それは本当に必要なことではありません。これをあちこちで使えるようにする必要があります。

4

2 に答える 2

0

IE固有のCSSをフィードするためにで条件付きタグを使用することは避けたいと思い<head>ます(私はあなたのステートメントを理解しています)。私が他の方法で考えることができる2つのアイデアがあります:

IE9クラス

またはタグにクラスを設定するために条件付きコメントを使用することhtmlbodyに反対しているかどうかわかりませんか?または、それを除けば、javascriptを使用して同様のクラスを設定します。次に、ミックスインをプリセットして...を生成できます。

.ie9 .yourSelectorUsingtheMixin { filter: none; ms-filter: none; }

...ミックスインを使用してメインエントリをフォローしますbackground-rgba

@メディアハック

この投稿では、次の形式@mediaの真のハック操作と組み合わせたIE9のハックについて説明します。\0/

@media all and (min-width:0) {
    .yourSelectorUsingtheMixin { 
       filter: none \0/; 
       -ms-filter: none \0/;
    } 
}
于 2013-01-06T03:11:46.437 に答える
0

これが私にとってはうまくいき、基本的にIE9のフィルターをオフにしました。私はこの解決策に満足していませんが、今のところやらなければならないでしょう。

-ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)" !important; /* ie9 requires quotes */
于 2013-01-07T04:04:28.350 に答える