ResizeObserverEntry.borderBoxSize

Experimental

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The borderBoxSize read-only property of the ResizeObserverEntry interface returns an array containing the new border box size of the observed element when the callback is run.

Syntax

var myBorderBoxSize = ResizeObserverEntry.borderBoxSize;

Value

An array containing objects with the new border box size of the observed element. The array is necessary to support elements that have multiple fragments, which occur in multi-column scenarios. Each object in the array contains two properties:

blockSize
The length of the observed element's border box in the block dimension. For boxes with a horizontal writing-mode, this is the vertical dimension, or height; if the writing-mode is vertical, this is the horizontal dimension, or width.
inlineSize
The length of the observed element's border box in the inline dimension. For boxes with a horizontal writing-mode, this is the horizontal dimension, or width; if the writing-mode is vertical, this is the vertical dimension, or height.

Note: For more explanation of writing modes and block and inline dimensions, read Handling different text directions.

Examples

const resizeObserver = new ResizeObserver(entries => {
  for (let entry of entries) {
    if(entry.borderBoxSize && entry.borderBoxSize.length > 0) {
      entry.target.style.borderRadius = Math.min(100, (entry.borderBoxSize[0].inlineSize/10) +
                                                      (entry.borderBoxSize[0].blockSize/10)) + 'px';
    } else {
      entry.target.style.borderRadius = Math.min(100, (entry.contentRect.width/10) +
                                                      (entry.contentRect.height/10)) + 'px';
    }
  }
});

resizeObserver.observe(document.querySelector('div'));

Specifications

Specification Status Comment
Resize Observer
The definition of 'borderBoxSize' in that specification.
Editor's Draft Initial definition.

Browser compatibility

BCD tables only load in the browser