hi,
ich hatte heute (ein bischen herumgespielt) eine HTML Seite durch
einen Filter geschickt, der die ganzen CR/NLs entfernt und somit
den den ganzen Code auf eine Zeile reduziert.
Und das verrückte ist nun, das dies im Opera(6) ganz exakt genauso
angezeigt wird wie vorher; scheinbar alle CSS-Definitonen sind
nach wie vor aktiv (sind in diesem Beispiel ja eh nur eine Handvoll).
Was ist daran verrückt? Es ist so spezifiziert, also ist das das zu erwartende Ergebnis. Jedes andere Verhalten des Browsers wäre fehlerhaft.
CSS erlaubt an vielen Stellen Whitespace.
Whitespace ist dabei definiert als: [ \t\r\n\f]+
also Leerzeichen, Tabulator, Wagenrücklauf, Zeilenvorschub, Seitenvorschub
Diese Zeichen sind gleichberechtigt.
Das hättest Du durch einen Blick in die Spezifikation leicht rausfinden können.
Ich bin bisher immer davon ausgegangen das dieses in-eine-Zeile-packen
neben den <PRE> und <SCHNULLISCRIPT>-Bereichen auch den
CSS-Bereich unbrauchbar machen würde, und jetzt logischerweise
ziemlich überrascht.
RTFM.
Im SelfHtml8 steht tatsächlich auch kein Ton davon, daß es notwendig
sei jede CSS-Definition in eine eigene Zeile zu packen; daher jetzt
meine Frage: weiß jemand, ob dies offiziell vom w3c genehmigt wurde,
und wenn ja wie steht es mit der Verwendbarkeit in den real
existierenden Browsern??
Ja, natürlich ist das erlaubt. Außer dem Netscape 4.x ist mir kein Browser bekannt, der mit Whitespace im CSS Probleme hat (und da geht es nicht um Zeilenvorschübe, sondern um Whitespace rund um die { } und die :
Siehe http://www.w3.org/TR/REC-CSS2/grammar.html
Andreas