我如何使用 :hover 更改使用 javascript 创建的元素属性?
How can I use :hover to change element properties which were created with javascript?
我有一个用 javascript 创建的元素(在本例中它是 div 元素)。 Javascript 也用于设置元素背景颜色的样式。当我这样做时,css :hover
元素更改背景颜色不起作用。
script.js
box = document.createElement("div");
box.className = "box";
box.style.backgroundColor = "red";
document.body.appendChild(box);
style.css
.box {
width:100px;
height:100px;
}
.box:hover {
background-color: green; /*doesn't work*/
}
经过测试,我发现使用js应用背景色同时抵消了背景色的css和:hover
中的背景色css。 :hover
中定义的其他属性确实有效,但前提是在使用 js 创建元素期间尚未定义。
我正在寻找能够使用 js 创建任何颜色的 div 元素并在悬停时将颜色更改为绿色的解决方案(它不一定必须与 css).
这样:
你的代码没有,因为 html 元素样式属性优先于 css
box = document.createElement("div");
box.className = "box";
document.body.appendChild(box);
.box {
width : 100px;
height : 100px;
background-color : red;
}
.box:hover {
background-color : green;
}
!important
覆盖其他样式:
box = document.createElement("div");
box.className = "box";
box.style.backgroundColor = "red";
document.body.appendChild(box);
.box {
width:100px;
height:100px;
}
.box:hover {
background-color: green !important;
}
我有一个用 javascript 创建的元素(在本例中它是 div 元素)。 Javascript 也用于设置元素背景颜色的样式。当我这样做时,css :hover
元素更改背景颜色不起作用。
script.js
box = document.createElement("div");
box.className = "box";
box.style.backgroundColor = "red";
document.body.appendChild(box);
style.css
.box {
width:100px;
height:100px;
}
.box:hover {
background-color: green; /*doesn't work*/
}
经过测试,我发现使用js应用背景色同时抵消了背景色的css和:hover
中的背景色css。 :hover
中定义的其他属性确实有效,但前提是在使用 js 创建元素期间尚未定义。
我正在寻找能够使用 js 创建任何颜色的 div 元素并在悬停时将颜色更改为绿色的解决方案(它不一定必须与 css).
这样:
你的代码没有,因为 html 元素样式属性优先于 css
box = document.createElement("div");
box.className = "box";
document.body.appendChild(box);
.box {
width : 100px;
height : 100px;
background-color : red;
}
.box:hover {
background-color : green;
}
!important
覆盖其他样式:
box = document.createElement("div");
box.className = "box";
box.style.backgroundColor = "red";
document.body.appendChild(box);
.box {
width:100px;
height:100px;
}
.box:hover {
background-color: green !important;
}