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

Barbara Streisand
リリース: 2024-10-28 17:19:29
オリジナル
716 人が閲覧しました

How to Achieve Grayscale Background Images with CSS Cross-Browser Compatibility?

CSS を使用してグレースケールの背景画像を実現する方法 ブラウザ間の互換性

CSS を使用してグレースケールの背景画像を作成することは、ブラウザの不一致により困難になる場合があります。さまざまなブラウザーで機能する包括的なソリューションを次に示します。

方法 1: CSS3 フィルター

CSS3 フィルター プロパティ、具体的には greyscale() を使用すると、グレースケール効果を適用できます。背景画像に。ただし、この手法は Chrome や Safari などの最新のブラウザでのみサポートされています。

例:

<code class="CSS">.grayscale {
  background-image: url(yourimage.jpg);
  -webkit-filter: grayscale(100%);
  filter: grayscale(100%);
}</code>
ログイン後にコピー

方法 2: SVG フィルター

ブラウザ間の互換性を保つために、SVG フィルターを利用してグレースケール効果を実現できます。この方法では、SVG ドキュメントでフィルターを定義し、CSS でそれを参照する必要があります。

例:

SVG フィルター:

<code class="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></code>
ログイン後にコピー

CSS:

<code class="CSS">.grayscale {
  background-image: url(yourimage.jpg);
  filter: url(#grayscale);
}</code>
ログイン後にコピー

方法 3: jQuery Toggle

グレースケールと非グレースケールを切り替えたい場合-グレースケールを動的に使用すると、jQuery を使用できます。

例:

jQuery:

<code class="JavaScript">$(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>
ログイン後にコピー

HTML :

<code class="HTML"><div id="image" class="nongrayscale">
  Rollover this image to toggle grayscale
</div></code>
ログイン後にコピー

CSS:

<code class="CSS">.grayscale {
  background: url(yourimagehere.jpg);
  -moz-filter: url("data:image/svg+xml;utf8,...");
  -o-filter: url("data:image/svg+xml;utf8,...");
  -webkit-filter: grayscale(100%);
  filter: gray;
  filter: url("data:image/svg+xml;utf8,...");
}

.nongrayscale {
  background: url(yourimagehere.jpg);
}</code>
ログイン後にコピー

IE10-11 互換性:

IE10 およびIE11 の場合、代替アプローチは、feColorMatrix 要素で 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="yourimage.jpg" width="600" height="600" filter="url(#desaturate)" />
</svg></code>
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!