Sven Rautenberg: Links mit :before dekorieren

Beitrag lesen

'n Abend Ben,

ich würd einfach versuchen, das mit Klassen für die Bild-Links zu regeln oder? :)

Tja, erstens wäre das qualitativ ungefähr das Gleiche, Text-Links extra auszeichnen zu müssen - wenn auch nicht quantitativ, ok.
Abgesehen davon habe ich es schon probiert, also :before auf alle Links angewendet und danach versucht, eine Klasse zu bauen, die das :before dort wieder wegnimmt, aber selbst das klappte irgendwie nicht.

Finde ein eindeutiges Unterscheidungsmerkmal zwischen Links mit und ohne Bild.

Sind die Bildlinks alle in einer Tabellenzelle drin?

td a:before {content: "";}
bzw. sogar
td > a:before {content:"";}

Noch mehr Selektorenmöglichkeiten sind in http://selfhtml.teamone.de/css/formate/zentrale.htm#verschachtelte_elemente (ein wenig unterhalb bei den CSS2-Selektoren gucken) und http://www.w3.org/TR/REC-CSS2/selector.html (serh aufschlußreich) aufgelistet . Die Kette darf durchaus noch länger sein und kann bei ganz oben bei "html" anfangen.

Du mußt Klassen verwenden, sofern du Bildlinks und Textlinks innerhalb eines Bereiches mischst. Die CSS-Selektoren formatieren das zuletzt genannte Element, beachten aber keine Inhalte von Elementen, wie es bei dir notwendig wäre. Würdest du nach "a img" selektieren, würdest du das img formatieren, nicht dessen vorhergehendes a.

Und das wichtigste: Erwarte nicht, daß alle Browser alle Selektoren kennen. Netscape 4 ist ganz schlimm in dieser Beziehung, der erkennt z.B. ID-Selektoren nur in der anonymen Form "#id", aber nicht mehr in der Tag-benannten Form "div#id". Er kennt nur die ganz normalen Ketten von Selektoren "a b c", aber nichts spezielleres wie ">" oder "+". Attributselektoren gehen sowieso garnicht. Andere Browser können das eine oder andere mehr, aber so richtig glücklich wird man vermutlich erst mit Mozilla - und weint dann ob dessen Verbreitungsgrad.

- Sven Rautenberg