Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Using !important in CSS to Override Styles
📖 Scenario: You are creating a simple webpage with two paragraphs. Both paragraphs have a default blue text color from a CSS rule. However, you want the second paragraph to always show red text color, even if other styles try to change it.
🎯 Goal: Build a webpage with two paragraphs. Use CSS to set the default text color to blue. Then, use !important to make the second paragraph's text color red, overriding the default style.
📋 What You'll Learn
Create an HTML skeleton with two paragraphs inside the <body>.
Add a CSS rule that sets all paragraphs' text color to blue.
Add a CSS rule that sets the second paragraph's text color to red using !important.
Ensure the second paragraph's text color stays red even if other styles try to change it.
💡 Why This Matters
🌍 Real World
Web developers often need to override styles from other CSS files or browser defaults. Using !important helps ensure critical styles apply as intended.
💼 Career
Understanding !important is useful for front-end developers when debugging style conflicts or working with large CSS codebases.
Progress0 / 4 steps
1
Create the HTML structure with two paragraphs
Write the HTML code to create a basic webpage with a <!DOCTYPE html>, <html lang="en">, <head> with a <title>, and a <body> containing exactly two paragraphs. The first paragraph should have the text "This is the first paragraph." and the second paragraph should have the text "This is the second paragraph.".
CSS
Hint
Remember to include the <!DOCTYPE html> declaration and set the language attribute to "en" in the <html> tag.
2
Add CSS to set all paragraphs' text color to blue
Inside the <head> section, add a <style> block. Write a CSS rule that selects all <p> elements and sets their color property to blue.
CSS
Hint
Use the selector p to target all paragraphs and set color: blue;.
3
Add CSS rule to make the second paragraph's text color red with !important
Inside the existing <style> block, add a CSS rule that selects the second paragraph using p:nth-of-type(2). Set its color property to red !important to override the previous blue color.
CSS
Hint
Use the selector p:nth-of-type(2) to target the second paragraph and add !important after the color value.
4
Add a third CSS rule to try to change the second paragraph color to green
Inside the <style> block, add a CSS rule that selects the second paragraph using p:nth-of-type(2) and sets its color property to green. This will test that the !important red color still applies.
CSS
Hint
Even though you add a green color rule, the red color with !important will still show.
Practice
(1/5)
1. What does the !important declaration do in CSS?
easy
A. It makes the style apply only on hover.
B. It comments out the CSS rule.
C. It disables the CSS rule.
D. It forces a style to override other conflicting styles.
Solution
Step 1: Understand the role of !important
The !important declaration is used to make a CSS rule stronger than others that might conflict.
Step 2: Compare with other options
Options A, B, and D describe unrelated CSS behaviors like hover effects, commenting out the CSS rule, or disabling, which !important does not do.
Final Answer:
It forces a style to override other conflicting styles. -> Option D
Quick Check:
!important = override styles [OK]
Hint: Remember: !important beats other styles [OK]
Common Mistakes:
Thinking it comments out CSS
Confusing it with pseudo-classes like :hover
Believing it disables styles
2. Which of the following is the correct syntax to make a CSS color red with !important?
easy
A. !important color: red;
B. color: !important red;
C. color: red !important;
D. color: red important!;
Solution
Step 1: Recall correct !important syntax
The !important keyword comes immediately after the value and before the semicolon, like color: red !important;.
Step 2: Check each option
Options B, C, and D place !important incorrectly or miss the exclamation mark, making them invalid CSS syntax.
Final Answer:
color: red !important; -> Option C
Quick Check:
Correct syntax = value + !important [OK]
Hint: Put !important right after the value [OK]
Common Mistakes:
Placing !important before the property
Missing the exclamation mark
Putting !important after the semicolon
3. Given the CSS below, what color will the paragraph text be?
p { color: blue; }
p { color: red !important; }
medium
A. Blue
B. Red
C. Default browser color
D. No color applied
Solution
Step 1: Identify conflicting styles
There are two rules for p: one sets color to blue, the other to red with !important.
Step 2: Apply !important precedence
The rule with !important overrides the other, so the paragraph text color will be red.
Final Answer:
Red -> Option B
Quick Check:
!important beats normal styles [OK]
Hint: Styles with !important override others [OK]
Common Mistakes:
Ignoring !important and picking first style
Thinking both colors apply simultaneously
Assuming default browser color applies
4. Why does this CSS not make the text green?
p { color: green; }
p.special { color: red !important; }
HTML:
<p class="special">Hello</p>
medium
A. Because p.special has higher specificity and uses !important.
B. Because color: green; has !important missing.
C. Because the HTML class is misspelled.
D. Because !important only works on IDs.
Solution
Step 1: Analyze selector specificity and !important
The selector p.special is more specific than just p, and it uses !important, so it overrides the green color.
Step 2: Check other options for errors
The class name matches the HTML, and !important works on any selector, not just IDs.
Final Answer:
Because p.special has higher specificity and uses !important. -> Option A
Quick Check:
Specificity + !important = override [OK]
Hint: Higher specificity + !important wins [OK]
Common Mistakes:
Thinking !important only works on IDs
Ignoring selector specificity
Assuming class name typo without checking
5. You want to override a third-party CSS library's button color which uses .btn { color: blue !important; }. Which CSS rule will successfully change the button text color to green?
hard
A. .btn { color: green !important; }
B. #btn { color: green !important; }
C. .btn { color: green; }
D. button { color: green !important; }
Solution
Step 1: Understand !important override rules
To override a style with !important, your rule must also use !important and have equal or higher specificity (or same specificity but appear later).
Step 2: Compare selector specificity
The library uses class selector .btn with !important. .btn { color: green !important; } uses the same selector and !important, overriding if your CSS loads later. A (#btn) has higher specificity but targets id="btn", not class="btn". C lacks !important. D (button) has lower specificity (1 vs 10).
Final Answer:
.btn { color: green !important; } -> Option A
Quick Check:
Matching selector + !important wins [OK]
Hint: Use !important with matching selector to override [OK]
Common Mistakes:
Not using !important when overriding another !important