Css And Javascript: Function To Change Color Effects Hover Style
I have an element where I set a text color and a different text color for the hover state in the CSS. I have some javascript so that when I click the element, it changes the text c
Solution 1:
Instead of setting the color directly, it would be cleaner (and more effective to use a class).
CSS :
#test {color: blue;}
#test.active {color:red;}
#test:hover {color:green;}
JavaScript :
functionchange() {
document.getElementById("test").className='active';
}
Solution 2:
Use classes!
#test {color: blue;}
#test:hover, #test.foo:hover {color:green;}
#test.foo { color : #cc0000 }
Basic JavaScript:
functionchange() {document.getElementById("test").className = "foo"; };
Of course you would have to toggle the classes.
Solution 3:
The issue that you are running into is the concept of specificity in css. Specificity controls what rules get applied and in what order. Because the javascript updates the style element, it will override the specificity and erase all previous rules regarding the color styling. so instead add a class eg "clicked" to the element. where clicked is your new color
.clicked{color:red}
function change() {document.getElementById("test").class += " clicked"};
This will do what you need.
Solution 4:
You can use !important
JSFIDDLE
#test:hover {color:green!important;}
Post a Comment for "Css And Javascript: Function To Change Color Effects Hover Style"