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
- javascript如何獲取內聯樣式和外部樣式表的值JavaScript
- python元組有哪些獲取元素的方法Python
- JavaScript獲取元素計算後樣式的封裝JavaScript封裝
- javascript函式有哪些JavaScript函式
- 原生javascript獲取dom元素簡單介紹JavaScript
- 獲取React元件的DOMReact元件
- JavaScript學習9:DOM操作表格及樣式JavaScript
- JavaScript獲取HTML DOM節點元素詳解(轉)JavaScriptHTML
- [譯] 使用 closest() 函式獲取正確的 DOM 元素函式
- Javascript獲取原型的四種方法JavaScript原型
- Javascript 怎樣獲取副檔名?JavaScript
- css獲取實時樣式CSS
- JS基礎_獲取元素的樣式JS
- javascript通用獲取元素樣式屬性值程式碼例項JavaScript
- javascript文字框獲取焦點設定其樣式程式碼JavaScript
- vue1和vue2獲取dom元素的方法Vue
- getComputedStyle()獲取樣式值
- dom元素操作獲取等
- 獲取javascript函式形參的數目JavaScript函式
- Javascript獲取當前時間戳的方法JavaScript時間戳
- 前端新手必看的JavaScript常用DOM操作方法和函式前端JavaScript函式
- React的Refs方法獲取DOM例項 和 訪問子元件方法及屬性React元件
- js獲取元素的方法(獲取html元素的方法)JSHTML
- 使用jquery操作元素的css樣式(獲取、修改等等)jQueryCSS
- js獲取元素的樣式值簡單介紹JS
- 文字框獲取焦點設定樣式
- 動態生成DOM元素的高度及行數獲取與計算方法
- javascript獲取函式定義的引數個數JavaScript函式
- 獲取dom的最終的css屬性值CSS
- JavaScript獲取css的值JavaScriptCSS
- 不妨這樣去理解JavaScript中的dom和bomJavaScript
- 分散式爬蟲有哪些使用代理IP的方法?分散式爬蟲
- jQuery獲取CSS樣式中的顏色值的問題jQueryCSS
- javaScript DOM方法與屬性摘要JavaScript
- created mounted 動態獲取資料渲染後,獲取DOM問題
- 前端 | Vue nextTick 獲取更新後的 DOM前端Vue