javascript - getComputedStyle 返回意外的 CSS 值
问题描述
我正在尝试使用 getComputedStyle 访问 CSS 规则的值。以下是我试图访问的值:
background: linear-gradient(to right, red , yellow);
但是当我对此进行测试时,我会收到以下值:
rgba(0, 0, 0, 0) linear-gradient(to right, red, yellow) repeat scroll 0% 0% / auto padding-box border-box
以下是我正在使用的代码:
console.log(window.getComputedStyle(body, null).getPropertyValue("background"));
我想解释为什么要打印这些附加值,为什么我不能只得到写在样式表中的值,以及如何只得到那个值。
解决方案
正如 Chris G 所指出的,background
作为速记一次设置多个速记属性,包括您未指定的属性。因此,除了您指定的梯度之外,速记的计算值background
还包含它应用的所有速记的值——这些都将设置为它们的初始值,因为您没有指定它们而是使用了background
速记。浏览器仍然需要计算这些其他值,以便它可以呈现布局,并假设您可能对这些其他值感兴趣,因此当您要求速记时它会将它们交给您。
如果您只对渐变感兴趣,请background-image
改为获取属性的值。
推荐阅读
- airflow - 气流 S3ToRedshiftTransfer
- python - 从父目录导入 Python 模块/类对象?
- json - 按日期对 JSON 数据进行排序 Google Apps 脚本
- selenium-webdriver - 如何验证是否在 Ruby 的 selenium webdriver 中打开了新选项卡?
- php - PHP数据库表格展示
- docker - Docker :: 为 Synology NAS 上的每个容器分配不同的 IP 地址
- docker - 如何将文件复制到docker中的容器
- python - 如何在 Pandas 的数据框中获取行号和列号?
- sql - 如何选择与表中项目相关的第一行和最后一行?
- javascript - let 变量的作用域