首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在 JavaScript 中获取 CSS 值

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

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

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

获取内联样式

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

HTML 代码:

Red hot chili pepper!

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

JavaScript 代码:

constelement = document.querySelector('.element')

constfontSize = element.style.fontSize

console.log(fontSize)// 2em

constcolor = element.style.color

console.log(color)// red

获取计算样式

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

它有两个值:

JavaScript 代码:

conststyle = getComputedStyle(Element, );

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

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

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

HTML 代码:

This is my element

CSS 代码:

.element { background-color: red }

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

JavaScript 代码:

constelement = document.querySelector('.element')

conststyle = getComputedStyle(element)

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

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

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

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

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

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

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

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

JavaScript 代码:

conststyle = getComputedStyle(element)

constbackgroundColor = style.backgroundColor

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

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

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

从伪类元素中获取样式

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

HTML 代码:

This is my element

CSS 代码:

element { background-color: red }

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

JavaScript 代码:

constelement = document.querySelector('.element')

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

console.log(pseudoElementStyle.content)

// Before pseudo element

小结

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

属性(property)

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190115B1ENIZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券