Tooltip CSS

Créez une infobulle (Tooltip) en utilisant CSS.

Exemple : Infobulle

Exemple

Lorsque l'utilisateur passe le curseur de la souris sur un élément, l'infobulle est généralement utilisée pour fournir des informations supplémentaires sur un contenu :

Haut Texte de l'infobulle
Droite Texte de l'infobulle
Bas Texte de l'infobulle
Gauche Texte de l'infobulle

Infobulle de base

Créez une infobulle qui apparaît lorsque vous passez la souris sur un élément :

Exemple

<style>
/* Conteneur de l'infobulle */
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black; /* Affiche une ligne pointillée en dessous du texte flottant si nécessaire */
}
/* Texte de l'infobulle */
.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: black;
  color: #fff;
  text-align: center;
  padding: 5px 0;
  border-radius: 6px;
  /* Positionne le texte de l'infobulle - voir les exemples ci-dessous */
  position: absolute;
  z-index: 1;
}
/* Affiche le texte de l'infobulle lorsque le curseur de la souris est sur le conteneur de l'infobulle */
.tooltip:hover .tooltiptext {
  visibility: visible;
}
</style>
<div class="tooltip">Surligne-moi</div>
  <span class="tooltiptext">Text d'infobulle</span>
</div>

Essayer personnellement

Exemple d'explication

HTML :

Utilisez l'élément conteneur (par exemple <div>) et ajoutez "tooltip" classe. Lorsque l'utilisateur place le curseur sur ce <div>, le texte de l'infobulle s'affiche.

Le texte de l'infobulle se trouve dans class="tooltiptext" des éléments en ligne intégrés (comme <span>).

CSS :

tooltip La classe utilise position:relative,pour placer le texte de l'infobulle (position:absolute)。Notez : pour savoir comment placer l'infobulle, voir les exemples ci-dessous.

tooltiptext La classe contient le texte réel de l'infobulle. Par défaut, elle est cachée et devient visible au survol de la souris (voir ci-dessous). Nous avons également ajouté quelques styles de base : une largeur de 120 pixels, un fond noir, un texte blanc, un texte centré et des marges internes supérieure et inférieure de 5px (padding).

CSS border-radius Attribut utilisé pour ajouter des arrondis aux textes de l'infobulle.

Lorsque l'utilisateur place le curseur sur le <div> avec la classe "tooltip",:hover Sélecteur utilisé pour afficher le texte de l'infobulle.

Positionner l'infobulle

Dans cet exemple, l'infobulle est à droite du texte "survolable" (left:105%)。En plus de cela, notez quetop:-5px Utilisé pour le centrer dans l'élément conteneur. Nous utilisons le nombre 5 car les marges internes supérieure et inférieure du texte de l'infobulle sont de 5px. Si vous augmentez les marges internes, n'oubliez pas d'augmenter également top La valeur de l'attribut, pour s'assurer qu'elle reste au centre. Cela s'applique également si vous souhaitez placer l'infobulle à gauche.

Infobulle de droite

.tooltip .tooltiptext {
  top: -5px;
  left: 105%; 
}

Résultat :

Déplacez le pointeur de souris au-dessus de ce texte Texte de l'infobulle

Essayer personnellement

Infobulle de gauche

.tooltip .tooltiptext {
  top: -5px;
  right: 105%; 
}

Résultat :

Déplacez le pointeur de souris au-dessus de ce texte Texte de l'infobulle

Essayer personnellement

Si vous souhaitez que l'infobulle soit en haut ou en bas, regardez l'exemple ci-dessous. Notez que nous avons utilisé une marge gauche extérieure de -60 pixels (margin-left). Cela permet de centrer l'infobulle avec le texte survolé. Cette valeur est la moitié de la largeur de l'infobulle (120/2 = 60).

Infobulle en haut

.tooltip .tooltiptext {
  width: 120px;
  bottom: 100%;
  left: 50%; 
  margin-left: -60px; /* Utilisez la moitié de la largeur (120/2 = 60) pour centrer l'infobulle */
}

Résultat :

Déplacez le pointeur de souris au-dessus de ce texte Texte de l'infobulle

Essayer personnellement

Infobulle en bas

.tooltip .tooltiptext {
  width: 120px;
  top: 100%;
  left: 50%;
  margin-left: -60px; /* Utilisez la moitié de la largeur (120/2 = 60) pour centrer l'infobulle */
}

Résultat :

Déplacez le pointeur de souris au-dessus de ce texte Texte de l'infobulle

Essayer personnellement

Flèche de l'infobulle

Pour créer une flèche s'affichant du côté spécifié de l'infobulle, ajoutez du contenu "vide" après l'infobulle et utilisez la classe de pseudo-élément ::after et content attribut. La flèche elle-même est créée à l'aide des bordures. Cela rend l'infobulle semblable à une bulle.

Cet exemple montre comment ajouter une flèche en bas de l'infobulle :

flèche du bas

.tooltip .tooltiptext::after {
  content: " ";
  position: absolute;
  top: 100%; /* At the bottom of the tooltip */
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: black transparent transparent transparent;
}

Résultat :

Déplacez le pointeur de souris au-dessus de ce texte Texte de l'infobulle

Essayer personnellement

Exemple d'explication

Positionnez l'arrow à l'intérieur de l'infobulle :top: 100% Placez l'arrow au bas de l'infobulle.left: 50% ce qui centrera l'arrow.

Attention :border-width l'attribut spécifie la taille de la flèche. Si vous changez ce réglage, n'oubliez pas également de modifier margin-left Changer la valeur en la même valeur. Cela centrera l'arrow.

border-color utilisé pour convertir le contenu en flèche. Nous définissons la bordure supérieure en noir et les autres en transparent. Si toutes les faces sont noires, le résultat final sera un rectangle noir.

Cet exemple montre comment ajouter une flèche en haut de l'infobulle. Notez que cette fois, nous avons défini la couleur de la bordure inférieure :

flèche du haut

.tooltip .tooltiptext::after {
  content: " ";
  position: absolute;
  bottom: 100%;  /* At the top of the tooltip */
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent black transparent;
}

Résultat :

Déplacez le pointeur de souris au-dessus de ce texte Texte de l'infobulle

Essayer personnellement

Cet exemple montre comment ajouter une flèche à gauche de l'infobulle :

flèche de gauche

.tooltip .tooltiptext::after {
  content: " ";
  position: absolute;
  top: 50%;
  right: 100%; /* To the left of the tooltip */
  margin-top: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent black transparent transparent;
}

Résultat :

Déplacez le pointeur de souris au-dessus de ce texte Texte de l'infobulle

Essayer personnellement

Cet exemple montre comment ajouter une flèche à droite de l'infobulle :

flèche de droite

.tooltip .tooltiptext::after {
  content: " ";
  position: absolute;
  top: 50%;
  left: 100%; /* To the right of the tooltip */
  margin-top: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent transparent black;
}

Résultat :

Déplacez le pointeur de souris au-dessus de ce texte Texte de l'infobulle

Essayer personnellement

Infobulle en fondu (animation)

Si vous souhaitez que le texte de l'infobulle affichée soit visible ou invisible en fondu, vous pouvez utiliser CSS transition l'attribut avec opacity En combinaison avec l'attribut, et passe en un certain nombre de secondes (dans cet exemple, 1 seconde) de complètement invisible à 100% visible :

Exemple

.tooltip .tooltiptext {
  opacity: 0;
  transition: opacity 1s;
}
.tooltip:hover .tooltiptext {
  opacity: 1;
}

Essayer personnellement