Maison  >  Article  >  interface Web  >  Comment obtenir des niveaux de gris avec la restauration des couleurs au survol de la souris à l'aide de CSS ?

Comment obtenir des niveaux de gris avec la restauration des couleurs au survol de la souris à l'aide de CSS ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 08:39:02131parcourir

How to Achieve Grayscale with Color Restoration on Mouse-Over Using CSS?

Échelle de gris avec restauration des couleurs au survol de la souris à l'aide de CSS

Obtenir une apparence en niveaux de gris avec restauration des couleurs au survol de la souris est possible grâce à diverses méthodes , offrant une compatibilité entre navigateurs dans IE et Firefox.

Méthode 1 : CSS pur (utilisation d'une image d'une seule couleur)

Cette technique utilise la propriété de filtre avec le fournisseur préfixes pour mettre en niveaux de gris l'image dans tous les navigateurs pris en charge :

<code class="css">img.grayscale {
  filter: url("data:image/svg+xml;utf8, ..."); /* Firefox 3.5+ */
  filter: gray; /* IE6-9 */
  -webkit-filter: grayscale(100%); /* Chrome 19+, Safari 6+ */
}

img.grayscale:hover {
  filter: none;
  -webkit-filter: grayscale(0%);
}</code>

Méthode 2 : CSS pur (utilisation de deux images)

Une autre approche consiste à utiliser deux images : une échelle de gris version et une version colorée. L'image en niveaux de gris est initialement affichée et l'état de survol passe à l'image colorée :

<code class="css">img {
  transition: all .6s ease;
}

img:hover {
  opacity: 0;
}

.grayscale {
  opacity: 1;
}</code>
<code class="html"><img class="grayscale" src="grayscale_image.jpg">
<img class="colored" src="colored_image.jpg"></code>

Méthode 3 : SVG avec filtres CSS

Pour IE10 et les navigateurs modernes, le SVG en ligne peut être utilisé pour appliquer des filtres, permettant de contrôler dynamiquement l'effet d'échelle de gris :

<code class="css">svg image {
  transition: all .6s ease;
}

svg image:hover {
  opacity: 0;
}</code>
<code class="xml"><svg ...>
  <defs>
    <filter id="filtersPicture">
      <feColorMatrix type="saturate" values="0" />
    </filter>
  </defs>
  <image filter="url(#filtersPicture)" ... />
</svg></code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn