2016-08-23 3 views
3

In der Auswahl kann ein Leerzeichen einen Nachkommen angeben. Ich sehe jedoch, dass Leerzeichen auch ignoriert werden können.Leerzeichen in CSS-Selektoren

Von meinen Tests, hier ist das, was ich denke, es bedeutet:

  • Spaces um , und kontextuelle Zeichen verwendet werden können (wie + und >).
  • Spaces Pseudoklasse und Zeichen-Element kann verwendet werden (: und ::) sowie Attributselektoren ([…]). nicht rund
  • Leerzeichen dürfen nicht mit Klassen- und ID-Zeichen (. und) verwendet werden.
  • Leerzeichen innerhalb einer "Zeichenfolge" sind signifikant.
  • Alle anderen Leerzeichen werden ignoriert. Dies beinhaltet das Auffüllen innerhalb eines Attributselektors.

Die Frage ist (a) ist das offiziell korrekt? und (b) wo ist das abgedeckt?

+0

Die Leerzeichen um '' 'sind technisch gesehen" Leerzeichen in CSS-Selektoren "; Der Begriff "Selektor" bezieht sich auf einzelne Selektoren, und die durch Kommata getrennte Liste von Selektoren links von der CSS-Regel wird als "Selektorliste" bezeichnet. –

+0

@torazaburo Danke für diesen Kommentar. Die Terminologie ist wichtig, wenn ich versuche, sie anderen zu vermitteln. – Manngo

Antwort

3

Alle Ihre Schlussfolgerungen sind richtig. Es gibt Nuancen in Bezug auf Leerzeichen in Attributselektoren, die in meiner Antwort auf this question behandelt werden.

Alle genauen Regeln, wo Whitespace auftreten kann oder nicht, sind in der abgedeckt. Für die Zwecke der Grammatik werden die "Kontextzeichen (wie + und >)", auf die Sie sich beziehen, offiziell als Kombinatoren bezeichnet. (Der Begriff "kontextueller Selektor" wurde zuerst in CSS1 verwendet, ist aber seitdem nicht mehr erschienen.)

Denken Sie außerdem daran, dass eine beliebige Anzahl zusammenhängender Leerzeichen, die zwei einfache Selektoren trennen, als ein nachkommender Kombinator betrachtet wird, der tatsächlich eins ist Grund, warum Leerzeichen um die Trennzeichen für Pseudo-Elemente, Pseudo-Klassen, Attribut-Selektoren, Klassen-Selektoren und ID-Selektoren nicht "erlaubt" sind - weil es Bedeutung hat und daher seine Anwesenheit die Bedeutung des Selektors verändert.

+0

Danke für die Informationen, sowie den Link zur Grammatik und der richtigen Terminologie. Die Verwendung von Raum als Kombinator war immer bedauerlich: Die Beschreibung der korrekten Verwendung von Räumen ist nicht nur komplizierter, sie ist auch nicht völlig konsistent mit anderen Sprachen, in denen man sagen könnte, dass jeder Raum, der kein Trennzeichen ist, ignoriert wird . – Manngo

+0

@ Manngo: In der Tat. [Die Arbeitsgruppe stimmt zu.] (Https://wiki.csswg.org/ideas/mistakes) – BoltClock