1 .1 style.width与offsetWidth的区别
1. style.width只能读取内联样式,offsetWidth都可以读取。
2. style.width读取的值带“px”单位,offsetWidth读取纯数值。
3. style.width获取的只是元素的宽度,不包括border和padding所占的宽度, 而offsetWidth获取的宽度是 width+border+padding+滚动条 的值(但不包括margin)。
4. offsetWidth是只读的,style.width是可读可写的。
2.1 JS中的位置和宽度:clientWidth、offsetWidth、scrollWidth等区别
margin | border | padding | width(height) | scroll | 视口之外的内容 | |
---|---|---|---|---|---|---|
offsetWidth | 不包括 | 包括 | 包括 | 包括 | 包括 | 包括 |
clientWidth | 不包括 | 不包括 | 包括 | 包括 | 不包括 | 不包括 |
scrollWidth | 不包括 | 不包括 | 包括 | 包括 | 不包括 | 包括 |
2.1.1 clientWidth和clientHeigh 、 clientTop和clientLeft
1. clientWidth的实际宽度:clientWidth = width+左右padding。
2. clientHeigh的实际高度:clientHeigh = height + 上下padding。
3. clientTop的实际宽度: clientTop = boder.top(上边框的宽度)。
4. clientLeft的实际宽度:clientLeft = boder.left(左边框的宽度)。
2.1.2 offsetWidth和offsetHight 、 offsetTop和offsetLeft
1. offsetWidth的实际宽度:offsetWidth = width + 左右padding + 左右boder。
2. offsetHeith的实际高度:offsetHeith = height + 上下padding + 上下boder。
3. offsetTop实际宽度offsetTop:当前元素 上边框 外边缘 到 最近的已定位父级(offsetParent) 上边框 内边缘的 距离。如果父级都没有定位,则分别是到body 顶部 和左边的距离。
4. offsetLeft实际宽度offsetLeft:当前元素 左边框 外边缘 到 最近的已定位父级(offsetParent) 左边框 内边缘的距离。如果父级都没有定位,则分别是到body 顶部 和左边的距离。
2.1.3 scrollWidth和scrollHeight 、 scrollTop和scrollLeft
1. scrollWidth实际宽度scrollWidth:获取指定标签内容层的真实宽度(可视区域宽度+被隐藏区域宽度)。
2. scrollHeight的实际高度scrollHeight:获取指定标签内容层的真实高度(可视区域高度+被隐藏区域高度。
3. scrollTop:内容层顶部 到 可视区域顶部的距离。
4. scrollLeft: scrollLeft:内容层左端 到 可视区域左端的距离。