Externe Links kennzeichnen mit CSS
Man sieht es häufig im Netz, ein kleines, fast unscheinbares Symbol hinter einem Link, das darauf aufmerksam machen soll, dass es sich um einen Verweis auf externe Inhalte handelt. Wikipedia ist nur ein prominentes Beispiel, wo diese Link-Markierungen zum Einsatz kommen. Früher hat man diese Funktionalität häufig recht aufwendig mit JavaScript oder serverseitig mit Scripten oder gar manuell gelöst. Mit CSS geht das mittlerweile sehr einfach und funktioniert mit allen modernen Browsern.
Als erstes benötigt man natürlich eine entsprechende kleine Grafik
, die als Hinweis auf den externen Inhalt dienen soll. Nicht zu groß und dezent sollte sie sein um den Lesefluss nicht zu stören. Mit Hilfe von CSS kann man nun alle Hyperlinks um etwas Platz rechts oder links erweitern, um dort das gewünschte Symbol unterzubringen. Der nötige CSS-Code dazu könnte dann so aussehen:
a[href^="http:"], a[href^="https:"], a[href^="ftp:"] { background: transparent url('/images/link_extern.gif') 100% 50% no-repeat; padding-right: 12px; } a[href^="http://www.meinedomain.tld"], a[href^="https://www.meinedomain.tld"] { background: transparent; padding-right: 0px; }
Im ersten Block werden alle Hyperlinks, deren URL mit »http:«, »https:« oder »ftp:« beginnen mit der Hinweisgrafik versehen. Dafür wird rechts vom Link der Innenabstand (Padding) vergrössert, so dass die Grafik hineinpasst. Das Icon selbst wird dann über die Definition des Hintergrundes am rechten Rand platziert, so dass es neben dem Linktext erscheint. Im zweiten Block wird diese Formatierung für Verweise auf eigene (interne) Inhalte aufgehoben. So könnte man externe Links auch unterschiedlich markieren. Verlinkt man beispielsweise häufiger auf Werbelinks (Stichwort »Affiliate-Marketing«) könnte man diese entsprechend anders kenntlich machen als normale Verweise. Ein kleines Apfelsymbol neben jedem Link in den iTunes Store wäre sicher auch nett. *g*
Selbst getestet habe ich das beschriebene Vorgehen mit allen gängigen Browsern unter MacOS X, OpenBSD und Linux. Die Webseite browsershots.org hat mir dann auch für die Windows-Plattform die Kompatibilität mit den Microsoft-Browsern — die sich ja häufiger gerade mit CSS etwas schwer tun — bestätigt.
Wer statt einer einzelnen Grafik um einen externen Link herum Text darstellen möchte, dem wird die oben beschriebenen Methode nicht weiterhelfen. Hier gibt es einen anderen Ansatz, den ich aber im Hinblick auf die Browserkompatibilität als etwas »wackliger« einschätze. Verwendet man das CSS-Attribut »after:« sähe das obige Beispiel so aus:
a[href^="http:"]:after, a[href^="https:"]:after, a[href^="ftp:"]:after { content: ' (externer Link)'; color: red; } a[href^="http://www.meinedomain.tld"]:after, a[href^="https://www.meinedomain.tld"]:after { display: none }
Wie im vorangegangenen Beispiel wird auch hier wieder im ersten Block nach Hyperlinks Inhalt angefügt. In diesem Fall wird in roter Farbe »(externer Link)« hinter jeden Hyperlink geschrieben. Grafiken oder andere beliebige Inhalte lassen sich so ebenfalls einfügen. Im zweiten Block wird der Zusatzinhalt dann für interne Verlinkungen ausgeblendet.
Wie man es umsetzt oder ob man eine Kombination aus beiden Ansätzen verwendet bleibt einem letztlich selbst überlassen und hängt von den Anforderungen sowie dem persönlichen Geschmack ab. Die hier vorgestellten Lösungen sind nichts neues und werden im Netz haufenweise eingesetzt — dieser Blogeintrag soll primär auch als eigene Gedächtnisstütze dienen — vielleicht kann der ein oder andere Leser aber dennoch was damit anfangen.
Ähnliche Artikel
Tags: CSS, Externe Links, HTML, Tipp, WWW
Kommentar schreiben Trackback

Hi Andreas
Das ist ja mal wieder ein tolles Stück CSS. Habs gleich umgesetzt.
Siehe hier: http://photoblogger.eu/die-nase-wird-nun-platt-gedrueckt/
Da kommt die »Tröpfchenmethode« erst richtig raus. :-)
Gruß
Ralf
Prima! Dann hat sich das schreiben des Artikels ja schon gelohnt! :-) Es ist ja nun wirklich nicht viel CSS, was gebraucht wird… ich war nur selbst immer irgendwie zu faul, es mal umzusetzen. ;-)
Freut mich, wenn es auch anderen was nützt!