9.11.09
Ente Ente Ente – Verwirrende Bezeichnungen
Vor kurzem habe ich eine Erklärung zu den neuen CSS3-Selektoren, die sich mathematischen Folgenvorschriften bedienen, gebloggt. Obwohl mir die Funktionsweisen der Pseudo-Klassen nth-child und nth-of-type fast sofort klar waren, nachdem ich die Spec gelesen hatte, hatte ich Schwierigkeiten, die Dinger zu erklären. Später wurde mir dann klar, woran das lag: Die Selektoren taten nicht das, was sie verhießen.
Dem Namen nach müsste man vermuten, dass nth-child eben das „n-te Kind“ auswählt. Tut es aber nicht. Stattdessen wird jedes „a*n+b“-te Kind ausgewählt, also das Folgenglied an jeder n-ten Stelle. Da für Folgenglieder gerne die Variable „a“ verwendet wird, böte sich an, das Element „a-of-n-th-child(an)“ zu nennen. Zugegeben, das ist lang und umständlich, meiner Meinung nach aber immer noch besser als ein Name, der eine falsche Funktionsweise suggeriert.
Außerdem verwirrt mich dieses „of-type“ by nth-of-type, schließlich sind doch die Elemente bei nth-child auch „of-type“, also eines bestimmten Typs, der vor dem Doppelpunkt notiert ist. Warum dann nicht konsequenterweise nth-child-of-type anstatt nth-child oder am besten einfach nur nth für nth-of-type?
Kommentare [5]
Tim Baumann am 9.11.2009 um 17:33
Oder nur nth(an+b). Um gerade Kindknoten zu selektieren, müsste man dann den folgenden Code verwenden.
element > *:nth(even)
Markus Schlegel am 10.11.2009 um 12:26
Hmmh, muss mal ’nen klaren Kopf kriegen, dann überlege ich mir das noch einmal in Ruhe; kann ja irgendwie nicht sein, dass die Spezifikatöre da so einen Blödfug eingebaut haben. Das will ich einfach nicht glauben.
Tim am 15.11.2009 um 14:23
Stümmt nicht. Ich weiß jetzt, worin der Unterschied besteht: Bei nth-of-type werden nur Knoten des Typs gezählt, bei nth-child auch Kindknoten anderen Typs. Am besten erklär ich das einfach mit nem Beispiel.
Markus Schlegel am 15.11.2009 um 14:43
Ah, vielen Dank, endlich einleuchtend. Also ist zumindest die Bezeichnung „of-type“ sinnvoll. Jetzt muss mir nur noch jemand erklären, dass ich mit dem anderen Kritikpunkt auch falsch liege und meine Welt ist wieder in Ordnung.
Tim am 15.11.2009 um 15:20
Ich finde das Verwirrende ist der Name der praktischen Variable in an+b. Ich finde, ein x wär hier viel besser aufgehoben. Die strukturelle Pseudoklasse nth-of-type selektiert alle Knoten, für die es eine Zahl n größer gleich 0 gibt, die in die gegebene Gleichung eingesetzt, die Nummer des Knotens zurückgibt. Das n-te bezieht sich also nicht auf die praktische Variable n im Ausdruck von nth-of-type, sondern auf mögliche Werte des Ausdrucks. Und deshalb sollte die praktische Variable einen anderen Namen haben, um Missverständnisse zu vermeiden.
Kommentar verfassen
Flattr
Blogrolle
- Björn Seibert
Webdesign & Rest - Christoph Koeberlin
Typographie verstehen - Der Spiegelfechter
Zeitgeschehen - Feynsinn
Politisches - Gerrit van Aaken
Webdesign & Rest - Jeffrey Zeldman
Jeffrey Zeldman eben - Mathias Schäfer
Webstandards & so - Nico Brünjes
ZEIT-Website-Mensch - Peter Kröner
Webdesign, Rants & Rest - Stefan Münz
Zur Zukunft und Gegenwart des Web
Podroll
- Boagworld
Paul Boag & Marcus Lillington - Chaosradio Express
Tim Pritlove und Gäste - Elektrischer Reporter
Aufklärung netzpolitischer Themen - Medienradio
Podcast über Medien (srsly!) - Read Between the Leading
Design allgemein - Technikwürze
Webdesign & Rest
Soziale Netzwerke
- Amazon-Wunschliste
Auf dass man mich reich beschenke - dasauge
Profil und Portfolio - Delicious
Social Bookmarking - Formspring.me
Obwohl schon alles über mich gesagt ist. - Google Reader Shared Items
Was ich lese und gut finde - last.fm
Meine Musik - Twitter
Lyrik & Prosa - Xing
Geschäftliches
Twitroll
- @font
Tobias Otte - @freshmango
Dennis Frank - @Herr_Gabriel
Gabriel Shahzad - @netzpolitik
Markus Beckedahl - @timpritlove
Tim Pritlove