1

ここで角が丸い半透明の背景をテストしています(CSSはHTML内にあります):

http://www.lucagiorcelli.it/test/milanificio_boxes/

IE10 では問題ありません (スクリーンショットを参照してください: http://o7.no/KSvX2b )。しかし、角にゴーストがあり、IE9 ではより暗くなります (スクリーンショットを参照してください: http://o7.no/KSw9P2 )。

CSS の何が問題になっていますか?

.yellowAlpha35 {
/* Fallback for web browsers that doesn't support RGBa */
background: rgb(245, 221, 183);
filter:alpha(opacity=35);
/* RGBa with 0.6 opacity */
background: rgba(241, 144, 28, 0.35);
/* For IE 5.5 - 7*/
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#23000000, endColorstr=#23000000);
/* For IE 8*/
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#23000000, endColorstr=#23000000)";
}
4

3 に答える 3

1

私が覚えている限り、-ms-filter は IE9 でも機能しますが、非推奨としてマークされています。したがって、IE9 では、rgba() + IE8 に必要なグラデーションで背景を取得します。

この問題を回避するには、IE8、IE9 などに個別の CSS ファイルを作成するか、CSS ハックを使用します。たとえば、:root は IE9 で導入されたので、次を使用できます。

:root .yellowAlpha35 {
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)";
}

これは、複数の CSS ファイルを準備して条件付きコメントを追加するよりも簡単です。

于 2012-05-10T12:00:15.343 に答える
0

Rafaei が言うように、ms-filter は IE9 でも動作するため、非推奨としてマークされています。このようなことが起こらないようにするには、ブラウザーに基づいて複数の CSS 塗りつぶしを使用します。このようにして、-ms-filter の部分を IE9+ から除外して、IE 8 にそのまま残すことができます。

<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="ie8.css" />
<![endif]-->

<!--[if !(IE 8)]>
<link rel="stylesheet" type="text/css" href="style.css" />
<![endif]-->

詳細情報リンク

于 2012-05-10T12:09:44.210 に答える
-1

ブラウザに対して酸テストを実行したと思いますか?

http://www.acidtests.org/

于 2012-05-10T12:05:09.767 に答える