¿Cómo agrego información sobre herramientas a un elemento span?

364

En el siguiente código, quiero que aparezca una información sobre herramientas cuando el usuario pasa el lapso, ¿cómo hago eso? No quiero usar ningún enlace.

<span> text </span>
MichaelICE
fuente

Respuestas:

677

Aquí está la forma simple e integrada:

<span title="My tip">text</span>

Eso le da información sobre herramientas de texto sin formato. Si desea información sobre herramientas enriquecida, con HTML formateado, deberá usar una biblioteca para hacerlo. Afortunadamente hay muchos de esos .

RichieHindle
fuente
1
Pero, ¿funciona esto si no hay texto en el lapso? Digamos, por ejemplo, un espacio vacío con una imagen bg?
Augiwan
1
@UGS: ¿Estás seguro de que tu elemento es del tamaño que crees que es? Intenta darle un fondo rosado como el mío. :-)
RichieHindle
Muchas gracias.! Pero acabo de usar tipsy.js y se ve mejor de lo que quería. : D Y este artículo ayudó en mi confusión: htmlgoodies.com/tutorials/html_401/article.php/3479661/… donde dice que la información sobre herramientas funciona para el "texto"
Augiwan
1
Hola, ¿alguien puede aclarar si esto es estándar en algunos / todos los tipos de HTML?
Jonathan dos Santos
@ Jonathan: Ha sido estándar desde al menos HTML4: w3.org/TR/html4/struct/global.html#adef-title
RichieHindle
97

Información sobre herramientas personalizada con CSS puro: no se necesita JavaScript:

Ejemplo aquí (con código) / Ejemplo de pantalla completa

Como alternativa a la información sobre titleherramientas de atributo predeterminada , puede crear sus propias informaciones sobre herramientas CSS personalizadas utilizando :before/ :after pseudo elementos y data-*atributos HTML5 .

Usando el CSS proporcionado, puede agregar información sobre herramientas a un elemento usando el data-tooltipatributo.

También puede controlar la posición de la información sobre herramientas personalizada utilizando el data-tooltip-positionatributo (valores aceptados: top/ right/ bottom/ left).

Por ejemplo, lo siguiente agregará una herramienta colocada en la parte inferior del elemento span.

<span data-tooltip="Custom tooltip text." data-tooltip-position="bottom">Custom bottom tooltip.</span>

ingrese la descripción de la imagen aquí

¿Como funciona esto?

Puede mostrar la información sobre herramientas personalizada con pseudo elementos recuperando los valores de atributo personalizados mediante la attr()función.

[data-tooltip]:before {
    content: attr(data-tooltip);
}

En términos de posicionamiento de la información sobre herramientas, simplemente use el selector de atributos y cambie la ubicación en función del valor del atributo.

Ejemplo aquí (con código) / Ejemplo de pantalla completa

CSS completo utilizado en el ejemplo : personalícelo según sus necesidades.

[data-tooltip] {
    display: inline-block;
    position: relative;
    cursor: help;
    padding: 4px;
}
/* Tooltip styling */
[data-tooltip]:before {
    content: attr(data-tooltip);
    display: none;
    position: absolute;
    background: #000;
    color: #fff;
    padding: 4px 8px;
    font-size: 14px;
    line-height: 1.4;
    min-width: 100px;
    text-align: center;
    border-radius: 4px;
}
/* Dynamic horizontal centering */
[data-tooltip-position="top"]:before,
[data-tooltip-position="bottom"]:before {
    left: 50%;
    -ms-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
}
/* Dynamic vertical centering */
[data-tooltip-position="right"]:before,
[data-tooltip-position="left"]:before {
    top: 50%;
    -ms-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}
[data-tooltip-position="top"]:before {
    bottom: 100%;
    margin-bottom: 6px;
}
[data-tooltip-position="right"]:before {
    left: 100%;
    margin-left: 6px;
}
[data-tooltip-position="bottom"]:before {
    top: 100%;
    margin-top: 6px;
}
[data-tooltip-position="left"]:before {
    right: 100%;
    margin-right: 6px;
}

/* Tooltip arrow styling/placement */
[data-tooltip]:after {
    content: '';
    display: none;
    position: absolute;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
}
/* Dynamic horizontal centering for the tooltip */
[data-tooltip-position="top"]:after,
[data-tooltip-position="bottom"]:after {
    left: 50%;
    margin-left: -6px;
}
/* Dynamic vertical centering for the tooltip */
[data-tooltip-position="right"]:after,
[data-tooltip-position="left"]:after {
    top: 50%;
    margin-top: -6px;
}
[data-tooltip-position="top"]:after {
    bottom: 100%;
    border-width: 6px 6px 0;
    border-top-color: #000;
}
[data-tooltip-position="right"]:after {
    left: 100%;
    border-width: 6px 6px 6px 0;
    border-right-color: #000;
}
[data-tooltip-position="bottom"]:after {
    top: 100%;
    border-width: 0 6px 6px;
    border-bottom-color: #000;
}
[data-tooltip-position="left"]:after {
    right: 100%;
    border-width: 6px 0 6px 6px;
    border-left-color: #000;
}
/* Show the tooltip when hovering */
[data-tooltip]:hover:before,
[data-tooltip]:hover:after {
    display: block;
    z-index: 50;
}
Josh Crozier
fuente
2
@SearchForKnowledge Realmente? Me ocuparé de eso en algún momento. Gracias.
Josh Crozier
55
Sí, lo probé y tampoco me sorprendió que no funcionara. ¡El viejo IE bueno! ;)
SearchForKnowledge
@JoshCrozier ayudó mucho
JIBIN BJ
20

En la mayoría de los navegadores, el atributo de título se representará como información sobre herramientas y, en general, es flexible en cuanto a qué tipo de elementos funcionará.

<span title="This will show as a tooltip">Mouse over for a tooltip!</span>
<a href="http://www.stackoverflow.com" title="Link to stackoverflow.com">stackoverflow.com</a>
<img src="something.png" alt="Something" title="Something">

Todos estos mostrarán información sobre herramientas en la mayoría de los navegadores.

Brian Arnold Sinclair
fuente
7

Para la información sobre herramientas básica, desea:

<span title="This is my tooltip"> Hover on me to see tooltip! </span>

Abk
fuente
4

el "title"navegador usará el atributo como texto para la información sobre herramientas, si desea aplicar estilo, considere usar algunos complementos

Rony
fuente