ボーダーシャドウやグラデーションなどのCSS3ルールがいくつか定義されたファイルがあります。
比較のbehavior: url('/assets/css3pie.htc');
ために、IEでサポートするためにを追加する必要があります。
@mixin box-shadow($props) {
-webkit-box-shadow: #{$props};
-moz-box-shadow: #{$props};
box-shadow: #{$props};
behavior: url('/assets/css3pie.htc');
}
動作ルールは、border-shadow、gradients、border-radiusなどのほとんどのCSS3に追加されています。
残念ながら、これらのCSS3ルールを2つ以上使用すると、出力でbehavior: url('/assets/css3pie.htc');
特定のオブジェクトのルールが2つ以上になることに気付きました。
出力例は次のとおりです。
button {
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
behavior: url("/assets/css3pie.htc"); # first time defined by the border-radius rule
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
behavior: url("/assets/css3pie.htc"); # second time, defined from the box-shadow rule
}
どちらが最善の解決策ですか?継承ツリーをチェックし、ルールがすでに定義されているかどうかを確認する方法はありますか?