CSS Tooltips

CSS Tooltips

Contenido original de W3Schools


Cree información sobre herramientas (tooltips) con CSS.


Tooltip

Un tooltip se usa a menudo para especificar información adicional sobre algo cuando el usuario mueve el puntero del mouse sobre un elemento:


Tooltip básico

Cree un tooltip que aparece cuando el usuario mueve el mouse sobre un elemento:

Ejemplo:

<style>
/* Tooltip container */
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
}

/* Tooltip text */
.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: black;
  color: #fff;
  text-align: center;
  padding: 5px 0;
  border-radius: 6px;

  /* Position the tooltip text - see examples below! */
  position: absolute;
  z-index: 1;
}

/* Show the tooltip text when you mouse over the tooltip container */
.tooltip:hover .tooltiptext {
  visibility: visible;
}
</style>

<div class="tooltip">Hover over me
  <span class="tooltiptext">Tooltip text</span>
</div>

Ver ejemplo


Ejemplo explicado

HTML - Use un elemento contenedor (como <div>) y agréguele la clase tooltip. Cuando el usuario pase el mouse sobre este <div>, se mostrará el texto el tooltip.

El tooltip se coloca dentro de un elemento en línea (como <span>) con class="tooltiptext".

CSS - La clase tooltip usa position:relative, que es necesaria para colocar el texto de información sobre herramientas (positionn:absolute). Nota: Vea los ejemplos a continuación sobre cómo colocar tooltips.

La clase tooltiptext contiene el texto de información sobre herramientas real. Está oculto de forma predeterminada y será visible al pasar el mouse por encima (ver más abajo). También le hemos agregado algunos estilos básicos: 120px de ancho, color de fondo negro, color de texto blanco, texto centrado y relleno superior e inferior de 5px.

La propiedad CSS border-radius se usa para agregar esquinas redondeadas al texto de información sobre herramientas.

El selector :hover se usa para mostrar el texto de información sobre herramientas cuando el usuario mueve el mouse sobre <div> con class="tooltip".


Posicionamiento Tooltips

En este ejemplo, el tooltip se coloca a la derecha (left:105%) del texto "sobre el que se puede desplazar" (<div>). También tenga en cuenta que top:-5px se usa para colocarlo en el medio de su elemento contenedor. Usamos el número 5 porque el texto tooltip tiene un relleno superior e inferior de 5px. Si aumenta su relleno, también aumente el valor de la propiedad top para asegurarse de que permanezca en el medio (si es algo que desea). Lo mismo se aplica si desea que la información sobre herramientas se coloque a la izquierda.

Tooltip a la derecha:

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

Ver ejemplo


Tooltip a la izquierda:

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

Ver ejemplo

Si desea que tooltip aparezca en la parte superior o inferior, consulte los ejemplos a continuación. Tenga en cuenta que usamos la propiedad margin-left con un valor de menos 60px. Esto es para centrar el tooltip arriba/abajo del texto que se puede desplazar. Se establece en la mitad del ancho de la información sobre herramientas (120/2 = 60).

Tooltip superior:

.tooltip .tooltiptext {
  width: 120px;
  bottom: 100%;
  left: 50%;
  margin-left: -60px; /* Use half of the width (120/2 = 60), to center the tooltip */
}

Ver ejemplo


Tooltip inferior:

.tooltip .tooltiptext {
  width: 120px;
  top: 100%;
  left: 50%;
  margin-left: -60px; /* Use half of the width (120/2 = 60), to center the tooltip */
}

Ver ejemplo


Flechas Tooltips

Para crear una flecha que debería aparecer desde un lado específico del tooltip, agregue contenido "vacío" después del tooltip, con la clase de p-seudoelemento ::after junto con la propiedad content. La flecha en sí se crea usando bordes. Esto hará que el tooltip se vea como una burbuja de diálogo.

Este ejemplo demuestra cómo agregar una flecha en la parte inferior de la información sobre herramientas:

Ejemplo:

.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;
}

Ver ejemplo

Ejemplo explicado

Coloque la flecha dentro del tooltip: top:100% colocará la flecha en la parte inferior del tooltip left:50% centrará la flecha.

Nota: La propiedad border-width especifica el tamaño de la flecha. Si cambia esto, también cambie el valor del margen izquierdo al mismo. Esto mantendrá la flecha centrada.

El border-color se utiliza para transformar el contenido en una flecha. Establecemos el borde superior en negro y el resto en transparente. Si todos los lados fueran negros, terminarías con una caja cuadrada negra.

Este ejemplo muestra cómo agregar una flecha en la parte superior del tooltip. Tenga en cuenta que esta vez establecemos el color del borde inferior:

Flecha superior:

.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;
}

Ver ejemplo


Este ejemplo demuestra cómo agregar una flecha a la izquierda del tooltip:

Flecha a la izquierda:

.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;
}

Ver ejemplo


Este ejemplo demuestra cómo agregar una flecha a la derecha del tooltip:

Flecha a la derecha:

.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;
}

Ver ejemplo


Desvanecer Tooltips (Animaciones)

Si desea que el texto del tooltip se desvanezca cuando esté a punto de ser visible, puedes usar la propiedad de transición CSS junto con la propiedad opacity, y pasar de ser completamente invisible a 100% visible, en una cantidad de segundos específicos (1 segundo en nuestro ejemplo):

Ejemplo:

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

.tooltip:hover .tooltiptext {
  opacity: 1;
}

Ver ejemplo


Traducido con 💚 desde W3Schools.com

Did you find this article valuable?

Support Santos Romero by becoming a sponsor. Any amount is appreciated!