

scrollWidth/scrollHeight – the width/height of the content, just like clientWidth/clientHeight, but also include scrolled-out, invisible part of the element.clientWidth/clientHeight – the width/height of the content including paddings, but without the scrollbar.For right-to-left OS the vertical scrollbar is on the left so clientLeft includes its width too. For left-to-right OS they are always the widths of left/top borders. clientLeft/clientTop – the distances from the upper-left outer corner to the upper-left inner (content + padding) corner.

OVERFLOW CSS RETURN WINDOWS
On a Desktop Windows OS, Firefox, Chrome, Edge all reserve the space for the scrollbar. The element with text has CSS width:300px. If your browser reserves the space for a scrollbar (most browsers for Windows do), then you can test it below. Such cross-browser differences is the reason not to use getComputedStyle, but rather rely on geometry properties.

Firefox) – CSS width (ignore the scrollbar). Chrome) return the real inner width, minus the scrollbar, and some of them (e.g. …But with getComputedStyle(elem).width the situation is different. And clientWidth/clientHeight take that into account. So the real width available for the content is less than CSS width.
OVERFLOW CSS RETURN CODE
Sometimes the code that works fine without a scrollbar becomes buggy with it, because a scrollbar takes the space from the content in some browsers. So here CSS width is useless.Īnd there’s one more reason: a scrollbar. Alert( getComputedStyle(elem).width ) // autoįrom the CSS standpoint, width:auto is perfectly normal, but in JavaScript we need an exact size in px that we can use in calculations.
