ResizeObserverEntry: devicePixelContentBoxSize-Eigenschaft

Die devicePixelContentBoxSize schreibgeschützte Eigenschaft der ResizeObserverEntry-Schnittstelle gibt ein Array zurück, das die Größe des beobachteten Elements in Gerätepixeln enthält, wenn der Callback ausgeführt wird.

Wert

Ein Array, das Objekte mit der neuen Größe des beobachteten Elements in Gerätepixeln enthält. Das Array ist notwendig, um Elemente zu unterstützen, die mehrere Fragmente haben, was in Mehrspaltenszenarien vorkommt. Jedes Objekt im Array enthält zwei Eigenschaften:

blockSize

Die Größe des content-box in Gerätepixeln der Blockdimension des beobachteten Elements. Für Boxen mit einem horizontalen writing-mode ist dies die vertikale Dimension oder Höhe; wenn der writing-mode vertikal ist, ist dies die horizontale Dimension oder Breite.

inlineSize

Die Größe des content-box in Gerätepixeln in der Inline-Richtung des beobachteten Elements. Für Boxen mit einem horizontalen writing-mode ist dies die horizontale Dimension oder Breite; wenn der writing-mode vertikal ist, ist dies die vertikale Dimension oder Höhe.

Hinweis: Für weitere Informationen über Schreibmodi sowie Block- und Inline-Dimensionen lesen Sie Umgang mit verschiedenen Textausrichtungen.

Beispiele

Das folgende Beispiel stammt aus dem Artikel Pixel-perfect rendering with devicePixelContentBox. Da die Callback-Funktion eines ResizeObserver nach dem Layout, aber vor dem Rendern aufgerufen wird, besteht die Möglichkeit, die exakte Größe in physischen Pixeln zu protokollieren, um eine Eins-zu-eins-Zuordnung von Canvas-Pixeln zu physischen Pixeln sicherzustellen.

js
const observer = new ResizeObserver((entries) => {
  const entry = entries.find((entry) => entry.target === canvas);
  canvas.width = entry.devicePixelContentBoxSize[0].inlineSize;
  canvas.height = entry.devicePixelContentBoxSize[0].blockSize;

  /* … render to canvas … */
});
observer.observe(canvas, { box: "device-pixel-content-box" });

Spezifikationen

Specification
Resize Observer
# dom-resizeobserverentry-devicepixelcontentboxsize

Browser-Kompatibilität

BCD tables only load in the browser