Gunnar Bittersmann: Eine oder doch mehrere CSS Dateien

Beitrag lesen

@@Gunther:

nuqneH

Ich persönlich bin kein Freund von Hacks.

Von sowas wie 'foo { _bar: baz }' oder 'foo { ba\r: baz }' lasse ich auch die Finger. '* html' considered harmless.

Schon alleine deswegen nicht, weil sie eben von ihrer "Wirkungsweise" her nicht zum Standard gehören.

Das wäre ja auch ein innerer Widerspruch. Der Standard sagt, wie UAs CSS zu interpretieren haben. In einer idealen Welt hielten sie sich dran.

Und man muss ggf. über Monate und Jahre "im Kopf behalten", welcher Hack denn nun von welchem Browser und welchen Versionen verstanden wird und von welchen nicht.

Wenn man nicht dem Irrglauben Nr. 1 verfallen ist, eine Webseite müsse in allen Browsern völlig identisch aussehen, braucht man außer '* html' für IE < 7 und '*:first-child+html' für IE 7 kaum andere Hacks. Und die beiden wird man sich ja gerade so noch merken können.

Auf die Art kommt man mit einem Stylesheet für alle Browser aus. Der große Vorteil daran ist, dass man die für die Browser verschiedenen Stilangaben für ein Element direkt untereinander notieren kann und sie damit immer in einem Blick hat.
Und einer der Nachteile daran ist, dass man permanent in einer "riesigen" CSS-Datei rumwerkeln muss und auch jedem Browser eine unnötig große Datei liefert.

Wenn man nicht dem Irrglauben Nr. 1 verfallen ist, werden es nur wenige Anpassungen sein. Riesig wird das Stylesheet dadurch nicht. Ich hab noch nicht erlebt, dass ein Browser mit dem Rendern einer Seite nicht hinterherkäme, weil ein paar für ihn irrelevante Regeln im Stylesheet stehen.

Und für die Übertragungszeit sind die zusätzlichen Regeln in dem einen Stylesheet für alle Browser irrelevant. Im Gegenteil: Bei einem zusätzlichen Stylesheet für IEs müssten diese auf zwei Ressourcen warten.

Insbesondere wenn es nur um unuserterschiedliche Styles für die IEs geht, bevorzuge ich auf jeden Fall die Verwendung von Conditional Comments.
Warum man dieses "System" nicht für alle Browser und auch für CSS-Dateien übernommen hat, ist mir bis heute ein Rätsel!

Weil conditional comments im HTML stehen, die Darstellungsangaben aber nicht dorthin gehören. Warum Microsoft conditional comments in HTML und conditional compiling in JavaScript eingefüht hat, aber nichts dergleichen in CSS, ist mir ein Rätsel.

Und wenn man’s in CSS richtig[tm] machen will, dann nicht per Kommentar, sondern per At-Regel:

foo { bar: baz}  
  
@user-agent IE 6  
{  
  foo { bar: quz }  
}

Das wäre sauber und mir auch lieber als Hacks.

Stattdessen guckt man sich seit fast 10 Jahren mit an, wie sich Webdesigner immer wieder mit irgendwelchen Hacks behelfen müssen. Klassisches Beispiel für "an den Anforderungen/ Erfordernissen der Praxis vorbei entwickelt"!

Richte deine Rufe gen Redmond.

Qapla'

--
Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)