Hallo Christian,
der Css-Validator verlangt (gemaess Css 2.1) clip: rect(1px, 2px, 3px, 4px). IE versteht aber nur (Css 2)clip: rect(1px 2px 3px 4px). Natuerlich ist das eine IE-Schwaeche - aber wie damit umgehen?
Wenn das, was der IE versteht, gültiges CSS2 ist, (ich prüfe es jetzt mal nicht nach) dann sage ich ganz klipp und klar:
Nunja, man kann sich darüber streiten, ob es gültiges CSS 2.0 ist, denn die CSS 2.0-Specs widersprechen sich in dem Punkt selbst. In der formalen Definition wird die Version ohne Kommata vorgestellt, in den Beispielen die Version mit Kommata. Dies ist ein Fehler der Autoren, sie meinten eigentlich ract(<top>, <right>, <bottom>, <left>). Aber der MSIE hält sich an die formale Definition. Der Validator ist diesbezüglich völlig unbeleckt, er will unbedingt Kommata haben: http://jigsaw.w3.org/css-validator/validator?text=bla+{clip%3Arect(1px+1px+1px+1px)%3B}&warning=2&profile=css2&usermedium=all. Strenggenommen ist es valides CSS 2.0, weil die Beispiele keinen normativen Wert besitzen.
Nun ist ein weiteres Problem, dass CSS 2.0 und 2.1 unterschiedliche Interpretationen der Werte vorschreiben, also in diesem Punkt zueinander nicht kompatibel sind. In 2.0 werden die right- und bottom-Werte jeweils von rechts und unten »angelegt«, in 2.1 von links und oben. Den Unterschied sieht man gut an den Beispielen, welche mit anderem Code denselben Zweck erfüllen:
http://www.w3.org/TR/CSS2/visufx.html#clipping
http://www.w3.org/TR/CSS21/visufx.html#clipping
Die mir bekannten Browser benutzen seit jeher die CSS 2.1-Methode (obwohl es sie damals noch nicht gab) und ignorierten den Standard diesbezüglich (in Selfhtml steht auch die gemäß CSS 2.0 »falsche« Variante), gemäß CSS 2.1 ist es jetzt wieder rechtens, der De-facto-Standard wurde zum formalen Standard.
es ist ja valides CSS2.
...oder auch nicht, wie man es nimmt.
Es geht mir nicht um _den Validator_, es geht mir um _die Validität_, die *nicht* durch den Validator definiert wird, sondern letztendlich durch die Standards selbst.
...wenn der Standard denn eindeutig wäre, wenn es eine Konsistenz zwischen den Specs gäbe und wenn die Browser das, was sie unterstützen, auch konsequent gemäß Spec unterstützten.
Ist es denn nun ein Workaround oder valides CSS2?
Beides! :) Wie man es auch löst, es ist im Grunde genommen falsch.
Mathias