0

1 つの div があり、それにグラデーションと背景画像を適用したい (はい、同じ要素に)。対象のブラウザが IE でない場合にのみ可能であることはわかっています。それを念頭に置いて、IEのみのグラデーションの代わりに画像を上に塗りつぶすことを考えました。

これが私のコードです:

background: url(../images/newsletter.png), -moz-linear-gradient(top, rgb(10,10,01) , rgb(5,5,5));
background: url(../images/newsletter.png), -webkit-gradient(linear, left top, left bottom, from(#0a0a0a), to(#05050f));
background-repeat: no-repeat, repeat;
<!--[if IE]>
background: #000 url(../images/newsletter.png) center left no-repeat;
<![endif]-->

問題は、FF/Chrome の宣言の前後で条件が無視されることです。(私はテストし、[if false]などもテストしました。)何かアイデアはありますか?

4

1 に答える 1

5

そのような条件を CSS に入れることはありません。それはあなたのHTMLに入ります。したがって、IE の修正を含む新しいスタイルシートを作成し、条件付きコメントでそれにリンクします。

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

例えば。ただし、それは一般的なことです。今持っているものを次のように書き換えることができます:

background-color: black;
background-image: url(../images/newsletter.png);
background-image: url(../images/newsletter.png), -moz-linear-gradient(top, rgb(10,10,01) , rgb(5,5,5));
background-image: url(../images/newsletter.png), -webkit-gradient(linear, left top, left bottom, from(#0a0a0a), to(#05050f));
background-repeat: no-repeat;

これは、醜い条件付きコメントなしで適切に低下し、Internet Explorer だけで適切に低下するわけではありません。

于 2012-07-29T22:18:53.363 に答える