Sven Rautenberg: Was WENN du das nicht kennst?

Beitrag lesen

Moin!

Ich muss sagen können:
p.special{
  float:left;
}
@IF display;inline-block{
p.special{
   float:none;
   display:inline-block;
}
}

Situation 1.
Browser A versteht @IF nicht
Browser B versteht @IF aber er versteht nicht display:inline-block
Browser C versteht beides.

Browser A macht:

p.special{
   float:left;
}

aber verwirft
@IF ...{ }
ergebnis:
float.left wie gewpnscht

Browser B macht:

p.special{
   float:left;
}
aber versteht
@IF { }
aber kennt de Eigenschaft display:inline-block nicht.
@IF evaluiert zu NULL, ergo verwirft er den Block

Ergebnis: float:left wie gewünscht.

Browser C versteht alles, und wird float:none und display:inline-block als letztes an diesem Punkt gültiges CSS evaluieren.

Situation 2: Browser versteht zwar inline-block, aber nicht float. Ergebnis: Zusammenbruch.

Situation 3: Browser versteht inline-block und float, hat aber einen Darstellungsbug bei deren Kombination. Ergebnis: Zusammenbruch.

Unter dem Strich: Deine IF-Abfrage in CSS ist genauso uncool wie die existierenden IF-Abfragen in Javascript:

if (document.all) {  
  // hier nehmen wir an, dass wir es mit einem IE zu tun haben, der alles kann, was IEs so können, auch wenn diese Idee falsch ist, weil Alternativbrower Versuche unternommen haben, document.all nachzubilden...  
  }

Das Resultat deines Vorschlages müsste realistisch betrachtet dazu führen, dass für jede verwendete Eigenschaft im CSS eine IF-Abfrage prüft, ob diese Eigenschaft vom Browser verstanden wird. Das passiert aber ja bereits jetzt. Der einzige Vorteil wäre, dass man Kombinationen von Eigenschaften abhängig vom Prüfungsergebnis verwenden könnte. Das Problem dabei bliebe, dass jede dieser Kombinationen eigentlich vollständig geprüft und mit IF abgedeckt werden müsste, andernfalls ginge der Vorteil des "Ich muss mich nicht um die Fähigkeiten des Browsers kümmern, der ignoriert den Teil im Zweifel einfach" verloren. Solche IF-Konstrukte würden dann aber so aufwendig, dass sie nicht mehr überschaubar wären.

Im Gegensatz dazu kann man mit den bekannten Browser-Hacks, die auf dem (Un-)Verständnis der Browser für spezielle CSS-Selektoren aufsetzen, sehr gut leben - so zumindest mein Praxis-Erfahrungswert.

- Sven Rautenberg