element.style vs window.getComputedStyle
这两种方式都可以获取元素的样式,但是它们之间有什么区别呢?首先让我们看看在前端开发中,有哪几种方式可以设置样式。
inline style(内联样式)
内联样式是指直接在元素上设置样式,比如下面的代码中,<div>
元素上设置了style
属性,这就是内联样式。
1 | <div style="color: red;">Hello World!</div> |
inner style(内部样式)
内部样式是指在<head>
标签中添加<style>
标签,然后在<style>
标签中添加样式,比如下面的代码中div {color: red;}
就是内部样式。
1 | <head> |
external stylesheet(外部样式表)
外部样式表是指将样式单独放在一个文件中,然后在<head>
标签中使用<link>
标签引入,比如下面的代码中,<link>
标签引入了style.css
这个文件,这就是外部样式表。
1 | <!-- index.html --> |
1 | /* style.css */ |
element.style 和 window.getComputedStyle的区别
再来看element.style
和window.getComputedStyle
的区别:
element.style
只能获取内联样式,window.getComputedStyle
可以获取内联样式、内部样式和外部样式表。
所以大多数情况下,我们都是使用window.getComputedStyle
来获取元素的样式。
示例代码
下面的代码中,style.css
文件中设置了外部样式表。
1 | <head> |
1 | /* style.css */ |
1 | const div = document.getElementById("my-div"); |
可以看到,element.style
只能获取内联样式,而window.getComputedStyle
可以获取内联样式、内部样式和外部样式表。