Gleitkommawerte in CSSOM

Gleitkommawerte in CSSOM

Internet Explorer 10 und Windows Store-Apps mit JavaScript melden Positionierungs- und Größenanpassungsmetriken für das Dokumentobjektmodell (Document Object Model, DOM) jetzt mit Subpixelpräzision. CSSOM (CSS Object Model, CSS-Objektmodell) in Internet Explorer 10 und in Windows Store-Apps mit JavaScript unterstützt Gleitkomma-Pixeleinheiten und Gleitkommagenauigkeit bei Positionierungs- und Größenanpassungswerten für CSSOM-Eigenschaften auf Elementebene.

Dieses Thema enthält die folgenden Abschnitte:

Ausrichtung ganzer Pixel

Legacywebstandards und entsprechende Implementierungen sind bisher davon ausgegangen, dass das Rendering von Webinhalten auf einem bestimmten Bildschirm immer an den Grenzen ganzer Pixel ausgerichtet sein sollte. Dies wird in CSSOM deutlich, einem Objektmodell, das verwendet wird, um Positionierungs- und Größenanpassungsmetriken für DOM abzurufen. Obwohl Windows Internet Explorer schon seit Langem umfassende CSSOM-APIs unterstützt (weitere Informationen finden Sie im Artikel zum Messen von Elementdimensionen und Positionen mit CSSOM in Internet Explorer 9), wurden diese Positionierungs- und Größenanpassungsmetriken anhand der Pixelausrichtung definiert.

Geräteunabhängige Pixeleinheiten (Device-Independent Pixels, DIPs)

In Windows Internet Explorer 8 wurde die Unterstützung für geräteunabhängige Pixel (Device-Independent Pixels, DIPs) eingeführt. Diese "virtuellen Pixel" sind 1/96 eines Zolls groß und ermöglichen eine deutlich präzisere Messung der Textpositionierung als physische Pixel. Wenn Inhalte auf dem Bildschirm gerendert werden, werden die Layoutmetriken anhand eines Skalierungsfaktors (der der aktuellen Zoomstufe des Benutzers entspricht) umgewandelt und dann für die Anzeige auf ein Pixel gerundet bzw. ausgerichtet.

Das Renderingmodul in Windows Internet Explorer 9 lagert einen großen Teil des Renderingvorgangs an die Grafikhardware des PCs aus. Dabei werden Direct2D-APIs verwendet. Mit Direct2D ist Rendering mit Subpixelgenauigkeit für das CSS (Cascading Stylesheets)-Feldmodell und für Text möglich. (Weitere Informationen zum Textrendering in Internet Explorer 9 finden Sie im Artikel zum Textrendering in Internet Explorer 9.) Anstatt einfach die Layouteinheit beim Rendering am nächstgelegenen Pixel auszurichten, kann das Renderingmodul über die Direct2D-APIs die Layoutberechnungen direkt verwenden und den Inhalt richtig anzeigen.

Mehr Präzision bei Positionierungs- und Größenanpassungsberechnungen

Obwohl Probleme beim Abrufen von pixelgenauen Positionierungs- und Größenanpassungsinformationen über CSSOM selten bei der Zoomstufe 100 % auftreten, können sie für Benutzer beim Vergrößern und Verkleinern des Inhalts erkennbar werden. Damit wird dies auch für Entwickler zum Problem. Die Unterstützung für Gleitkommagenauigkeit bei Positionierungs- und Größenanpassungswerten für CSSOM-Eigenschaften auf Elementebene in Internet Explorer 10 kann zur Abschwächung dieser Probleme beitragen. (Eigenschaften auf Elementebene sind Eigenschaften wie beispielsweise elementOb.clientLeft; Eigenschaften wie rangeOb.getBoundingClientRect().left dagegen geben immer Subpixelwerte zurück.)

Die Subpixelpräzision ist für CSSOM-Eigenschaften auf Elementebene standardmäßig deaktiviert. Sie können sie mit der folgenden neuen Eigenschaft aktivieren:

EigenschaftBeschreibung

msCSSOMElementFloatMetrics

Boolesche Eigenschaft, die angibt, ob die CSSOM-Eigenschaften zurzeit so festgelegt sind, dass Metriken mit Gleitkommapräzision zurückgegeben werden. Der Standardwert ist "0".

 

Verwandte Themen

Dokumentobjektmodell (Document Object Model, DOM)
Internet Explorer 10: Handbuch für Entwickler

 

 

Anzeigen:
© 2016 Microsoft