国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

基于js中style.width與offsetWidth的區別(詳解)

2024-05-06 16:40:52
字體:
來源:轉載
供稿:網友

作為一個初學者,經常會遇到在獲取某一元素的寬度(高度、top值...)時,到底是用 style.width還是offsetWidth的疑惑。

1. 當樣式寫在行內的時候,如 <div id="box" style="width:100px">時,用 style.width或者offsetWidth都可以獲取元素的寬度。

但是,當樣式寫在樣式表中時,如 #box{ width: 100px; }, 此時只能用offsetWidth來獲取元素的寬度,而style.width所返回的值為空。

2. style.width 獲取的元素寬度只是div的寬度,不包括border、和padding所占的寬度,且寬度值是帶單位px的。

offsetWidth 獲取的元素寬度為width+border+padding的值(不包括margin),且返回值只為一個數值,不帶單位。

如下面的例子所示:

<head>    <script>      window.onload = function(){        var box = document.getElementById('box');        console.log(box.style.width);         console.log(box.offsetWidth);        }</script>  </head>  <body>    <div id="box" style="width:300px; height: 300px; padding:3px; margin: 1px; border: 1px solid red;"></div>  </body>

控制臺輸出的第一個結果為:  300px

控制臺輸出的第二個結果為:  308      注:300+ 3x2 +1x2 = 308, 且不帶單位

3. style.width 也可以在js中用來設置元素的寬度,而offsetWidth不可以。

如下面的例子所示:

<script>      window.onload = function(){        var box = document.getElementById('box');        box.style.width = '200px';        console.log(box.offsetWidth);        console.log(box.style.width);        box.offsetWidth = '400px';        console.log(box.offsetWidth);        console.log(box.style.width);      }    </script>  </head>  <body>    <div id="box" style="width:300px; height: 300px; padding:3px; margin: 2px; border: 1px solid red;"></div>  </body>

控制臺輸出的結果分別為 208     200px     208      200px

也就是說通過style.width 設置寬度成功,而 通過offsetWidth設置寬度失敗。

以上這篇基于js中style.width與offsetWidth的區別(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 子长县| 深州市| 驻马店市| 正宁县| 项城市| 海兴县| 关岭| 榆中县| 正宁县| 内黄县| 含山县| 永嘉县| 会东县| 金坛市| 革吉县| 登封市| 峨边| 德兴市| 冕宁县| 兴安盟| 宝丰县| 云浮市| 贵德县| 长岭县| 沙洋县| 米林县| 府谷县| 巩留县| 宽甸| 尚义县| 岢岚县| 上饶县| 惠东县| 华容县| 松桃| 定南县| 两当县| 乌拉特前旗| 眉山市| 宁晋县| 新干县|