Bird
Raised Fist0
CSSmarkup~5 mins

What is CSS cascade

Choose your learning style10 modes available

Start learning this pattern below

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
Introduction
CSS cascade decides which style rules apply when many rules target the same element. It helps browsers pick the right style so your page looks good.
When you write multiple CSS rules that affect the same HTML element.
When you want to understand why one style is shown instead of another.
When you combine styles from different sources like browser defaults, your CSS file, and inline styles.
When you want to fix style conflicts on your webpage.
When you use multiple CSS files or frameworks together.
Syntax
CSS
/* No special syntax for cascade itself, but it works with selectors and declarations like: */
selector {
  property: value;
}
The cascade uses three main factors: importance, specificity, and source order.
More specific selectors override less specific ones; later rules override earlier ones.
Examples
Both rules target elements. The second rule wins because it comes later in the CSS.
CSS
p {
  color: blue;
}

p {
  color: red;
}
If has class 'special', it will be green because class selectors are more specific than element selectors.
CSS
.special {
  color: green;
}

p {
  color: blue;
}
The !important rule makes the blue color win even if the red rule comes later.
CSS
p {
  color: blue !important;
}

p {
  color: red;
}
Sample Program
This example shows three paragraphs. The first uses the element selector color (blue). The second uses a class selector that overrides the element color (red). The third uses an ID selector that overrides both (green). This shows how CSS cascade picks the most specific style.
CSS
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>CSS Cascade Example</title>
  <style>
    p {
      color: blue;
      font-size: 1.2rem;
    }
    .highlight {
      color: red;
    }
    #unique {
      color: green;
    }
  </style>
</head>
<body>
  <p>This paragraph is blue because of the element selector.</p>
  <p class="highlight">This paragraph is red because the class selector is more specific.</p>
  <p id="unique" class="highlight">This paragraph is green because the ID selector is the most specific.</p>
</body>
</html>
OutputSuccess
Important Notes
The cascade helps avoid confusion when many styles apply to the same element.
Inline styles (style="...") have higher priority than styles in CSS files.
Use !important sparingly because it can make debugging styles harder.
Summary
CSS cascade decides which style rule applies when multiple rules target the same element.
It uses importance, specificity, and order to pick the winning style.
More specific selectors and later rules usually win.

Practice

(1/5)
1. What does the CSS cascade primarily decide?
easy
A. How JavaScript interacts with CSS
B. Which style rule applies when multiple rules target the same element
C. The order of HTML elements on the page
D. How to write CSS syntax correctly

Solution

  1. Step 1: Understand the role of CSS cascade

    The CSS cascade is about resolving conflicts when multiple CSS rules apply to the same element.
  2. Step 2: Identify what cascade decides

    It decides which style wins based on importance, specificity, and order.
  3. Final Answer:

    Which style rule applies when multiple rules target the same element -> Option B
  4. Quick Check:

    CSS cascade = style conflict resolver [OK]
Hint: Cascade picks the winning style when rules conflict [OK]
Common Mistakes:
  • Confusing cascade with CSS syntax rules
  • Thinking cascade controls HTML structure
  • Mixing cascade with JavaScript behavior
2. Which of the following is the correct CSS syntax to set text color to red?
easy
A. font-color: red;
B. text-color = red;
C. color: red;
D. color = red;

Solution

  1. Step 1: Recall CSS property syntax

    CSS properties use a colon ':' to assign values, ending with a semicolon ';'.
  2. Step 2: Check each option

    Only 'color: red;' uses correct syntax to set text color.
  3. Final Answer:

    color: red; -> Option C
  4. Quick Check:

    Property: value; is correct CSS syntax [OK]
Hint: CSS uses colon and semicolon for property-value pairs [OK]
Common Mistakes:
  • Using '=' instead of ':'
  • Using wrong property names like font-color
  • Omitting semicolon at the end
3. Given this CSS:
p { color: blue; }
.highlight { color: yellow; }
#special { color: green; }

And this HTML:
<p id="special" class="highlight">Hello</p>

What color will the text "Hello" be?
medium
A. Green
B. Yellow
C. Blue
D. Black (default)

Solution

  1. Step 1: Identify selectors and their specificity

    p selector is least specific, .highlight class is more specific, #special id is most specific.
  2. Step 2: Apply CSS cascade rules

    The id selector (#special) wins over class and element selectors, so color: green applies.
  3. Final Answer:

    Green -> Option A
  4. Quick Check:

    Id selector beats class and element selectors [OK]
Hint: Id selectors override class and element selectors [OK]
Common Mistakes:
  • Choosing class color over id color
  • Ignoring specificity order
  • Assuming first rule always wins
4. Why does this CSS not change the paragraph color to red?
p { color: blue !important; }
p.special { color: red; }

HTML:
<p class="special">Text</p>
medium
A. Because class selectors always override element selectors
B. Because the HTML class is misspelled
C. Because the syntax of red color is wrong
D. Because !important on blue overrides the red color

Solution

  1. Step 1: Understand !important in CSS cascade

    The !important rule makes a style override other conflicting styles regardless of specificity.
  2. Step 2: Analyze given CSS rules

    p { color: blue !important; } overrides p.special { color: red; } even though the latter is more specific.
  3. Final Answer:

    Because !important on blue overrides the red color -> Option D
  4. Quick Check:

    !important beats specificity [OK]
Hint: !important always wins over normal rules [OK]
Common Mistakes:
  • Ignoring !important effect
  • Assuming class overrides !important
  • Thinking syntax or spelling is wrong
5. You have these CSS rules:
div { color: black; }
.alert { color: orange !important; }
#warning { color: red; }

And this HTML:
<div id="warning" class="alert">Warning!</div>

What color will the text "Warning!" be and why?
hard
A. Orange, because !important overrides id selector
B. Black, because element selector is default
C. Red, because id selector is more specific than class
D. Orange, because class selector always wins

Solution

  1. Step 1: Compare specificity and importance

    Id selector (#warning) is more specific than class (.alert), but .alert has !important.
  2. Step 2: Apply cascade rules with !important

    !important on .alert color: orange overrides even the more specific id selector color: red.
  3. Final Answer:

    Orange, because !important overrides id selector -> Option A
  4. Quick Check:

    !important beats specificity [OK]
Hint: !important beats even id selectors [OK]
Common Mistakes:
  • Thinking id selector always wins
  • Ignoring !important priority
  • Assuming element selector can override class