JavaScript offsetWidth
offsetWidth 屬性可以返回指定元素的佈局寬度,只讀屬性。
佈局寬度所涵蓋的內容不僅包括 CSS width 寬度,還有其他內容。
屬性的返回值是一個數字(不帶任何單位,預設以畫素計)。
語法結構:
[JavaScript] 純文字檢視 複製程式碼let num = dom.offsetWidth
佈局寬度圖示如下:
紅線之間的尺寸,就是 offsetWidth 屬性的返回值,下面分析一下具體構成:
(1).包含元素的寬度,這個寬度是 CSS width 屬性規定的值。
(2).包含左右內邊距的尺寸。
(3).不包含左右外邊距的尺寸。
(4).包含左側垂直滾動條的寬度(向內佔據寬度)。
上面四條總結會在後面通過程式碼例項進行驗證。
offsetWidth 屬性有幾點再強調一下:
(1).返回值是數值,不帶任何單位,預設單位是畫素。
(2).與CSS width 不同,雖然可能在數值在相等。
(3).如果元素的CSS display 屬性值為none,返回值為0.
(4).offsetWidth 返回值會對數值進行四捨五入取整,假如實際值是260.5,那麼返回261。
如果想要獲取獲取精確的值,推薦使用 getBoundingClientRect() 方法。
瀏覽器相容:
(1).IE 瀏覽器支援此屬性。
(2).edge 瀏覽器支援此屬性。
(3).谷歌瀏覽器支援此屬性。
(4).opera 瀏覽器支援此屬性。
(5).火狐瀏覽器支援此屬性。
(6).safari 瀏覽器支援此屬性。
程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="https://www.softwhy.com/" /> <title>螞蟻部落</title> <style > #ant{ width :100px; line-height :50px; border :10px solid #ccc; padding-left :10px; padding-right :5px; text-align :center; font-size:12px; color:green; } </style> <script> window.onload = ()=> { let oDiv=document.getElementById("ant"); oDiv.innerHTML=oDiv.offsetWidth; } </script> </head> <body> <div id="ant"></div> </body> </html>
將 offsetWidth 屬性值寫入div中,執行效果截圖如下:
對上述程式碼分析如下:
(1).屬性返回值是數值型別,預設以畫素計。
(2).135 = width + border-left + border-right + padding-left + padding-right。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="https://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #box { width :200px; height :100px; line-height :100px; text-align :center; border:10px solid #ccc; padding-left:10px; overflow:auto; } #ant{ width :30px; height :200px; background:green; } </style> <script> window.onload = ()=> { let odiv = document.getElementById("box"); console.log(odiv.offsetWidth); } </script> </head> <body> <div id="box"> <div id="ant"></div> </div> </body> </html>
上述程式碼瀏覽器執行效果截圖如下:
offsetWidth 屬性值谷歌開發者工具控制檯截圖如下:
230 = width(200)+ border-right(10) + border-left(10) + padding-left(10)。
程式碼分析如下:
(1).內部 div 高度較大,父 div 元素出現滾動條。
(2).滾動條有一定的寬度,當前在谷歌瀏覽器下寬度值為 17px,其他瀏覽器可能不同。
(3).offsetWidth 包括滾動條的寬度,滾動條是向內佔據寬度。
注意:滾動條的寬度包括在 width 寬度之內(width 超過滾動條寬度時候)。
相關文章
- JavaScript屬性中的offsetLeft、offsetWidth、clientWidth、scrollLeft、scrollWidth、innerWidJavaScriptclient
- offsetWidth是否包括滾動條
- clientWidth和offsetWidth的區別client
- offsetwidth與style.width 區別
- scrollWidth,clientWidth,offsetWidth的區別client
- dom的寬高 clientWidth offsetWidth scrollWidthclient
- scrollWidth,clientWidth與offsetWidth的區別client
- 元素的尺寸 offsetWidth和clientWidth的區別client
- offsetWidth和offsetHeight屬性用法簡單介紹
- js元素尺寸和位置,包含clientWidth、offsetWidth、scrollWidth等JSclient
- 蒙了嗎?offsetLeft、offsetWidth、scrollTop、scrollWidth、event.pageX
- offsetWidth和clientWidth屬性的區別是什麼client
- display:none的元素無法獲取offsetWidth和offsetHeightNone
- 為什麼給offsetWidth和offsetHeight賦值無效賦值
- clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeightclient
- offsetwidth和style.width的區別是什麼
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- javaScript系列[06]-javaScript和thisJavaScript
- 【JavaScript學習】JavaScript物件建立JavaScript物件
- 【轉】eval()函式(javascript) - [javaScript]函式JavaScript
- [Javascript] How javascript read the property?JavaScript
- JavaScript -"this"JavaScript
- javascript ??JavaScript
- This in JavaScriptJavaScript
- “This” is For JavaScriptJavaScript
- javascript thisJavaScript
- JavaScriptJavaScript
- javaScript系列[05]-javaScript和JSONJavaScriptJSON
- 44 道 JavaScript 難題(JavaScript Puzzlers!)JavaScript
- 【轉向JavaScript系列】AST in Modern JavaScriptJavaScriptAST
- javascript,還是javascript的問題JavaScript
- JavaScript 教程之JavaScript常用框架簡介JavaScript框架
- 《深入理解JavaScript》——2.3 JavaScript有用嗎JavaScript
- 【JavaScript】--JavaScript總結一覽無餘JavaScript
- 【HTML、JAVASCRIPT、CSS】3、Javascript基本概念HTMLJavaScriptCSS
- [Javascript] Understanding JavaScript Proxies with Symbol.toPrimitiveJavaScriptSymbolMIT
- JavaScript EventJavaScript
- JavaScript BackdoorJavaScript