CSS でグレースケールの背景画像のブラウザ間互換性を実現するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-25 19:15:59
オリジナル
788 人が閲覧しました

How can I achieve cross-browser compatibility for grayscale background images in CSS?

CSS のグレースケール背景画像

問題:

フェーディングに対するクロスブラウザーのサポートの実現CSS の背景画像をグレースケールにするのは依然として課題です。 CSS3 フィルタのグレースケール効果は、Chrome や Safari などの最新のブラウザでは効果的に機能しますが、Firefox、IE、モバイル ブラウザなどの古いブラウザでは機能しません。

解決策:

SVG フィルターの使用:

この解決策には、色変換を適用するためのクロスブラウザー アプローチを提供する SVG フィルターの使用が含まれます。この手法には、次の SVG フィルターを使用してデータ URL を作成することが含まれます:

<code class="svg"><svg xmlns="http://www.w3.org/2000/svg">
<filter id="grayscale">
  <feColorMatrix type="matrix" values="0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0">/</feColorMatrix>
</filter>
</svg></code>
ログイン後にコピー

フィルター プロパティを使用してこのフィルターを背景画像に適用すると、グレースケール効果を実現できます:

<code class="css">.grayscale {
  -webkit-filter: grayscale(100%);
  filter: gray;
  filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
}</code>
ログイン後にコピー

動的切り替えに jQuery を使用する:

グレースケール効果を動的に切り替えるには、jQuery を利用できます:

<code class="jquery">$(document).ready(function () {
  $("#image").mouseover(function () {
    $(".nongrayscale").removeClass().fadeTo(400, 0.8).addClass("grayscale").fadeTo(400, 1);
  });
  $("#image").mouseout(function () {
    $(".grayscale").removeClass().fadeTo(400, 0.8).addClass("nongrayscale").fadeTo(400, 1);
  });
});</code>
ログイン後にコピー

IE10-11 互換性:

IE10-11 の場合、ブラウザーのレンダリングが変更されたため、別のアプローチが必要です。次の SVG フィルターは彩度を下げるために使用でき、同様のグレースケール効果を実現できます:

<code class="svg"><svg>
  <defs>
    <filter xmlns="http://www.w3.org/2000/svg" id="desaturate">
      <feColorMatrix type="saturate" values="0" />
    </filter>
  </defs>
  <image xlink:href="http://www.polyrootstattoo.com/images/Artists/Buda/40.jpg" width="600" height="600" filter="url(#desaturate)" />
</svg></code>
ログイン後にコピー

以上がCSS でグレースケールの背景画像のブラウザ間互換性を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート