javascript中的高和寬有很多種
寬:width,offsetWidth,clientWidth,scrollWidth,availWidth
高: height,offsetHeight,clientHeight,scrollHeight,availHeight
widht和height很奇怪,看如下代碼
<body>
<script type="text/javascript">
alert(document.body.width);
</script>
</body>
彈出對話方塊為undefined.如果是alert(document.body.style.width);則彈出對話方塊為空白字串.也就是說不單獨設width屬性,那在javascript中用width屬性無法得到值(height也一樣),如果在style中沒有指定width屬性,那用script得到style.width將為空白字串,
如果在style上設了值,不管是否指定單位px,得到的值將帶單位px,不能直接用於計算.
以下是長針對document.body對象而言,如果是其他對象,那又不同
offsetWidth是網頁可見地區寬(不包括捲軸和邊線);
clientWidth也是網頁的可見地區(但是包括捲軸和邊線);
scrollWidth是網頁本文全文寬(是針對本文而言,正常情況下和offsetWidth是同一個值,但是offsetHeigth和scrollHeight不是一樣的值,scrollHeight有可能會大於clientHeight和為offsetHeight,也有可能小於clientHeight和offsetHeight);
availWidth是針對window.screen對象而言,顯示為整個螢幕的可用寬度,一般和電腦的螢幕設定的分辨有關,正常情況下相等.
window.screen.availHeight是整個螢幕的可用高度,這個可用,當然指除了工具條,狀態列等高度.
window.screen.height和window.screen.width純粹和解析度相等.
如果不是document.body對象,是其他對象,如div.這幾個屬性會不一樣
scrollWidth 是對象的實際內容的寬,不包邊線寬度,會隨對象中內容的多少改變(內容多了可能會改變對象的實際寬度)。clientWidth 是對象可見的寬度,不包捲軸等邊線,會隨視窗的顯示大小改變。 offsetWidth 是對象的可見寬度,包捲軸等邊線,會隨視窗的顯示大小改變。
注意:如果在層上不設width和height,要用指令碼得到高和寬,則只能和scrollWidth和scrollHeight.