2010-02-16 9 views
8

Kann ich die Standardeinheit von Pixel in mm ändern? Zum Beispiel möchte ich, wenn ein Element links und oben in mm nicht in Pixel bewegen?CSS-Standardeinheiten

Antwort

11

Die Angabe von CSS-Einheiten ist Voraussetzung für Werte ungleich Null. Browser versuchen zu erraten, was Sie meinen, aber es wäre immer noch ein gebrochenes Stylesheet nach dem Standard.

I.e. Es gibt keine "Standardeinheit" in CSS2, es ist nur so, dass der Browser versuchen könnte, Ihnen zu helfen, obwohl er Ihre Aussage, die keine Einheiten als ungültig definiert, ignorieren könnte.

+1

@OP: ZB CSS hat * Standardeinheiten nicht, also nein, Sie können sie nicht ändern. –

-2

Nein, das ist nicht möglich, da verschiedene Bildschirme unterschiedliche Größen haben können und trotzdem dieselbe Auflösung haben. Letztendlich führt dies zu Pixel- oder relativen Notationen.

+2

Es ist nicht möglich, aber Ihre Gründe sind falsch. (Sie erklären, warum die Verwendung von mm eine schlechte Idee ist, aber nicht, warum Sie eine Einheitslänge nicht als mm behandeln können) – Quentin

1

Nein, Sie können nicht die Standard-Einheit ändern, aber es sollte nicht zu viel sein, nur die Einheiten setzen dort:

#foo { 
    left: 22mm; 
    top: 20mm; 
} 

Sie immer das Gerät dennoch angeben sollte, weil es erforderlich ist, und Browser könnte unitless Werte unterschiedlich interpretieren.

0

AFAIK Wenn keine explizite Einheit angegeben wurde (wie 'em' oder '%'), wird "px" mit dem Wert verknüpft und es gibt keine Möglichkeit, dieses Standardverhalten zu überschreiben.

+0

Nur im Quirks-Modus. – Quentin

1

Da es keine "Standardeinheit" gibt und Sie die Einheit beim Positionieren eines Elements angeben müssen, können Sie einfach "mm" anstelle von "px" verwenden.

11

Es gibt keine Standardeinheit. Die CSS-Spezifikation erfordert, dass eine Länge (die nicht Null ist), bei der eine Einheit fehlt, als Fehler behandelt wird (und somit ignoriert wird).

In quirks mode (und Sie sollten fast nie Quirks-Modus verwenden, macht es das Leben schwieriger), führen die meisten Browser Fehlerkorrektur und nehmen Sie an, dass Sie Pixel gemeint (trotz der Spezifikation verbietet dies).

Wenn Sie mit Bildschirmmedien arbeiten - vermeiden Sie physikalische Einheiten. Die meisten Systeme sind nicht kalibriert, um die DPI korrekt zu berechnen (wenn man also von physikalischen Einheiten in etwas umwandelt, was ein Monitor versteht (Pixel), bekommen sie es falsch).

+1

@Ilian, sollte diese Antwort angenommen werden. Danke, Quentin –