Recientemente tuve una idea para usar la pseudo-clase CSS :hover
para mostrar una información sobre herramientas con estilo cuando el mouse está sobre un enlace.Cómo hacer que la información flotante de css pura (intervalo absolutamente posicionado) cambie el tamaño dinámicamente para acomodar el texto
El código básico para el enlace es así:
.hasTooltip {
position:relative;
}
.hasTooltip span {
display:none;
}
.hasTooltip:hover span {
display:block;
background-color:black;
border-radius:5px;
color:white;
box-shadow:1px 1px 3px gray;
position:absolute;
padding:5px;
top:1.3em;
left:0px;
max-width:200px; /* I don't want the width to be too large... */
}
<a href="#" class="hasTooltip">This link has a tooltip!<span>This is the tooltip text!</span></a>
The result is exactly what I want, pero con un problema molesto: el lapso no se expande para incluir texto, y si no lo hago especifica un ancho, el texto está aplastado.
Hice algunas búsquedas en Google, encontré un par de ejemplos de trabajos que la gente había hecho (this example es espeluznantemente similar a lo que he obtenido), pero nadie parece haber abordado el problema de ancho span
que estoy teniendo.
Guau, gran solución ... ¡gracias! +1 para el ejemplo impresionante también. – Titus
Solo necesito una sola línea, por lo que esta solución funciona muy bien. ¿Tiene alguna explicación de por qué se debe usar white-space: nowrap? –
Si no usa 'nowrap', el texto se ajustará al ancho de la palabra más ancha en la cadena. Como la información sobre herramientas se establece como una pantalla de bloque cuando se activa y no tiene un ancho establecido, el valor predeterminado del anuncio es lo más estrecho posible. 'nowrap' permite que la información sobre herramientas siempre sea tan amplia como el texto que contiene. – schadeck