如何在 JavaScript 中获取 CSS 值

640?wx_fmt=jpeg

来源 | https://zellwk.com/blog/css-values-in-js/

有时候单独的使用CSS是不够的。您可能需要使用JavaScript控制CSS值。但是你如何在JavaScript中获得CSS值?

有两种可能的方式,取决于您是尝试获取内联样式还是计算样式。

获取内联样式



内联样式是存在于 HTML style 属性(attribute)中的样式。

HTML 代码:

 
 
  1. <div class="element" style="font-size: 2em; color: red;">

Red hot chili pepper!</div>

要获取内联样式,可以使用 style 属性(property)。

JavaScript 代码:

 
 
  1. const element = document.querySelector('.element')

  2.  

  3. const fontSize = element.style.fontSize

  4. console.log(fontSize) // 2em

  5.  

  6. const color = element.style.color

  7. console.log(color) // red

获取计算样式

如果您的样式是在CSS文件中编写的,则需要获取计算出的样式。为此,您可以使用 getComputedStyle 。

它有两个值:

JavaScript 代码:

 
 
  1. const style = getComputedStyle(Element, );

这里的Element是指您使用 querySelector 选择的元素。

这里的 pseudoElement 指的是你想要获取的伪类元素的字符串(如果有的话)。如果您没有选择伪元素,则可以省略这个值。

让我们通过一个例子来帮助理解。假设您有以下HTML和CSS:

HTML 代码:

 
 
  1. <div class="element"> This is my element </div>

CSS 代码:

 
 
  1. .element { background-color: red }

首先,您需要使用 querySelector 选择元素。然后,使用 getComputedStyle 获取元素的样式。

JavaScript 代码:

 
 
  1. const element = document.querySelector('.element')

  2. const style = getComputedStyle(element)

如果你用 console.log(style) 打印,您应该看到一个包含每个CSS属性及其各自值的对象。

640?wx_fmt=png

图注:getComputedStyle 返回一个包含每个CSS属性及其各自值的对象

您还可以在Chrome和Firefox的开发工具中看到此对象。

对于Firefox开发工具,请查看 “Inspector”,“Computed”。

640?wx_fmt=png

图注:Firefox dev工具计算样式选项卡

对于Chrome开发工具,请查看“Elements” 面板。 如果开发工具窗口很大,您可以在右侧面板上看到计算出的样式。 如果开发工具窗口很小,您可以在“Computed”选项卡下查看。

640?wx_fmt=png

图注:Chrome dev工具计算样式选项卡

要获取CSS属性的值,请以驼峰形式编写属性。

JavaScript 代码:

 
 
  1. const style = getComputedStyle(element)

  2.  

  3. const backgroundColor = style.backgroundColor

  4. console.log(backgroundColor) // rgb(0, 0, 0)

注意:getComputedStyle 是只读的。您无法使用 getComputedStyle 设置CSS值。

注意2:getComputedStyle 获取计算出的CSS值。你将从 getComputedStyle 获得 px 单位值,而不是像 em和 rem 这样的相对单位。

从伪类元素中获取样式

要从伪类元素获取样式,您需要将伪类元素的字符串作为第二个参数传递给 getComputedStyle 。

HTML 代码:

 
 
  1. <div class="element"> This is my element </div>

CSS 代码:

 
 
  1. element { background-color: red }

  2. .element::before { content: "Before pseudo element"; }

JavaScript 代码:

 
 
  1. const element = document.querySelector('.element')

  2. pseudoElementStyle = getComputedStyle(element, '::before')

  3.  

  4. console.log(pseudoElementStyle.content)

// Before pseudo element

小结

您可以通过两种方法在JavaScript中获取CSS值:

  • style 属性(property)

  • getComputedStyle 

style 属性仅检索内联CSS值,而 getComputedStyle 样式检索计算的CSS值。


640?wx_fmt=jpeg

640?wx_fmt=jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值