Wie füge ich einem Span-Element einen Tooltip hinzu?

364

Im folgenden Code soll ein Tooltip angezeigt werden, wenn der Benutzer die Zeitspanne überschreitet. Wie mache ich das? Ich möchte keine Links verwenden.

<span> text </span>
MichaelICE
quelle

Antworten:

677

Hier ist die einfache, integrierte Methode:

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

Das gibt Ihnen einfache Text-Tooltips. Wenn Sie umfangreiche Tooltips mit formatiertem HTML benötigen, müssen Sie dazu eine Bibliothek verwenden. Zum Glück gibt es viele davon .

RichieHindle
quelle
1
Aber funktioniert das, wenn sich kein Text in der Spanne befindet? Sagen Sie zum Beispiel eine leere Spanne mit einem BG-Bild?
Augiwan
1
@UGS: Bist du sicher, dass dein Element die Größe hat, die du denkst? Versuchen Sie, ihm einen rosa Hintergrund wie meinen zu geben. :-)
RichieHindle
Vielen Dank.! Aber ich habe nur tipsy.js verwendet und es sieht besser aus als das, was ich wollte. : D Und dieser Artikel hat zu meiner Verwirrung beigetragen : htmlgoodies.com/tutorials/html_401/article.php/3479661/… wo es heißt, dass der Tooltip für den "Text"
funktioniert
1
Hallo, kann jemand klären, ob dies in einigen / allen HTML-Varianten Standard ist?
Jonathan dos Santos
@ Jonathan: Es ist Standard seit mindestens HTML4: w3.org/TR/html4/struct/global.html#adef-title
RichieHindle
97

Benutzerdefinierte Tooltips mit reinem CSS - kein JavaScript erforderlich:

Beispiel hier (mit Code) / Vollbildbeispiel

Alternativ zu den Standard- titleAttribut-Tooltips können Sie mithilfe von :before/ :after pseudo-Elementen und HTML5- data-*Attributen eigene CSS-Tooltips erstellen .

Mit dem bereitgestellten CSS können Sie einem Element mithilfe des data-tooltipAttributs einen Tooltip hinzufügen .

Sie können auch die Position der benutzerdefinierten steuern Tooltip das mit data-tooltip-positionAttribute (akzeptierten Werte: top/ right/ bottom/ left).

Im Folgenden wird beispielsweise eine QuickInfo hinzugefügt, die sich am unteren Rand des Bereichselements befindet.

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

Geben Sie hier die Bildbeschreibung ein

Wie funktioniert das?

Sie können die benutzerdefinierten QuickInfos mit Pseudoelementen anzeigen, indem Sie die benutzerdefinierten Attributwerte mithilfe der attr()Funktion abrufen.

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

Verwenden Sie zum Positionieren des Tooltips einfach die Attributauswahl und ändern Sie die Platzierung basierend auf dem Wert des Attributs.

Beispiel hier (mit Code) / Vollbildbeispiel

Vollständiges CSS, das im Beispiel verwendet wird - passen Sie es an Ihre Bedürfnisse an.

[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
quelle
2
@SearchForKnowledge Wirklich? Ich werde mich irgendwann darum kümmern. Vielen Dank.
Josh Crozier
5
Ja, ich habe es gerade getestet und war auch nicht überrascht, dass es nicht funktioniert hat. Guter alter IE! ;)
SearchForKnowledge
@ JoshCrozier es hat sehr geholfen
JIBIN BJ
20

In den meisten Browsern wird das title-Attribut als QuickInfo gerendert und ist im Allgemeinen flexibel, mit welchen Elementen es arbeiten soll.

<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">

All dies rendert Tooltips in fast jedem Browser.

Brian Arnold Sinclair
quelle
6

Für den grundlegenden Tooltip möchten Sie:

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

Abk
quelle
4

Das "title"Attribut wird vom Browser als Text für den Tooltip verwendet. Wenn Sie einen Stil darauf anwenden möchten, sollten Sie einige Plugins verwenden

Rony
quelle