Hallo Friedel,
der Wertetyp von margin-Angaben ist ein CSS <length> Wert, und eine length ist ein Subtyp einer Dimension.
Äh, Edit für Genauheimer, es ist ein <length-percentage> Wert, d.h. entweder Länge ODER Prozentangabe. Aber da eine Prozentangabe ein % erfordert, sind wir im <length> Zweig dieser Oder-Angabe...
Und das heißt: margin:10
ist ein CSS Syntaxfehler, weil die Einheitenangabe laut Spec nur für den Wert 0 optional ist. Du bist damit der Gnade des Browsers überlassen, wie er das deutet. Korrekt wäre eigentlich, syntaktisch falsche Eigenschaften (im Sinne von: der Browser kennt diese Syntax nicht und weiß nicht, ob er sie vielleicht nur noch nicht kennt) zu ignorieren.
Aber Chrome deutet mir 10
wie 10px
, Firefox auch. Es ist vielleicht ein Kompatibilitätsfluch aus den 90ern, der sie dazu zwingt.
Quentin schreibt hier bei Stackoverflow, dass es eine Folge des Quirksmode sei, wenn der Browser einheitenlose Werte als Pixel interpretiert. Da lag ich mir meinem Fluch der 90er gar nicht falsch 😀. Diese data-URL liefert keinen Doctype und versetzt die Seite damit in den Quirksmode. Aber - wenn ich hier das Forum in den Entwicklertools mit body {margin99;} malträtiere, dann nimmt Chrome das dennoch an, obwohl es <!doctype html> hat. Da steckt vielleicht noch mehr dahinter, oder Chrome ist einfach nur nett (was manchmal mit doof gleichzusetzen ist):
Rolf
sumpsi - posui - obstruxi