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 'target' in that specification. |
Editor's Draft | Initial definition. |
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
borderBoxSize | Chrome No support No | Edge No support No | Firefox Full support 69 | IE No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.