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.
