【发布时间】:2016-10-19 21:34:18
【问题描述】:
我可以使用 CSS 来设置元素的样式,以便它在活动时改变外观。例如:
.test:active {
background-color: yellow;
}
但是,如果我想将其应用于特定元素而不是按类,我该如何在 javascript 中执行此操作?我可以使用以下方法设置默认状态的背景颜色:
document.getElementById("myid").style.backgroundColor = "yellow"
但我不能这样做:
document.getElementById("myid").style.active.backgroundColor = "yellow"
我不希望 javascript 响应元素是否处于活动状态 - 我想在 javascript 中进行静态初始化,然后使特定元素在活动时具有不同的颜色。
如果保证元素有一个 id,我可以使用 javascript 附加一个使用 #id 选择器的样式表规则,但我没有这个保证。我可以确定的是,我将获得一个元素的引用,并且我需要设置它的样式,以便它在活动时具有不同的颜色。
【问题讨论】:
-
为什么不给元素添加自己的样式类呢?
-
@TimoSta 如果没有其他办法,我可能不得不这样做。是不是不能通过javascript访问这部分CSS?
-
我不认为你可以使用 JavaScript 使用 css 伪类规则。
-
我很困惑。如果您希望特定元素在活动时具有特定样式,则只需将
test类添加到该元素即可。你想完成什么没有?伪类仅可用作 CSS 规则中的选择器的一部分,如果您考虑一下,这是有道理的。通过 JS 处理它们的唯一方法是使用 CSSOM API 编写自己的 CSS 规则,而且确实需要这样做的情况很少见。
标签: javascript css