JS中獲取CSS樣式的方法


1.對於內聯樣式,可以直接使用ele.style.屬性名(當然也可以用鍵值對的方式)獲得。注意在CSS中單詞之間用-連接,在JS中要用駝峰命名法

<div id="dv" style="width: 100px;height: 200px;background-color: pink; border: 1px solid green;"></div>
    <script>
        var dv = document.getElementById("dv");
        console.log(dv.style.width);    //100px
        console.log(dv.style["height"]);//200px
        console.log(dv.style.backgroundColor);//pink
        console.log(dv.style.border);//1px solid green
    </script>

2.對於外聯樣式表或者頭部的style標簽內的樣式表里的樣式內容,用上面的方法無法獲得

可以使用js中的window.getComputedStyle(element,pseudoElement).屬性名的方法獲得。獲取的樣式是元素在瀏覽器中最終渲染效果的樣式

其中window.可以省略

其中pseudoElement: 可選,偽類元素,當不查詢偽類元素的時候可以忽略或者傳入 null。

<style>
        #dv2{
            width: 100px;
            height: 200px;
            background-color: #0086b3;
            border: 1px solid red;
        }
    </style>
 <div id="dv2" style="border-color: black"></div>
    <script>
        var dv2 = document.getElementById("dv2");
        console.log(dv2.style["height"]);//空值,沒有內聯該樣式無法獲取
        console.log(dv2.style.backgroundColor);//空值,沒有內聯該樣式無法獲取
        console.log(window.getComputedStyle(dv2,null).width);//100px
        console.log(getComputedStyle(dv2,null).backgroundColor);//rgb(0, 134, 179)
        console.log(getComputedStyle(dv2,null).border); //1px solid rgb(255, 0, 0),內聯樣式修改成了黑色,內聯的權重更高。
        console.log(getComputedStyle(dv2,null)["border"]); //1px solid rgb(255, 0, 0)鍵值對的方式當然也行

    </script>

3.修改CSS樣式,只能通過ele.style.屬性名的方式修改CSS樣式,不能通過getComputedStyle()的方法修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM