Come faccio ad aggiungere una descrizione comandi a un elemento span?


364

Nel codice seguente, desidero che venga visualizzato un suggerimento quando l'utente passa l'intervallo, come posso fare? Non voglio usare alcun link.

<span> text </span>

Risposte:


677

Ecco il modo semplice e integrato:

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

Questo ti dà descrizioni semplici del testo. Se vuoi descrizioni dettagliate, con HTML formattato, devi usare una libreria per farlo. Fortunatamente ce ne sono molti .


1
Ma funziona se non c'è alcun testo nell'intervallo? Ad esempio, una campata vuota con un'immagine bg?
Augiwan,

1
@UGS: sei sicuro che il tuo elemento abbia la dimensione che pensi sia? Prova a dargli uno sfondo rosa come il mio. :-)
RichieHindle

Molte grazie.! Ma ho appena usato tipsy.js e sembra migliore di quello che volevo. : D E questo articolo ha aiutato nella mia confusione: htmlgoodies.com/tutorials/html_401/article.php/3479661/… dove si dice che il tooltip funziona per il "testo"
Augiwan,

1
Salve, qualcuno può chiarire se questo è standard in qualche / tutto il sapore HTML?
Jonathan dos Santos,

@jonathan: è stato standard almeno da HTML4: w3.org/TR/html4/struct/global.html#adef-title
RichieHindle

97

Descrizioni comandi personalizzate con CSS puro - non è necessario JavaScript:

Esempio qui (con codice) / Esempio di schermo intero

In alternativa ai titlesuggerimenti degli attributi predefiniti , puoi creare i tuoi suggerimenti CSS personalizzati usando :before/ :after pseudo elementi e data-*attributi HTML5 .

Utilizzando il CSS fornito, è possibile aggiungere una descrizione comandi a un elemento utilizzando l' data-tooltipattributo.

Puoi anche controllare la posizione della descrizione comandi personalizzata usando l' data-tooltip-positionattributo (valori accettati: top/ right/ bottom/ left).

Ad esempio, di seguito verrà aggiunto un piano degli strumenti posizionato nella parte inferiore dell'elemento span.

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

inserisci qui la descrizione dell'immagine

Come funziona?

È possibile visualizzare le descrizioni comandi personalizzate con pseudo elementi recuperando i valori degli attributi personalizzati utilizzando la attr()funzione.

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

In termini di posizionamento della descrizione comando, basta utilizzare il selettore di attributo e modificare il posizionamento in base al valore dell'attributo.

Esempio qui (con codice) / Esempio di schermo intero

CSS completo utilizzato nell'esempio : personalizzalo in base alle tue esigenze.

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

2
@SearchForKnowledge Davvero? Ci guarderò ad un certo punto. Grazie.
Josh Crozier,

5
Sì, l'ho appena testato e non mi ha sorpreso che non abbia funzionato. Buon vecchio IE! ;)
SearchForKnowledge

@JoshCrozier mi ha aiutato molto
JIBIN BJ il

20

Nella maggior parte dei browser, l'attributo title verrà visualizzato come descrizione comandi ed è generalmente flessibile per il tipo di elementi con cui funzionerà.

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

Tutti questi renderanno tooltip in quasi tutti i browser.


7

Per la descrizione di base, vuoi:

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


4

l' "title"attributo verrà utilizzato come testo per la descrizione comandi dal browser, se si desidera applicare uno stile ad esso, considerare l'utilizzo di alcuni plugin

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.