获取元素宽高
getComputedStyle
注意:
-
读取的范围是 content 的值
-
既能读取行内,也可以读取 css 设置的样式
-
只可以读取,不可以设置
-
只支持 IE9 及以上的高级浏览器
geyComputedStyle(oDiv).width getComputedStyle(oDiv).height
currentStyle
-
读取的范围是 content 的值
-
既能读取行内,也可以读取 css 设置的样式
-
只可以读取,不可以设置
-
只支持 IE9 以下的低级浏览器
oDiv.currentStyle.width oDiv.currentStyle.height
style
-
读取的范围是 content 的值
-
只能读取行内,不能读取 css 设置的样式
-
即可以读取,也可以设置
-
高级低级浏览器都支持
oDiv.style.width oDiv.style.height
offsetWidth / offsetHeight
-
读取的范围是 content + padding + border 的值
-
既可以读取行内,也可以读取 css 设置的样式
-
只可以读取,不可以设置
-
高级低级浏览器都支持
oDiv.offsetWidth oDiv.offsetHeight
client
-
clientWidth / clientHeight 获取到的宽高是 content + padding
-
clientTop / clientLeft 获取到的宽高是上边框和左边框
oDiv.clientWidth / oDiv.clientHeight oDiv.clientTop / oDiv.clientLeft
获取网页可视区域宽高
-
高级浏览器
window.innerWidth window.innerHeight
-
低级浏览器
// 标准模式 documnet.documentElement.clientWidth document.documentElement.clientHeight // 怪异模式 / 复杂模式 document.body.clientWidth document.body.clientHeight
-
兼容性写法
function getScreen() { if (window.innerWidth){ return { screenWidth: window.innerWidth, screenHeight: window.innerHeight } }else if (document.compatMode === "CSS1Compat"){ // 判断网页是否为怪异模式 return { screenWidth: document.body.clientWidth, screenHeight: document.body.clientHeight } }else { return { screenWidth: document.documentElement.clientWidth, screenHeight: document.documentElement.clientHeight } } }