只讀屬性
,返回當前元素與父輩元素之間的距離(不包括邊框)。其中父輩元素的取法是有門道的:css
(1).若父輩元素中有定位
的元素,那麼就返回距離當前元素最近的定位元素的距離。jquery
(2).若父輩元素中沒有定位元素,那麼就返回相對於body
的距離。工具
(3).若當前元素具備固定定位(position:fixed;),那麼返回的是當前元素與可視窗口
的距離。spa
<div id="a" style="width:400px;height:400px;margin:100px auto 0;background-color: red;">
<div id="b" style="position:relative;width:200px;height:200px;margin:100px auto 0;background-color: blue;">
<div id="c" style="position: fixed;width:50px;height:50px;top:200px;left: 200px;background-color: green;"></div>
<div id="d" style="position: absolute;top:50px;left: 50px;height:100px;width:100px;background-color: yellow">
<div id="e" style="width:50px;height:50px;margin:25px auto 0;background-color: darkred;"></div>
</div>
</div>
</div>
<script>
var a=document.getElementById("a");
var b=document.getElementById("b");
var c=document.getElementById("c");
var d=document.getElementById("d");
var e=document.getElementById("e");
console.log("e:"+ e.offsetLeft, e.offsetTop);// e: 25,25。以具備絕對定位的父輩元素d爲參照
console.log("d:"+ d.offsetLeft, d.offsetTop);// d: 50,50。以其相對定位的父元素b爲參照
console.log("c:"+ c.offsetLeft, c.offsetTop);// c: 200,200。以可視窗口爲參照
console.log("b:"+ b.offsetLeft, b.offsetTop);// b: 612,100。以body爲參照
console.log("a:"+ a.offsetLeft, a.offsetTop);// a: 512,100。以body爲參照
</script>
複製代碼
offsetHeight、offsetWidth返回的是數值
;style.height、style.width返回的是字符串
,單位是「px」code
offsetHeight、offsetWidth只讀
;style.height、style.width可讀寫
ip
offsetHeight、offsetWidth包括元素的邊框
、內邊距
;offsetWidth=leftborder+leftpadding+width+rightpadding+rightborder;文檔
style.height、style.width只包括元素height、width字符串
若是沒有爲元素設置高度,offsetHeight會根據內容獲取高度值
,style.height會返回undefind
get
jquery中使用$(obj).height()
、$(obj).css('height')
來獲取元素的高度,返回的是一個帶有單位的字符串it
<div id="a" style="width:50px;height:50px;border:5px solid red;padding:10px;margin:50px;background: black;"></div>
<script>
var a=document.getElementById("a");
console.log(a.offsetHeight, a.offsetWidth);//80,80
console.log(a.style.height, a.style.width);//50px,50px
</script>
複製代碼
只讀屬性
,返回當前節點的可視寬度
和可視高度
(不包括邊框、外邊距)(包括內邊距)clientHeight = topPadding + bottomPadding+ height - scrollbar.height
。
<div id="a" style="width:100px;height:50px;border:25px solid blue;background-color:red;overflow: auto;">
hello world!<br> hello world!<br> hello world!<br> hello world!<br> hello world!<br> hello world!<br> hello world!<br> hello world!<br> hello world!<br>
</div>
<script>
var a=document.getElementById("a");
console.log("a:"+ a.clientWidth, a.clientHeight);// a: 83,50。不包括邊框和滾動條(17px)
</script>
複製代碼
只讀屬性
,返回當前節點的實際寬度
和實際高度
(不包括邊框),沒有滾動條時和clientWidth和clientHeight同樣
上例中:
console.log("a:"+ a.scrollWidth, a.scrollHeight);// a: 83,324。不包括邊框和滾動條的寬度,返回實際高度和寬度
複製代碼
可讀寫屬性
scrollTop:返回網頁滾動條垂直方向
滾去的距離; scrollLeft:返回網頁滾動條水平方向
滾去的距離;
只讀屬性
,返回窗口文檔顯示區的高度和寬度,不包括菜單欄、工具欄和滾動條的寬高。 IE不支持這些屬性。它用document.documentElement
或 document.body
(與 IE 的版本相關)的 clientWidth
和 clientHeight
屬性做爲替代。
outerHeight屬性設置
或返回
一個窗口的高度
,包括全部界面元素(如工具欄/滾動條)。 outerWidth屬性設置
或返回
窗口的寬度
,包括全部的界面元素(如工具欄/滾動)。