当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何获取其他主题模式下css变量的值?

吴宏扬
2023-12-26
:root,[data-bs-theme=light] {  --bs-body-color: #212529;}[data-bs-theme=dark] {  --bs-body-color: #dee2e6;}

上面是bootstrap.css的部分代码。

const body = document.bodyconst getRealColor = () => {  return window.getComputedStyle(body).getPropertyValue('--bs-body-color')}console.log(getRealColor())

上面的js代码,目前是可以获取到当前主题模式下的颜色值。
请问如何在不改变页面颜色模式的情况下,通过js获取到其他主题模式下的css变量的值?

没有做过尝试,希望获取对应js代码

共有3个答案

靳金鹏
2023-12-26

原生 JS 应该没有办法,只能自己手动解析 CSS。

或许你可以手动构建一个看不见的节点,然后把样式赋给它,并且获取它的样式。

丰岳
2023-12-26

解析css提取出来
DEMO

拓拔安邦
2023-12-26

要获取其他主题模式下的CSS变量值,你可以使用JavaScript的window.getComputedStyle()方法来获取元素的计算样式,并从中获取CSS变量的值。但是,由于CSS变量可能在不同主题下具有不同的值,因此你需要先确定要获取哪个主题下的变量值。

以下是一个示例代码,演示如何获取其他主题模式下的CSS变量值:

// 获取当前主题模式下的CSS变量值const currentThemeColor = window.getComputedStyle(body).getPropertyValue('--bs-body-color');console.log('当前主题模式下的颜色值:', currentThemeColor);// 获取其他主题模式下的CSS变量值const darkThemeColor = window.getComputedStyle(document.querySelector('[data-bs-theme="dark"]')).getPropertyValue('--bs-body-color');console.log('暗主题模式下的颜色值:', darkThemeColor);const lightThemeColor = window.getComputedStyle(document.querySelector('[data-bs-theme="light"]')).getPropertyValue('--bs-body-color');console.log('亮主题模式下的颜色值:', lightThemeColor);

在上面的代码中,我们首先使用window.getComputedStyle(body)获取当前主题模式下的CSS变量值。然后,我们使用document.querySelector('[data-bs-theme="dark"]')document.querySelector('[data-bs-theme="light"]')选择器来选择其他主题模式下的元素,并使用window.getComputedStyle()方法获取它们的计算样式。最后,我们通过调用getPropertyValue('--bs-body-color')来获取对应的CSS变量值。

请注意,为了使代码能够正确运行,你需要确保页面中存在具有相应data-bs-theme属性的元素,并且这些元素已经被渲染到DOM中。另外,你还可以根据需要选择其他主题模式下的元素,并根据需要进行调整。

 类似资料:
  • 问题内容: 我需要在其他班上变数。我怎样才能做到这一点? 所以我尝试在Textcl.class中使用,但是得到了。 问题答案: 您将得到空值,因为inString从未按Robert Kilar在注释中正确指出的那样进行初始化。 您可以通过使用类名来引用静态变量。 示例ClassName.variablename。就你而言 运行您的主类。当您运行inString时,将在该类的构造函数中对其进行初始化

  • 以下设置按预期在上运行: 但是,它没有将自定义主题varaiable添加到生成的CSS文件中: 项目\src\assets\tailwind。css 项目\tailwind.config.js 项目\dist\css\index。cae56bc4。css 问:作为构建过程的一部分,有没有办法在生成的CSS文件中获取特定于主题的CSS变量?

  • 问题内容: 我想要可以使用PHP访问的JavaScript变量的值。我正在使用下面的代码,但它没有在PHP中返回该变量的值。 这给了我以下错误:- 我使用的另一个PHP代码给出了空值 当我回声时,它什么也没显示。 问题答案: 您将需要使用JS将其中包含变量的URL发送回去,例如:http : //www.site.com/index.php?uid=1 通过在JS中使用如下代码: 然后在PHP代码

  • 问题内容: 我对CSS和JavaScript还是很陌生,我想知道是否可以创建一个脚本来允许您更改网站使用的样式表。 说:您有一个绿色主题,其中的一切都是绿色阴影。您会怎么做,以便用户可以通过按一下按钮将其更改为红色? 有谁知道如何做到这一点? 问题答案: 您可以在链接标签上设置一个ID并在运行时切换CSS。 的HTML JS

  • 以下是经典的实践中的一致性: 当线程A写入一个易失性变量,随后线程B读取相同的变量时,A在写入易失性变量之前可见的所有变量的值在读取易失性变量后变得对B可见。 我不确定我真的能理解这句话。例如,在这种情况下,所有变量的含义是什么?这是否意味着使用对使用非volatile变量也有副作用<在我看来,这句话有一些我无法理解的微妙含义<有什么帮助吗?

  • 我想获取所选框的值,并将其保存在PHP变量中。我想保存并回显变量。请帮忙