2009-11-05 4 views
7

Nehmen Sie den folgenden Code ein:Kann der Titel eines abbr-Tags formatiert werden?

<abbr title="World Health Organization">WHO</abbr> 

können wir ein abbr-Tag Titel Stil? Also können wir anstelle eines benutzerdefinierten Tooltips Titel verwenden?

+0

FYI auf Firefox hat den abbr-Tag eine punktierte unterstrichen, um anzuzeigen, ist etwas, schwebt über wert, aber nicht auf Chrome oder Internet Explorer. Aber sie können gestylt werden, um es so zu haben: http://html5doctor.com/the-abbr-element/ –

Antwort

5

Wenn Sie meinen, der eigentliche Text, der auftaucht, nein, Sie können das nicht mit CSS stylen; es ist Browser-spezifisch. Javascript-basierte tooltips wäre die Art, wie ich damit umgehen würde, da es mehr Kontrolle über dieses Verhalten ermöglicht.

+0

http://stackoverflow.com/a/11383105/632951 scheint auf dem richtigen Weg zu sein ... – Pacerier

1

Sie können die Art verkürzen, wie die verkürzte Version angezeigt wird, in diesem Fall also "WHO". Aber nicht die Art, wie die Popup-Box erscheint, da diese vom Browser/Betriebssystem gesteuert wird.

Sie können rund um diese Einschränkung umgehen, indem programmatisch etwas JQuery Zeug zu jedem abbr Tag anwenden - dies würde eine div angezeigt werden, von denen der Inhalt der gleiche wie der title auf dem Tag lesen würde, die sie aufgerufen.

+0

Nein, ist veraltet. Verwenden Sie . – Pacerier

23

Eigentlich ist Alex Mcps Antwort falsch. Es ist durchaus möglich, dies mit CSS für moderne Browser zu tun. Es kann jedoch ein Ersatz für ältere Browser mit JavaScript verwendet werden.

abbr { 
    position: relative; 
} 

abbr:hover::after { 
    position: absolute; 
    bottom: 100%; 
    left: 100%; 
    display: block; 
    padding: 1em; 
    background: yellow; 
    content: attr(title); 
} 

Dies wird ein absolut positionierte Pseudo-Element oben rechts auf den abbr-Tag fügen Sie das Attribut Inhalt innerhalb des Titels zu verwenden, wenn der abbr-Tag schwebt über ist.

+0

Ich sehe den gelben Hintergrund, aber 'content: attr (Titel);' funktioniert nicht. Es gibt keinen Text. – Pacerier

+4

Dies sollte stattdessen als die richtige Antwort markiert werden. – Baumr

+0

Wie @Pacerier gesagt hat, funktioniert das nicht wie erwartet. – yckart

3

Ich war auf der Suche nach etwas ähnlichem und kam mit den folgenden alternativen oben (getestet auf Firefox, Safari und Chrome auf dem Mac, arbeitet mit IE 7-10, wenn ich es angeklickt), basierend auf this link:

HTML :

<abbr title="My Custom Abbreviation" name="">Abbreviation</abbr> 

jQuery:

$('[title]').each(function() { 
    var mytitle = $(this); 
    mytitle.data('title',mytitle.attr('title')); // get title attribute value 
mytitle.attr('name', mytitle.attr('title')); // add title attribute value to NAME attribute 
    mytitle.removeAttr('title'); // remove the title attribute, removing browser tooltip 
}); 

CSS:

abbr { 
    position: relative; 
} 
abbr:hover::after { 
    position: absolute; 
    bottom: 100%; 
    left: 100%; 
    display: block; 
    padding: 1em; 
    background: yellow; 
    content: attr(name); 
} 
Verwandte Themen