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
Libérer: 2024-12-07 10:36:17
original
698 Les gens l'ont consulté

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>
Copier après la connexion

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;
}
Copier après la connexion

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;
}
Copier après la connexion

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

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

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;
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal