我可以在JavaScript中更改CSS属性的值吗?

我可以在JavaScript中更改CSS属性的值吗?,javascript,css,colors,onclick,background-color,Javascript,Css,Colors,Onclick,Background Color,我需要我的网站的颜色主题。所以我打算用CSS制作一个类 #box { width: 500px; height: 300px; } .color1 { background-color: rgb(105, 105, 105); } 将其应用于我的HTML div元素 <div class="color1" id="box"> <button id="darkModeButton">

我需要我的网站的颜色主题。所以我打算用CSS制作一个类

#box {
    width: 500px;
    height: 300px;
}
.color1 {
    background-color: rgb(105, 105, 105);
}
将其应用于我的HTML div元素

<div class="color1" id="box">
    <button id="darkModeButton">Dark Mode</button>
</div>

<div class="color1">
</div>

<div class="color1">
</div>

只需在主体上切换一个类并使用不同的CSS规则

var darkModeButton=document.querySelector(“#darkModeButton”);
darkModeButton.addEventListener(“单击”,函数(){
document.body.classList.toggle(“暗码”);
});
#框{
宽度:500px;
高度:300px;
}
.color1{
背景色:rgb(105、105、105);
}
.darkmode.color1{
背景色:黑色;
}

暗模式

只需在主体上切换一个类,并使用不同的CSS规则即可

var darkModeButton=document.querySelector(“#darkModeButton”);
darkModeButton.addEventListener(“单击”,函数(){
document.body.classList.toggle(“暗码”);
});
#框{
宽度:500px;
高度:300px;
}
.color1{
背景色:rgb(105、105、105);
}
.darkmode.color1{
背景色:黑色;
}

暗模式

您可以使用CSS变量在JS中以编程方式更改它们。请考虑EpasCall的评论。切换类也是一个很好的解决方案

您的CSS:

:root {
  --backgroundColor: rgb(105, 105, 105);
}

#box {
    width: 500px;
    height: 300px;
}
.color1 {
    background-color: var(--backgroundColor);
}
这是JS:

var darkModeButton = document.querySelector("#darkModeButton");

darkModeButton.onclick = function() {
    //something like this:
    document.documentElement.style.setProperty('--backgroundColor',"rgb(55, 55, 55)");;
    //but obiviously this doesn't work so how can i fix this
}

您可以使用CSS变量在JS中以编程方式更改它们。请考虑EpasCall的评论。切换类也是一个很好的解决方案

您的CSS:

:root {
  --backgroundColor: rgb(105, 105, 105);
}

#box {
    width: 500px;
    height: 300px;
}
.color1 {
    background-color: var(--backgroundColor);
}
这是JS:

var darkModeButton = document.querySelector("#darkModeButton");

darkModeButton.onclick = function() {
    //something like this:
    document.documentElement.style.setProperty('--backgroundColor',"rgb(55, 55, 55)");;
    //but obiviously this doesn't work so how can i fix this
}

您可以尝试使用CSS变量:

:root {
    --bg-color: rgb(105, 105, 105);
}
然后使用JS进行更改:

var r = document.querySelector(':root');
r.style.setProperty('--bg-color', 'rgb(55, 55, 55)');

您可以尝试使用CSS变量:

:root {
    --bg-color: rgb(105, 105, 105);
}
然后使用JS进行更改:

var r = document.querySelector(':root');
r.style.setProperty('--bg-color', 'rgb(55, 55, 55)');


暗模式
试验
测试
var darkModeButton=document.querySelector(“darkModeButton”);
darkModeButton.onclick=函数(){
//用法:如果仅用于第一个元素
//让color1=document.querySelector('.color1');
//color1.style.backgroundColor=“rgb(55,55,55)”;
//用法:用于类名为“.color1”的所有元素
让color1=document.querySelectorAll('.color1');
color1.forEach((元素)=>{
element.style.backgroundColor=“rgb(55,55,55)”;
});
}

暗模式
试验
测试
var darkModeButton=document.querySelector(“darkModeButton”);
darkModeButton.onclick=函数(){
//用法:如果仅用于第一个元素
//让color1=document.querySelector('.color1');
//color1.style.backgroundColor=“rgb(55,55,55)”;
//用法:用于类名为“.color1”的所有元素
让color1=document.querySelectorAll('.color1');
color1.forEach((元素)=>{
element.style.backgroundColor=“rgb(55,55,55)”;
});
}
您可以查看一下,您可以创建一组颜色作为浅主题,并将它们添加到
:root
规则中,然后为深主题颜色创建另一个属性

单击按钮,可以切换类和属性,如下所示

const-toggleBtn=document.querySelector(“#暗模式按钮”);
功能切换主题(e){
if(darkModeButton.classList.contains('light')){
document.documentElement.setAttribute('data-theme','dark');
darkModeButton.classList.remove('light');
darkModeButton.classList.add('dark');
}否则{
document.documentElement.setAttribute('data-theme','light');
darkModeButton.classList.remove('dark');
darkModeButton.classList.add('light');
}
}
darkModeButton.addEventListener('click',switchTheme,false)
:根目录{
--原色:#302AE6;
--次要颜色:#536390;
--字体颜色:#424242;
--背景颜色:#fff;
--标题颜色:#292922;
}
[数据主题=“黑暗”]{
--原色:#9A97F3;
--次要颜色:#818cab;
--字体颜色:#e1ff;
--背景颜色:161625;
--标题颜色:#818cab;
}
身体{
字体系列:无衬线;
背景色:var(--bg色);
颜色:var(--字体颜色);
最大宽度:90%;
保证金:0自动;
字号:18px;
}
#暗模式按钮{
利润率:20px0;
}

暗模式
Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一个非正义的城市。相位效率ac直径非放置大鼠。这是一条大鱼。莫利斯埃尼莫莱斯蒂高级前庭。伊蒂亚姆·韦利特·厄罗斯,
要有尊严,就要有尊严。整数nec-augue-mattis、interdum-erat-quis、tincidunt-nunc。梅塞纳是一个继承人,nec福西布斯·图皮斯。Donec semper,orci ac拍卖师scelerisque,nunc mi hendrerit dolor,eget feugiat lacus odio Vita ipsum。
克拉斯·奥古斯·夸姆(Cras augue quam),欧盟车辆前厅,马克西姆斯·维塔内克(maximus vitae neque)。大家庭的生活是美好的,而大家庭的生活是美好的。位于威尼斯大都会的智者维塔·利奥·普尔维纳尔(Maecenas accumsan sapien Vita leo pulvinar)。在前庭的时间里,我们坐在那里。
尼伯尼斯森佩尔埃尼姆ultricies vehicula酒店的Nunc tincidunt,id venenatis odio ante eleifend mauris。因此,我们必须继续努力,继续前进,继续前进。faucibus前同侧前庭
虎鲸和乌龟;
您可以查看一下,您可以创建一组颜色作为浅主题,并将它们添加到
:root
规则中,然后为深主题颜色创建另一个属性

单击按钮,可以切换类和属性,如下所示

const-toggleBtn=document.querySelector(“#暗模式按钮”);
功能切换主题(e){
if(darkModeButton.classList.contains('light')){
document.documentElement.setAttribute('data-theme','dark');
darkModeButton.classList.remove('light');
darkModeButton.classList.add('dark');
}否则{
document.documentElement.setAttribute('data-theme','light');
darkModeButton.classList.remove('dark');
darkModeButton.classList.add('light');
}
}
darkModeButton.addEventListener('click',switchTheme,false)
:根目录{
--原色:#302AE6;
--次要颜色:#536390;
--字体颜色:#424242;
--背景颜色:#fff;
--标题