The CSS !important rule is used to add importance to a property/value to override all styling rules for that specific property on that element.

In the following, we have three rules for styling a paragraph. The browser will normally apply the last rule it finds. However, because the first rule uses an #id, it has more specificity than the second rule which uses a .class and the final rule which just uses the p tag. So the browser will apply the first rule and the text will be red.

				
					p#my_paragraph {
    color: red;
}
p.my_paragraph {
    color: blue;
}
p {
    color: green;
}
				
			

Note
Because of something called specificity, the styles set for an element’s tag (for instance, p tag), will be overruled by one set for the .class of the element, which will be overruled by one set for the #id of the element.

In the following we have the same three rules, but for the third, with the weakest specificity, we add the !important rule. This means that even though it is the least specific of the rules, the browser will use it because it has “added importance” which gives it precedence over the others.

				
					p#my_paragraph {
    color: red;
}
p.my_paragraph {
    color: blue;
}
p {
    color: green !important;
}
				
			

Note
The only way to override an !important rule is to include another !important rule on a declaration with the same or higher specificity. This can be a problem if you overuse the !important rule, as you will find yourself constantly struggling to overcome it at various points in the document.