盒模型
dom的元素尺寸基于盒模型。
w3c规范的标准盒模型中,元素的宽度(width属性)只等于content宽度;而IE定义的怪异盒模型中,width=content+padding+border。
css属性box-sizing: content-box/border-box,可分别将元素设置为标准盒模型和怪异盒模型。
offsetWidth
如下图,其中offsetParent是距离最近有定位属性的父级元素,如不存在则是body元素;
offsetWidth = content+padding+border。
其中offsetLeft是元素边框外侧到offsetParent元素边框内侧的距离。
clientWidth
元素的视口尺寸,不包含滚动条占用的空间。
如下图,clientWidth=content+padding。
其中,document.documentElement.clientWidth常用于检测浏览器视口尺寸。
scrollWidth
如下图,scrollWidth为元素的总尺寸,即等于实际尺寸+padding。所以在不需要滚动元素中,scrollWidth= clientWidth。
其中,scrollTop是隐藏区域的尺寸,即等于滚动条滚动的距离。