Thiemos Archiv
- Wednesday, 2005-07-13 11:37
- CSS 2.x kennt nur vier attributbedingte Selektoren:
[att]
trifft zu, wenn das Attribut vorhanden ist, egal welchen Wert es beinhaltet. Bei[att=val]
muss der Wert exakt übereinstimmen (Groß/Kleinschreibung muss ebenfalls übereinstimmen). Jetzt wird es interessant:[att~=val]
ist keine echte Suche nach einer Teilzeichenkette, sondern die Suche nach einem exakten Treffer in einer durch Leerzeichen getrennten Liste von Werten. Das kommt z.B. beiclass="a b c"
oder auch beirel="a b c"
vor.[att|=val]
ist keine echte Suche nach einem Präfix, sondern die Suche nach einem exakten Treffer am Anfang einer durch Bindestriche getrennten Liste von Werten. Das kommt z.B. beilang="de-DE"
vor. Eine echte Suche nach Teilzeichenketten gibt es erst mit CSS 3, das netterweise von Firefox und Co. schon interpretiert wird:[att^=val]
passt auf den Zeichenkettenanfang,[att$=val]
auf das Zeichenkettenende und[att*=val]
auf ein beliebiges Vorkommen. Die Regel für das Hervorheben externer Links (oder Links zu bestimmten Domänen) muss also so aussehen:a[href^="http://"]
. Die Anführungszeichen sind erforderlich, sobald Sonderzeichen im zu suchenden Wert vorkommen.Nachtrag: Opera beherrscht diese Selektoren leider noch nicht, auch in der neusten Version 8.0 nicht.
- 2005-07-13 14:17
- Ich würde es ja genial finden, wenn eines Tages auch richtig reguläre Ausdrücke (Perl-kompatibel) funktionieren würden ...
- René
- 2005-07-13 21:10
- Man kann es auch übertreiben. CSS ist keine Programmiersprache. Dafür gibt es XSLT und Co.
- Thiemo
Kommentare zu diesem Beitrag können per E-Mail an den Autor gesandt werden.