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

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 14:56:49
字體:
來源:轉載
供稿:網友

作為一個初學者,經常會遇到在獲取某一元素的寬度(高度、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的區別(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北宁市| 麦盖提县| 长子县| 康定县| 新平| 芦溪县| 雅江县| 西丰县| 玉门市| 温州市| 皮山县| 固原市| 永靖县| 阜城县| 土默特右旗| 西青区| 金塔县| 上饶县| 湖州市| 措美县| 普安县| 子洲县| 信宜市| 运城市| 申扎县| 遂平县| 塔城市| 吴桥县| 徐水县| 磴口县| 于都县| 鹤山市| 仙居县| 湟中县| 吴旗县| 郁南县| 吉安县| 威海市| 个旧市| 鲜城| 乐业县|