Maison >interface Web >tutoriel CSS >Comment ajouter une superposition transparente noire avec du texte aux images en survol à l'aide de CSS ?

Comment ajouter une superposition transparente noire avec du texte aux images en survol à l'aide de CSS ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-07 10:36:17615parcourir

How to Add a Black Transparent Overlay with Text to Images on Hover Using CSS?

Ajout d'une superposition transparente noire aux images en survol à l'aide de CSS

Créer une superposition transparente noire sur une image en survol est réalisable en utilisant CSS. Voici un guide complet pour y parvenir :

Utiliser un pseudo-élément

Pour éviter le problème des éléments de superposition sur les éléments img inclus, vous pouvez insérer un pseudo-élément dans son lieu. Enveloppez l'élément img comme tel :

<div class="image">
  <img src="image.jpg" alt="" />
</div>

Configurez le CSS :

.image {
  position: relative;
  width: 400px;
  height: 400px;
}
.image img {
  width: 100%;
  vertical-align: top;
}
.image:after {
  content: '\A';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  transition: all 1s;
}
.image:hover:after {
  opacity: 1;
}

Ajout de texte au survol

Pour plus de simplicité, incluez du texte comme valeur de contenu du pseudo-élément :

.image:after {
  content: 'Your Text';
  color: #fff;
}

Vous pouvez également définir le texte dans un attribut data-* pour affichage de texte unique :

.image:after {
  content: attr(data-content);
  color: #fff;
}
<div data-content="Text to Display" class="image">
  <img src="image.jpg" alt="" />
</div>

Combinaison de superposition et de texte

Un style séparé permet un positionnement indépendant des éléments :

.image:after, .image:before {
  position: absolute;
  opacity: 0;
  transition: all 0.5s;
}
.image:after {
  content: '\A';
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.6);
}
.image:before {
  content: attr(data-content);
  width: 100%;
  color: #fff;
  z-index: 1;
  bottom: 0;
  padding: 4px 10px;
  text-align: center;
  background: #f00;
  box-sizing: border-box;
}
.image:hover:after, .image:hover:before {
  opacity: 1;
}

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