I'm looking for a way to change the CSS rules of my stylesheet imported in the document. So I have an external stylesheet and some class
and div
attributes inside. I want to change one of the rules with JavaScript or jQuery.
Here is an example :
.red{
color:red;
}
So the idea is to do something in JavaScript and the HTML knows that now the color
is another color like this:
.red{
color:purple;
}
But I want to have this rule for every element that I add in the future by the way of append. So if I add a span
with the CSS class .red
, the text has to be purple and not red.
I hope I made it clear.
You jQuery .css()
method to do that.
$('.red').css('color', 'purple');
For multiple rules:
$('.red').css({
'color': 'purple',
'font-size': '20px'
});
When you add dynamic element in future to DOM by the way of append, just give those element some class
or id
and write CSS
rules like above after appending them and they will applied for all dynamically created element.
Add dynamic rules is not a good solution in my point of view. Instead of the you can load some external CSS
file.
But if you need something like dynamic rules add method then:
$('head').append(
$('<style/>', {
id: 'mystyle',
html: '.red {color: purple }'
})
);
And for future use:
$('#mystyle').append(' .someother { color: green; font-size: 13px } ');