
Webbrowser wissen, welche Links auf einer Seite von einem Benutzer besucht wurden (bis der Cache gelöscht wird, versteht sich). Es liegt an Ihnen als Designer, diese Kenntnis des Webbrowsers zu nutzen, wenn Sie dies wünschen. Ich bin sicher, Sie müssen nicht raten, dies geschieht alles mit CSS. Wenn Sie keine Formatierung auf Links (<a>-Elemente oder "Anker"-Elemente) anwenden, haben die meisten Browser Standardformatierungen, die angewendet werden. Typischerweise blau mit Unterstreichung. In Firefox werden besuchte Links lila mit Unterstreichung.
Sie können die Formatierung dieser Anker-Elemente in Ihrem CSS steuern, indem Sie sie mit Pseudoklassen ansprechen. Das Ziel dieses Tutorials ist es, ein Häkchen vor besuchte Links zu setzen, um eine nette visuelle Anzeige zu erhalten. Sie können ein Beispiel davon live auf Mike Davidsons Blog sehen. Wir werden die Pseudoklasse a:visited ansprechen, aber ich werde später in diesem Artikel Informationen zu den anderen Anker-Pseudoklassen einfügen.
Das perfekte Szenario für eine Pseudo-Pseudo-Klasse
Da das Ziel darin besteht, das Häkchen vor die Links zu setzen, ist dies ein perfektes Szenario für die "before"- oder "after"-Pseudoklassen in CSS. Diese Klassen ermöglichen es Ihnen, Seitenelemente buchstäblich zu spezifizieren und Inhalte direkt aus dem CSS hinzuzufügen. Hier ist ein Beispiel
blockquote:before {
content: "From the article: ";
}
Dies fügt buchstäblich den Text "Aus dem Artikel: " vor jedem einzelnen Blockquote auf Ihrer Seite ein. Vermischt dies die Trennung von Design und Inhalt? Nun... vielleicht ein wenig. Aber nicht wirklich. Denken Sie einfach nicht an diese Inhaltszusätze als Inhalt, denken Sie an sie als Flair, ein kleines Extra für Ihr Webdesign. Da dies ausschließlich in Ihrem CSS existiert, ist dies kein Inhalt, den Screenreader sehen oder der in Ihren RSS-Feed aufgenommen wird.
Sehen Sie, worauf ich mit diesem Pseudo-Pseudo-Ding hinauswill?
a:visited:before {
content: "";
}
Wir können besuchte Links ansprechen und dann Inhalte davor mit dieser CSS-Anweisung hinzufügen. Jetzt müssen wir nur noch ein Häkchen in diesen Inhalt bekommen. Das ist nicht ganz so intuitiv. Sie können hier keine normalen Glyphen verwenden, wie Sie es in HTML können. Zum Beispiel funktioniert die Eingabe von ® in den meisten Browsern nicht. Sie sehen dann tatsächlich diese Zeichenkette anstelle des Registrierungszeichens. Stattdessen verwenden Sie einen Schrägstrich und den ASCII-Code für das Zeichen. 2713 ist der Code für ein Häkchen. Also haben wir
a:visited:before {
content: "\2713 ";
}
Tada! Fertig! Dies funktioniert perfekt in Firefox, Opera, Safari und... Oh, Moment...
Internet Explorer 6 unterstützt keine Nicht-Anker-Pseudoklassen
Awww, das ist Mist. Hier müssen Sie sich fragen, ob es Ihnen wichtig ist oder nicht. Ich habe mir Mikes Blog angesehen, um zu sehen, ob er das IE6-Problem behandelt hat. Nein, seine Links werden einfach grau und unterstrichen, wenn sie besucht wurden, aber auf das Häkchen wird verzichtet. Dies ist eine völlig akzeptable Form der Vorwärtsentwicklung im Design. Sie verwenden einen guten Browser? Gut für Sie, Sie erhalten zusätzliche nette Funktionen. Sie verwenden einen alten, beschissenen Browser? Das ist in Ordnung, die Seite wird trotzdem gut aussehen und lesbar sein.
Aber ich habe jetzt mein Herz darauf gesetzt, lasst uns das erledigen! Wir können das ohne die :before- oder :after-Selektoren machen, wir verwenden einfach das normale a:visited (das IE6 versteht), und formatieren es so, dass es das Häkchen enthält. Es wird kein Text sein, aber wir machen dieses Häkchen zu einer Grafik und fügen es auf diese Weise ein, seht es euch an
a:visited {
padding-left: 14px;
background: url(images/checkmark.gif) left no-repeat;
}
Jetzt können wir uns wirklich freuen. Hurra! Das funktioniert gut in allen Browsern. Schauen Sie sich die Beispielseite an.
Die anderen Anker-Pseudoselektoren
- a:link – Dieser wird nicht sehr oft verwendet, da er etwas redundant ist. Wenn es sich um ein Anker-Element handelt, ist es bereits ein Link. Der Grund, warum er existiert, ist für die Spezifität. Sie können hier Stile deklarieren, die nicht auf andere Anker-Stile übertragen werden, wie es der Fall wäre, wenn Sie nur das a-Element allein formatieren würden.
- a:visited – Diesen kennen Sie nun schon. Dies ist das, was Sie verwenden, um besuchte Links zu gestalten, wie von Ihrem Browser entschieden.
- a:hover – Dies ist der häufigste. Verwenden Sie dies, um den Rollover-Zustand Ihrer Links zu gestalten
- a:active – Ich muss zugeben, dass ich damit lange Zeit verwirrt war. Dies ist der beste Weg, um es zu erklären. Der aktive Zustand ist das, was Sie sehen, wenn Sie auf einen Link **klicken und halten**. Typischerweise werden Sie den aktiven Zustand nicht sehr lange sehen, da die Seite Sie wahrscheinlich zu einer anderen Seite weiterleitet. Ich finde es jedoch für ein wenig Flair ganz nett. Manchmal ist nur eine Farbänderung im aktiven Zustand eine schöne kleine Geste.
Hier ist eine schöne Art, sich die Anker-Pseudoklassen zu merken.
Ich habe eine ähnliche Technik für eine meiner Methoden verwendet, um nofollows zu gestalten, zusammen mit einer ziemlich unsemantischen Verwendung von Bildersetztechniken.
Es ist beeindruckend, wie viele interessante ASCII-Zeichen es gibt, von Ticks bis zu Totenköpfen.
Ich habe Pseudoselektoren immer vermieden, da es keine IE-Unterstützung gibt. Allerdings hat Ihr Artikel meine Meinung geändert. Danke.
Korrektur... Ich habe die :before- und :after-Pseudoselektoren immer wegen mangelnder Unterstützung in IE vermieden.
Das ist wirklich eine gute Methode, da IE6 und älter sie nicht unterstützen.
@Tim Nash: Haha, ich liebe die Idee, einen kleinen Kondom um Nofollow-Links zu legen. Man könnte tatsächlich den gesamten Link in eine erweiterbare Kondom-Grafik mit einer Sliding-Door-Technik einpacken, das wäre ziemlich schick.
@Dennison Uy & Chris: Danke, freut mich, dass Ihnen die Idee gefallen hat!
Das einzige "Problem" damit wäre, wenn Besucher ein öffentliches Terminal benutzen. Zum Beispiel in einem Internetcafé oder am Flughafen. Viele Systeme löschen den Cache und die Browserhistorie nicht wie erwartet, so dass Sie mit den "bereits auf dieser Seite"-Stilen dastehen.
Dann wären die Benutzer auf der Seite und würden sich fragen, wofür all die Häkchen gut sind.
Aber das ist wiederum ein kleines "Problem".
^^ Koew…
Dieses Problem hätten Sie mit jedem a:visited-Stil (ob Pseudo oder nicht) in einem öffentlichen oder Mehrbenutzerbrowser, es sei denn, Sie entscheiden sich, keinen a:visited-Stil zu haben. Aber wo bleibt da der Spaß!
Tolle Tipp. Danke!
Toller Artikel, Chris!
Der "Trick" selbst (das CSS) ist nichts Neues, aber das Konzept, ein Häkchen vor den Link zu setzen, ist sowohl kreativ als auch nützlich.
Das ist wirklich cool, dass das Häkchen dynamisch hinzugefügt wird, wenn man den Link in einem anderen Fenster oder Tab öffnet.
Verrückt, das funktioniert in meinem Firefox nicht. In IE ist alles in Ordnung.
Seltsam
Leute sollten schlau genug sein, um zu wissen, welche Links sie angeklickt haben.
Schöner Artikel, aber Sie unterschätzen die Verwendung von "active" am Ende.
Active- und Focus-Zustände sind für reine Tastaturnutzer sehr nützlich.
Wenn Sie mit der Tabulatortaste durch Links navigieren, ermöglicht Ihnen die Einstellung des Fokus-Zustands, ähnlich wie der Hover-Zustand, leicht zu sehen, wo Sie sich befinden. (Folgen Sie dem Karren)
Leider unterstützt IE den Fokus nicht richtig, aber Active schon.
Daher ist es normalerweise am besten, Active, Focus und Hover auf dieselben oder ähnliche Einstellungen zu setzen.
Schöner Tipp!
Ich habe es gerade ausprobiert, aber es gibt ein Problem mit den Bildlinks, die ich in einer oberen Menüleiste verwende. Häkchen davor sind nicht nützlich oder schön, denke ich.
Haben Sie eine Idee dazu?
Ich habe das versucht, aber ohne Erfolg
.imageLink {
padding-left: 0px;
background: none;
}
@mike foskett: Sie haben absolut Recht, ich habe die Bedeutung von aktiven Links unterschätzt. Ich denke, vielleicht sollten aktive Zustände anders formatiert werden als Hover-Zustände, mit einer noch kräftigeren / drastischeren Farbänderung usw. Der Grund dafür ist, dass Sie, wenn Sie mit der Tabulatortaste zwischen den Links auf einer Seite springen, nie sicher sind, wo der nächste Link sein wird, und er sollte visuell so gut wie möglich hervorstechen. Während Hover-Formatierungen keine so drastische Änderung erfordern müssen, um wirksam zu sein.
@JM: Ja, Sie haben einen guten Punkt, den ich im Artikel hätte machen sollen. Sie werden spezifischer vorgehen müssen, als ich es getan habe, welche Ankerlinks Sie von dieser Technik betroffen sind. Wenn Sie einen "Hauptinhalt"-Bereich Ihrer Website haben (z.B. den typischen WordPresss div.post-Bereich), könnten Sie nur Links in diesem Bereich mit
.post a { CHECKMARK CSS }Ich denke, fast jeder, der diese Technik verwendet, wird etwas Ähnliches tun wollen, anstatt sie auf alle Links auf seiner Website anzuwenden, denn wie Sie sagen, wird sie in Dingen wie der Hauptnavigation der Seite seltsam aussehen.
Danke Chris, Sie haben Recht mit dem Aufteilen der Teile.
Tatsächlich verwende ich die gleiche Polsterung, um Links nach Dokument, Icons von PDF, Word oder anderen Formaten oder sogar Mailto rechts von den Links zu identifizieren. Und um es bei Bildlinks zu vermeiden, verwende ich die von mir erwähnte Klasse
.imageLink {
padding-right: 0px;
background: none; }
was sehr gut funktionierte, aber nicht mit dem padding-left: 0px, das ich für die Häkchen hinzugefügt habe.
Ich bin kein CSS-Experte, aber es scheint, dass die Kombination der Tipps für denselben Link nicht funktioniert.
Ich suche immer noch nach einer Lösung...
Also korrigieren Sie mich, wenn ich falsch liege, ABER Mikes Beispiel enthält KEIN Bild und nur Skript??? WOW, das ist cool...
Ich dachte immer, es wäre ein Bild.
Einzige Frage: Ist es für den gewöhnlichen Benutzer effektiv?
@Jermayn Parker: Ja, ich glaube, Mikes Häkchen werden per Skript mit einer ähnlichen Technik wie der after-Selektor, der ein Inhaltsglyphen hinzufügt, hinzugefügt. Der einzige Grund, warum ich denke, dass es Skript ist, ist, dass ich beim Durchsuchen seines CSS keine :after-Selektoren sehe. Der Vorteil, dies mit einem Bild zu tun, ist, dass Sie dies nicht benötigen und es wie in dem Artikel erwähnt in allen Browsern funktioniert.
Ist es für den gewöhnlichen Benutzer effektiv? Meinen Sie, funktioniert es für gewöhnliche Benutzer? Ja, es funktioniert für jeden Besucher gleich. Meinen Sie, werden gewöhnliche Benutzer es nützlich finden? Keine Ahnung, es setzt ein Häkchen neben besuchte Links. Ich denke, das ist ziemlich nützlich. Selbst wenn ein Benutzer es nie bemerkt, schadet es ihm in keiner Weise.
OK, ich werde versuchen zu erklären, was ich meine, entschuldigung!
Ist das Häkchen für den gewöhnlichen Benutzer effektiv? Der gewöhnliche Benutzer ist in seinen Gewohnheiten, was er im Netz nutzt (Zurück, Unterstreichung für Links etc.), gefestigt und beeinträchtigt das Häkchen das?
Ich persönlich bevorzuge das Häkchen, ABER ich mache mir nur ein wenig Sorgen, dass das Häkchen mehr schaden als nutzen könnte.
@Jermayn Parker: Mit "Häkchen" meinen Sie das Häkchen? Funktional ändert es nichts, daher kann ich mir nicht vorstellen, dass es irgendeinen **Schaden** verursacht.
Da es sich um ein Hintergrundbild handelt, können Sie es nicht einmal auswählen, wie Sie es mit einem echten Zeichen könnten, was ein weiterer Vorteil der Bildtechnik ist und bestätigt, dass es sich hierbei nur um eine ästhetische Ergänzung und keine funktionale Anpassung handelt.
Oh, das ist raffiniert. Ich werde das mal bei meinem neuen Design ausprobieren.
Toller Artikel und ein toller Look, aber es funktioniert auch bei mir in Firefox nicht. In IE funktioniert es gut. Vielleicht stört eine Firefox-Erweiterung?
Hey danke,. raffinierte kleine Idee. Und es funktioniert bei mir in FF 5.0 gut.
Ich habe heute über diesen Artikel nachgedacht und mich gefragt, welche Auswirkungen die Implementierung dieser "Funktion" auf die Benutzerfreundlichkeit hätte. Ich habe mir die Seite (die Beispielseite und meine eigene Testseite) eine Weile angesehen, um herauszufinden, welche neuen relevanten Informationen sie für die Benutzererfahrung liefert.
Aus meiner Sicht war ich leicht verwirrt; ich habe nicht wirklich etwas davon gehabt.
Symbolisch, was bedeutet ein Häkchen für mich? Nun, ich schätze, es bedeutet "ja" oder "erledigt". Aber das ist das World Wide Web. Was bedeutet es hier?
Ein "guter" Link, oder "die Seite funktioniert", oder Feature-Listen-Häkchen?
@James: Ganz wörtlich bedeutet das Häkchen "Hey, Sie waren schon auf diesem Link". Ich denke, das kann sehr nützlich sein, wenn man eine Seite durchsucht und einen Link sieht. Links können beliebigen Ankertext haben, den der Autor wünscht, aber wenn der Link zum selben Ort führt, weiß Ihr Webbrowser das und markiert ihn als besucht. Auf diese Weise, wenn Sie bereits auf den Link "Lesen Sie den Originalartikel." geklickt haben und später im Artikel ein Link "Mehr erfahren." zum selben Ort führt, werden Sie benachrichtigt, dass Sie diesen bereits gesehen haben.
Ich hatte einige Probleme in Firefox, hoffe, ich kann sie beheben... Aber eine großartige Idee, vielen Dank!!1
@Chris: Verstehen Sie mich nicht falsch, ich weiß, was SIE mit dem Hintergrundbild eines besuchten Links andeuten wollen, aber ich glaube nicht, dass dies eine klare Anzeige für den Benutzer ist, was passiert. Daher habe ich eine schnelle Umfrage gemacht (durch Befragung von Benutzern) und es schien der Konsens zu sein, dass es den Link als "ok" oder "funktionierend" implizierte, was wahrscheinlich anders ist, als Sie es beabsichtigt hatten. Aus Sicht der Benutzerfreundlichkeit erscheint es ziemlich obskur.
Yo, was für eine gute Idee, das werde ich sicher tun,
Danke, Kumpel!
Danke für diese tolle Idee!!! Geben Sie uns mehr davon!!
Danke für den tollen Tipp!!!
Perfektes Beispiel, lasst es mich versuchen
Ich liebe, was Sie mit dieser Vorlage gemacht haben, sie bekommt von mir eine 10 von 10.
Ich werde einen Link zu einer meiner Websites hinzufügen, damit es einfach ist, für weitere CSS-Tipps zurückzukommen.
Tolle Informationen. Funktioniert das auch in Firefox?
Wenn ich mich nicht irre, wird der aktive Linkzustand auf der Originalseite angezeigt, wenn Ihr Link eine neue aktive Seite öffnet. (d.h. mit _blank). Er wird angezeigt, wenn beide Seiten noch offen sind, sodass Sie, wenn Sie zur Originalseite zurückkehren, wissen, auf welchen Link Sie geklickt haben, um die Pop-up-Seite zu öffnen.
NP
Funktioniert das noch gut mit Firefox 3 und IE8? Ich habe bemerkt, dass mit Firefox 3 viele Websites sehr anders aussehen und einige von ihnen nicht einmal richtig funktionieren. Ich kann mich nicht entscheiden, ob das ein Problem von Firefox 3 ist oder mangelnde Aufmerksamkeit des Webdesigners. Einer der Gründe, warum ich Firefox immer mochte, war, dass jede Website ziemlich gut funktionierte (auch wenn sie schlecht codiert war), aber das scheint sich in der neuen Version geändert zu haben.
Wow! Ich dachte, es gäbe keine Hoffnung mehr für Pseudoselektoren. Tatsächlich habe ich Projekte, die solche beinhalten, immer ausgeschieden oder komplett ignoriert, weil ich damit und mit Browserproblemen zu kämpfen hatte.
Hallo Chris, wollte nur kommentieren, was für ein schönes Design Sie auf Ihrer Website haben. Besonders gefallen mir Ihre Tags unten, sehr cool. Toller Editor auch!
Mit freundlichen Grüßen,
Jen
Gründer von http://www.Petbrags.com
Das a:visited:before scheint nicht mehr zu funktionieren (zumindest nicht in Safari oder Chrome)
Kann das jemand bestätigen?
Das Gleiche hier :/