# css获取宽高的方式
代码 | 说明 |
---|---|
dom.style.width/height | 这种方式只能取到dom元素内联样式所设置的宽高,也就是说如果该节点的样式是在style标签中或外联的CSS文件中设置的话,通过这种方法是获取不到dom的宽高的。 |
dom.currentStyle.width/height | 这种方式获取的是在页面渲染完成后的结果,就是说不管是哪种方式设置的样式,都能获取到。但这种方式只有IE浏览器支持。 |
window.getComputedStyle(dom).width/height | 这种方式的原理和2是一样的,这个可以兼容更多的浏览器,通用性好一些。 |
dom.getBoundingClientRect().width/height | 这种方式是根据元素在视窗中的绝对位置来获取宽高的。 |
dom.offsetWidth/offsetHeight | 最常用的,也是兼容最好的。 |
扩展
- 获取屏幕的高度和宽度(屏幕分辨率): window.screen.height/width
- 获取屏幕工作区域的高度和宽度(去掉状态栏): window.screen.availHeight/availWidth
- 网页全文的高度和宽度: document.body.scrollHeight/Width
- 滚动条卷上去的高度和向右卷的宽度: document.body.scrollTop/scrollLeft
- 网页可见区域的高度和宽度(不加边线): document.body.clientHeight/clientWidth
- 网页可见区域的高度和宽度(加边线): document.body.offsetHeight/offsetWidth