[英]CSS and Javascript: Function to change color effects hover style
我有一个元素,我在其中为 CSS 中的悬停状态设置了文本颜色和不同的文本颜色。 我有一些 javascript,因此当我单击元素时,它会更改元素的文本颜色。 它工作正常,除了它还会影响悬停 CSS,我希望它与预单击的悬停 CSS 保持相同。 无论如何要阻止悬停 css 受到影响或设置悬停 CSS?
CSS:
#test {color: blue;}
#test:hover {color:green;}
HTML:
<div id="test" onClick="javascript:change()">qwerty</div>
Javascript:
function change() {document.getElementById("test").style.color="#cc0000";};
而不是直接设置颜色,它会更干净(使用类更有效)。
CSS :
#test {color: blue;}
#test.active {color:red;}
#test:hover {color:green;}
JavaScript :
function change() {
document.getElementById("test").className='active';
}
使用类!
#test {color: blue;}
#test:hover, #test.foo:hover {color:green;}
#test.foo { color : #cc0000 }
基本 JavaScript:
function change() {document.getElementById("test").className = "foo"; };
当然,您必须切换课程。
您遇到的问题是 css 中的特异性概念。 特异性控制应用哪些规则以及应用的顺序。 因为 javascript 更新了样式元素,它将覆盖特定性并删除所有先前关于颜色样式的规则。 所以改为向元素添加一个类,例如“单击”。 点击的地方是你的新颜色
.clicked{color:red}
function change() {document.getElementById("test").class += " clicked"};
这将满足您的需求。
你可以使用!important
JSFIDDLE
#test:hover {color:green!important;}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.