1

私が持っている薄いスペーサーにCSSを適用しようとしています。

通常、mozilla の場合、追加したグラデーションは次のとおりです。

background: linear-gradient(to bottom, #ffffff 18%,#ecedeb 18%,#d1d5d0 100%);

これは mozilla では次のようになります。

ここに画像の説明を入力

IE の場合、次のコードを追加しました。

  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#d1d5d0',GradientType=0 );

IE では次のようになります。

ここに画像の説明を入力

上からわかるように、IE のスペーサーは太く連続した赤い線ではありませんが、mozilla ではそうです。Mozilla のように IE でスペーサーを厚く連続させるにはどうすればよいか、誰かが提案できますか?

編集:この問題に直面している人々のために、この問題を克服するために Spudley の提案に従って CSSPIE3(PIE.js バージョン 1.0) を使用しました。

4

1 に答える 1

2

古い IE にはグラデーションの良い解決策はありません。それは、これらの古いブラウザーがうまく機能していないだけです。

IE の古いfilterスタイルには、大きなバグや癖があることでよく知られています。お分かりのように、彼らは一緒に仕事をするのが本当に楽しいものではありません。

ただし、他にもいくつかのオプションがあります。

  1. 古い IE バージョンのグラデーションを削除することもできます。これは見た目の美しさだけであり、サイトの実際の機能には影響しません。古い IE ユーザーは、新しいブラウザーを使用しているユーザーほどサイトの見栄えがよくないかもしれません。それらは古い IE バージョンを使用しているため、今ではそれに慣れています。彼らはそれと一緒に暮らすことができます。

    単純なフォールバックを作成するのは簡単です。backgroundグラデーションの背景のすぐ上の CSS で通常の単色スタイルを指定するだけです。競合がある場合、ブラウザーは最後に理解したものを使用するため、最新のブラウザーはグラデーションを使用し、古い IE (および他の古いブラウザーを使用している場合は他の古いブラウザー) は無地の背景を使用します。

  2. グラデーションが本当に必要な場合は、CSS3Pieライブラリを使用してみてください。これは、CSS グラデーションを含むいくつかの標準 CSS 機能を古い IE バージョンに追加しようとする小さな Javascript ライブラリです。スタイルではなく VML グラフィックスを使用して内部的に動作filterします。つまり、filter原因となるバグが発生しないため、この場合は、現在のものよりもうまく機能する可能性があります。

それが役立つことを願っています。

于 2013-07-11T14:28:30.430 に答える