1.Dom元素的大小
offsetWidth/offsetHeight属性返回元素的大小(border+padding+width)
clientWidth/clientHeight属性返回元素可见大小(padding+width)
getComputedStyle(box).width 返回元素内容区的大小(带单位)
scrollWidth/scrollHeight属性返回元素大小(包含被滚动条卷去的大小)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Test</title> </head> <style> *{padding: 0;margin: 0;} #box{ width: 400px; height: 200px; padding: 10px; border:2px solid red; } #big{ width: 600px; height: 300px; background-color: pink; } </style> <body> <div id="box"> <div id="big"></div> </div> </body> </html> <script> var box = document.querySelector('#box') // 元素总大小 console.log(box.offsetWidth) // 424 console.log(box.offsetHeight) // 224 // 元素可见大小 console.log(box.clientWidth) // 420 console.log(box.clientHeight) // 220 // 元素内容区大小 var width = getComputedStyle(box).width var height = getComputedStyle(box).height console.log(width,height) // 400px 200px // 元素大小(包含被滚动条卷去的大小) console.log(box.scrollWidth) //610 console.log(box.scrollHeight) //310 </script>
2.Dom元素的位置信息
offsetLeft/offsetTop属性:获取当前元素到父级定位元素边框的距离,注意,是父级定位元素!!!
scrollLeft/scrollTop属性:获取和设置当前元素被滚动条卷去的宽度和高度(前提是该元素的子元素超出父元素且出现滚动条)
还可以为scrollLeft/scrollTop属性设置大小,让元素的滚动条滚动到相应的位置
<script> var box = document.querySelector('#box') // 让box元素回到顶部 box.scrollTop = 0 // 让box元素回到最左边 box.scrollLeft = 0 </script>
3.获取屏幕大小
window.screen.width/height:这个属性的值是静态的,不会随着浏览器窗口的收缩而改变。
document.documentElement.clientWidth:这个是html标签的可视宽度,他的大小取决于当前浏览器的窗口大小。
<script> var screen_width = window.screen.width var screen_height = window.screen.height document.write('当前屏幕宽高为'+screen_width+'*' + screen_height) var html_width = document.documentElement.clientWidth var html_height = document.documentElement.clientHeight document.write('<br />'+'当前html标签宽高为'+html_width+'*' + html_height) </script>
pc端表现(14寸笔记本-浏览器全屏)
当前屏幕宽高为1366*768 当前html标签宽高为1366*625
pc端表现(14寸笔记本-浏览器窗口化)
当前屏幕宽高为1366*768 当前html标签宽高为767*604
移动端未设置viewport时(iphone6s plus)
当前屏幕宽高为414*736 当前html标签宽高为980*1472
移动端设置完美视口
<meta name="viewport" content="initial-scale=1.0"> 当前屏幕宽高为414*736 当前html标签宽高为414*622