CSS Tooltip

En este artículo te mostramos cómo usar HTML y CSS para crear tooltips.

El tooltip se activa cuando el mouse se mueve sobre el elemento especificado; veamos primero los siguientes cuatro ejemplos:

Mostrar en la parte superiorTexto del tooltip
Mostrar a la derechaTexto del tooltip
Mostrar en la parte inferiorTexto del tooltip
Mostrar a la izquierdaTexto del tooltip

Tooltip básico

El tooltip se muestra cuando el mouse se mueve sobre el elemento especificado:

Código HTML:

<style>
/*Contenedor del tooltip*/ .tooltip { position: relative; display: inline-block; border-bottom: 1px dotted black; /*Mostrar una línea punteada en el elemento al pasar el cursor*/ } /*Texto del tooltip*/ .tooltip .tooltiptext { visibility: hidden; width: 120px; background-color: black; color: #fff; text-align: center; padding: 5px 0; border-radius: 6px; /*Posicionamiento*/ position: absolute; z-index: 1; } /*Mostrar el tooltip al pasar el mouse*/ .tooltip:hover .tooltiptext { visibility: visible; }
</style> <div class="tooltip">Mueve el mouse aquí<span class="tooltiptext">Texto del tooltip</span> </div>

Pruébalo »

Explicación del ejemplo

HTML)Usa un elemento contenedor (como <div>) y agrega"tooltip"clase. Muestra la información del tooltip cuando el mouse se mueve sobre el <div>.

Coloca el texto del tooltip en un elemento en línea (como <span>) y usaclass="tooltiptext"。

CSS)tooltipUso de la claseposition:relative, el texto del tooltip necesita establecer un valor de posicionamiento.position:absolute。 Nota:Los siguientes ejemplos mostrarán más efectos de posicionamiento.

tooltiptextLa clase se usa para el texto real del tooltip. Está oculto de forma predeterminada y se muestra cuando el mouse se mueve sobre el elemento. Se establecen algunos estilos como ancho, color de fondo, color de fuente, etc.

CSS3 border-radiusLa propiedad se usa para agregar esquinas redondeadas al tooltip.

:hoverEl selector se usa para mostrar el tooltip cuando el mouse se mueve sobre el elemento especificado <div>.


Posicionar el Tooltip

En el siguiente ejemplo, el tooltip se muestra a la derecha del elemento especificado (left:105%) 。

Notatop:-5pxA diferencia de centrarlo en el elemento contenedor. Usa el número5porque el padding superior e inferior del texto del tooltip es de 5px.

Si modificas el valor de padding, el valor de top también debe modificarse en consecuencia, para asegurar que esté centrado.

El mismo principio se aplica cuando el tooltip se muestra a la izquierda.

Mostrar a la derecha:

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

Pruébalo »

Mostrar a la izquierda:

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

Pruébalo »

Si quieres que el tooltip se muestre en la parte superior e inferior. Necesitamos usarmargin-leftla propiedad y establecerla en -60px. Este número se calcula usando la mitad del ancho para centrarlo, es decir: width/2 (120/2 = 60).

Mostrar en la parte superior:

.tooltip .tooltiptext { width: 120px; bottom: 100%; left: 50%; margin-left: -60px; /*Usa la mitad del ancho (120/2 = 60) para centrar el tooltip*/ }

Pruébalo »

Mostrar en la parte inferior:

.tooltip .tooltiptext { width: 120px; top: 100%; left: 50%; margin-left: -60px; /*Usa la mitad del ancho (120/2 = 60) para centrar el tooltip*/ }

Pruébalo »

Agregar flecha

Podemos usar el pseudo-elemento CSS ::after y la propiedad content para crear una pequeña flecha para el tooltip. La flecha se compone de bordes, pero una vez combinados, el tooltip parece un cuadro de burbuja de voz.

El siguiente ejemplo muestra cómo agregar una flecha en la parte inferior a un tooltip que se muestra en la parte superior:

Tooltip superior / flecha inferior:

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

Pruébalo »

Explicación del ejemplo

Posicionar la flecha dentro del tooltip:top: 100%, la flecha se mostrará en la parte inferior del tooltip.left: 50%Se usa para centrar la flecha.

Nota:border-widthLa propiedad especifica el tamaño de la flecha. Si la modificas, también debes modificar elmargin-leftvalor. Así la flecha se mostrará centrada.

border-colorSe usa para convertir el contenido en una flecha. Establece el borde superior en negro y los demás en transparente. Si los demás también se establecen en negro, se mostrará como un cuadrilátero negro.

El siguiente ejemplo muestra cómo agregar una flecha en la parte superior del tooltip; observa cómo configurar el color del borde:

Tooltip inferior / flecha superior:

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

Pruébalo »

Los siguientes dos ejemplos son ejemplos de flechas en los lados izquierdo y derecho:

Tooltip a la derecha / flecha a la izquierda:

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

Pruébalo »

Tooltip a la izquierda / flecha a la derecha:

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

Pruébalo »

Efecto de fundido de entrada

Podemos usar la propiedad transition de CSS3 y la propiedad opacity para lograr el efecto de fundido de entrada del tooltip:

Efecto de fundido de entrada:

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

Pruébalo »

Más ejemplos

Bonito tooltip CSS

Otras extensiones