Underline in Class-Selector erlaubt?
Stefan Bucher
- css
0 Sven Rautenberg0 MudGuard
0 MudGuard
Ist ein Underline-Zeichen ("_") in einem Klassen-Selektor erlaubt?
Ich habe mein Style-Sheet bei W3C online validieren lassen und erhielt einen Parsing-Error beim Selktor ".navig_table"
Liegt es am Underline-Zeichen?
Danke für irgendwelche Hinweise.
Stefan
Moin!
Ist ein Underline-Zeichen ("_") in einem Klassen-Selektor erlaubt?
Jein. Und genau das ist das Problem.
Ursprünglich war es nicht erlaubt. Irgendeine spätere Standardversion hatte es dann plötzlich erlaubt - was prompt im IE eingebaut wurde. Wie der aktuelle Stand im Standard lautet, weiß ich nicht, aber das ist auch egal: Wenn du funktionierende Stylesheets schreiben willst, benutze KEINEN UNTERSTRICH!
Der Validator bemeckert es, also wird es verboten sein.
- Sven Rautenberg
Hi,
Ursprünglich war es nicht erlaubt. Irgendeine spätere Standardversion hatte es dann plötzlich erlaubt - was prompt im IE eingebaut wurde.
Falsch. Herleitung siehe oben.
In HTML darf das class-Attribut zwar CDATA (mehrere Whitespace-getrennte Klassennamen) ohne nähere Spezifizierung haben. Aber CSS macht die Beschränkung.
cu,
Andreas
Hi,
Ist ein Underline-Zeichen ("_") in einem Klassen-Selektor erlaubt?
Nein, im class-Selektor ist _ nicht erlaubt, wie ein Blick in die Grammatik und den Lexical Scanner von CSS2 zeigt (hier nur die relevanten Zeilen zitiert):
class
: '.' IDENT
ident {nmstart}{nmchar}*
nmstart [a-z]|{nonascii}|{escape}
nmchar [a-z0-9-]|{nonascii}|{escape}
nonascii [\200-\377]
escape {unicode}|\[ -~\200-\377]
unicode \{h}{1,6}[ \t\r\n\f]?
(der Scanner unterscheidet nicht zwischen Groß- und Klein-Buchstaben)
Der Unterstrich taucht hier nirgends auf, darf also nicht verwendet werden - in keinem Identifier in CSS, nicht nur in Klassennamen.
Nachzulesen unter http://www.w3.org/TR/REC-CSS2/grammar.html
cu,
Andreas
Hallo,
Nein, im class-Selektor ist _ nicht erlaubt, wie ein Blick in die Grammatik und den Lexical Scanner von CSS2 zeigt (hier nur die relevanten Zeilen zitiert):
In einem Errata-Dokument werden Unterstriche erlaubt: http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html. Man sollte aber dennoch auf Unterstriche in Klassennamen und IDs verzichten, um Probleme mit aelteren Browsern zu vermeiden.
MfG, Thomas
Hi,
In einem Errata-Dokument werden Unterstriche erlaubt: http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html.
Ups, übersehen.
Aber dann arbeitet der Validator fehlerhaft bzw. auf der unkorrigierten Version...
»»Man sollte aber dennoch auf Unterstriche in Klassennamen und IDs verzichten, um Probleme mit aelteren Browsern zu vermeiden.
Dem kann ich auf jeden Fall zustimmen.
cu,
Andreas