2012-09-09 3 views
13

Angenommen, ich wollte eine Form (wie ein Häkchen) neben einem Link nach dem Besuch hinzufügen, anstatt es einfach umzudrehen lila, mit a: nachher zusammen mit a: besucht.Kombiniere a: besucht mit a: after, oder chaining pseudo-classes mit pseudo-elementen

Ich bin nicht sicher, ob ich die Form wie folgt wählen sollte:

a:visited:after { 

oder so:

a:visited a:after 

oder

a:visited :after { 

(ich bin auch ein bisschen fuzzy on, wenn ich ein Leerzeichen vor einem Pseudo-Element einfügen soll oder nicht, oder spielt es überhaupt eine Rolle?)

oder vielleicht etwas anderes?

Im Moment sieht mein css wie folgt aus:

a:visited:after { 
    /* check mark shape */ 
    content:'\00a0'; 
    color: black; 
    position: relative; 
    left:15px; 
    display:inline-block; 
    width: 3px; 
    height: 6px; 
    border: solid black; 
    border-width: 0 2px 2px 0; 
    -webkit-transform: rotate(45deg); 
    -moz-transform: rotate(45deg); 
    -o-transform: rotate(45deg); 
} 

Häkchen Formcode von http://webitect.net/design/webdesign/creating-fancy-bullet-points-with-pure-css3/

Vielen Dank für jede Hilfe.

+2

[Leerraum ist ein Nachkommenselektor.] (Http: //www.w3.org/TR/CSS2/selector.html # Nachkommen-Selektoren) –

Antwort

23

Sie sollten a:visited:after verwenden, wie Sie gerade tun. Es funktioniert nicht wegen eines Fehlers in Ihrem Code, sondern weil das Problem in der Pseudo-Klasse :visited liegt - es erlaubt nicht die Verwendung von Pseudo-Elementen wegen privacy concerns.

Im Prinzip können Sie Ihr Häkchensymbol nicht nur auf besuchte Links anwenden.

In Bezug auf diese:

(ich bin auch ein bisschen unscharf, wenn ich sollte oder ein Leerzeichen vor einem pseudo-Element nicht hinzufügen, oder ist es auch eine Rolle?)

Es ist von Bedeutung, weil der Raum ein Nachkomme combinator darstellt:

  1. der Wähler a:visited a:after stellt die :after pseudo- Element eines a, das ein Nachkomme von einem anderen a ist, der ein besuchter Link ist, der in HTML nicht ganz sinnvoll ist.

  2. Der Wähler a:visited :after ist ähnlich a:visited a:after, außer es :after von jede Art Nachkommen a:visited darstellt.

    Es kann umgeschrieben werden als a:visited *:after. Siehe the universal selector in der Spezifikation.

durch den Raum Weglassen Sie anwenden, das Pseudoelement direkt auf das Element durch den Wähler, bevor sie dargestellt, die in Ihrem Fall ist a:visited, nichts von seiner Nachkommen.

+2

Während ich erkannte, dass das OP ': nach' in seiner ursprünglichen Frage verwendet, empfiehlt das W3C die Doppelpunkt-Syntax für Pseudo-Elemente zu verwenden: ': : nachher? –

+0

Ah, ich sehe .... ein bisschen enttäuschend. Danke für die Information! – LazerSharks

+2

@David Thomas: Sie können immer noch die Single-Colon-Syntax für CSS1 und CSS2-Pseudo-Elemente verwenden, wenn Sie die Kompatibilität mit IE <9 beibehalten möchten. Wenn Sie ältere Browser nicht unterstützen müssen, sollten Sie doppelte Doppelpunkte verwenden für Pseudo-Elemente. Einzelne Doppelpunkte sind für neue Pseudoelemente nicht erlaubt. – BoltClock

Verwandte Themen