在 web 開發中,獲取元素的 CSS 屬性是一件非常常見的事情。那么有沒有一種簡單的方式可以直接從元素中獲取屬性,而不必在樣式表中查找呢?
答案是肯定的,CSSOM(CSS Object Model)提供了一個名為getComputedStyle
的函數,可以獲取元素的所有 CSS 屬性。使用該函數非常簡單,只需要將需要獲取屬性的元素作為參數傳入即可。下面是一個示例:
const element = document.querySelector('#myElement'); const styles = window.getComputedStyle(element); const backgroundColor = styles.backgroundColor;
在示例中,我們首先使用querySelector
方法獲取了一個 id 為myElement
的元素,然后將該元素作為參數傳給getComputedStyle
函數。最后,我們通過訪問返回的 styles 對象中的backgroundColor
屬性來獲取背景顏色。
需要注意的是,getComputedStyle
獲取的是計算出的 CSS 屬性,而不是在 HTML 中定義的屬性。這意味著如果樣式是通過繼承或其他方式計算出來的,獲取到的值可能與在樣式表中定義的值不同。此外,該函數返回的屬性值是一個字符串,需要進行進一步的解析和轉換才能使用。
除了getComputedStyle
,還有一個名為currentStyle
的函數可以用于獲取元素的 CSS 屬性。不過,currentStyle
只適用于 IE 瀏覽器,不支持其他現代瀏覽器。因此,在編寫跨瀏覽器的代碼時,應該使用getComputedStyle
函數。