Javascript 獲取 Dom 樣式的方法有哪些
獲取方法
一、element.style 屬性
獲取dom元素的style屬性
例子:
// index.html <div id="el" style="width:300px">content</div> <script> var el = document.getElementById('el') console.log(el.style.width) // => '300px' console.log(el.style.height) // => '' </script>
這種方式可獲取,也可修改值。優點是相容性比較好。缺點是有侷限性,只能通過寫入內聯才能獲取樣式。
二、element.currentStyle 屬性
只支援IE6~8.....
三、window.getComputedStyle(element) 方法
getComputedStyle是一個可以獲取當前元素所有最終使用的CSS屬性值也可以獲取偽類中的屬性。返回的是一個CSS樣式宣告物件([object CSSStyleDeclaration]),只讀。文章'獲取元素CSS值之getComputedStyle方法熟悉'
支援IE8以上
例子:
var el = document.getElementById('el') console.log(window.getComputedStyle(element).getPropertyValue('width'))
jQuery的CSS()方法就是用此方法的,
四、element.getBoundingClientRect()方法
var el = document.getElementById('el') el.getBoundingClientRect().width // 獲取寬度
相關用法文章:
小tips: 滾動容器尺寸變化子元素視覺上位置不變JS實現
獲取寬度的方法總結
content-box:預設情況下 box-sizing: content-box
相容性 | 方法 |
---|---|
IE5.5+ | element.style.width |
IE6~8 | element.currentStyle.width |
IE8以上 | window.getComputedStyle(element).getPropertyValue('width') |
IE8以上 | element.getBoundingClientRect().width |
padding-box:
相容性 | 方法 |
---|---|
IE5.5+ | element.clientWidth |
IE5.5+ | element.scrollWidth |
border-box:
相容性 | 方法 |
---|---|
IE5.5+ | element.offsetWidth |
margin-box:
沒有原生介面直接獲取
計算方法:
1、獲取元素padding-box寬度
2、獲取元素margin-left和margin-right大小
3、三個數值相加
例子:
var box = document.querySelector('.box') var paddingWidth = box.clientWidth; var marginLeft = +window.getComputedStyle(box).getPropertyValue('margin-left').match(/^\d*/)[0] var marginRight = +window.getComputedStyle(box).getPropertyValue('margin-right').match(/^\d*/)[0] var res = paddingWidth + marginLeft + marginRight
jQuery api:
盒子範圍 | 方法 |
---|---|
content-box | $().width() |
padding-box | $().innerWidth() |
border-box | $().outerWidth() |
margin-box | $().outerWidth(true) |
相關文章
- js獲取dom節點的方法有哪些JS
- 【JavaScript】DOM之樣式操作JavaScript
- python元組有哪些獲取元素的方法Python
- 寫一個獲取非行間樣式的方法
- 獲取React元件的DOMReact元件
- Javascript獲取原型的四種方法JavaScript原型
- javascript函式有哪些JavaScript函式
- [譯] 使用 closest() 函式獲取正確的 DOM 元素函式
- Javascript 怎樣獲取副檔名?JavaScript
- JS基礎_獲取元素的樣式JS
- vue1和vue2獲取dom元素的方法Vue
- dom元素操作獲取等
- 前端 | Vue nextTick 獲取更新後的 DOM前端Vue
- DOM節點的種類有哪些?
- 動態生成DOM元素的高度及行數獲取與計算方法
- JavaScript獲取css的值JavaScriptCSS
- 滑鼠滑過和獲取焦點樣式
- 不妨這樣去理解JavaScript中的dom和bomJavaScript
- 獲取或操作DOM元素特性的幾種方式
- created mounted 動態獲取資料渲染後,獲取DOM問題
- 佳德智城:獲取流量扶持的誤區有哪些?
- JavaScript 系列--JavaScript一些奇淫技巧的實現方法(一)簡短的sleep函式,獲取時間戳JavaScript函式時間戳
- 【Javascript】獲取選中的文字JavaScript
- JavaScript獲取img的原始尺寸JavaScript
- jQuery捕獲-獲取DOM元素內容和屬性jQuery
- 獲取方法
- 分散式爬蟲有哪些使用代理IP的方法?分散式爬蟲
- JavaScript獲取給定字元的unicodeJavaScript字元Unicode
- 09 獲取需求的方法
- 獲取IP地址的途徑有哪些?要如何保護IP地址不被竊取?
- 怎樣獲取jstree的節點資料_大資料獲客是怎樣獲取精準客源的JS大資料
- JavaScript—獲取引數(23)JavaScript
- JavaScript 獲取當前月份JavaScript
- 獲客渠道的新增有哪些?
- JavaScript 獲取指定區間的數字JavaScript
- JavaScript獲取table表格指定列的值JavaScript
- 常見的Javascript獲取時間戳JavaScript時間戳
- JavaScript獲取圖片的真實大小JavaScript