A class conflict happens when two or more Tailwind utility classes try to style the same CSS property differently on the same element, causing one to override the other.
Click to reveal answer
beginner
How does Tailwind CSS resolve conflicts between utility classes?
Tailwind applies CSS rules in the order classes appear in the HTML. The last class that sets a property wins, overriding earlier ones.
Click to reveal answer
beginner
What is the recommended way to avoid class conflicts in Tailwind?
Use only one utility class per CSS property on an element, or combine utilities thoughtfully to prevent overriding styles.
Click to reveal answer
intermediate
How can you use Tailwind's responsive prefixes to resolve conflicts?
Apply different utility classes with responsive prefixes (like md:, lg:) so styles change at different screen sizes without conflicting.
Click to reveal answer
intermediate
What role do custom CSS or @apply play in resolving Tailwind class conflicts?
You can create custom classes using @apply to combine utilities safely, reducing repeated conflicting classes and improving clarity.
Click to reveal answer
What happens if you add both bg-red-500 and bg-blue-500 classes to the same element?
AThe element will have a blue background.
BThe element will have a red background.
CThe element will have both red and blue backgrounds.
DThe element will have no background color.
✗ Incorrect
Tailwind applies the last class in the HTML order, so bg-blue-500 overrides bg-red-500.
Which method helps avoid class conflicts in Tailwind?
AUsing multiple classes for the same property randomly.
BUsing only one utility class per CSS property.
CUsing inline styles instead of classes.
DAdding !important to all classes.
✗ Incorrect
Using one utility class per CSS property prevents conflicts and keeps styles clear.
How do responsive prefixes like md: help with class conflicts?
AThey disable conflicting classes.
BThey merge conflicting classes automatically.
CThey apply styles only on certain screen sizes.
DThey remove all previous styles.
✗ Incorrect
Responsive prefixes apply styles conditionally by screen size, avoiding conflicts at the same time.
What does the @apply directive do in Tailwind?
AIt combines multiple utilities into one custom class.
BIt removes conflicting classes.
CIt disables Tailwind styles.
DIt adds inline styles.
✗ Incorrect
@apply lets you create custom CSS classes by combining Tailwind utilities, reducing conflicts.
If two conflicting classes are on an element, which one wins?
AThe first class in the HTML.
BNeither applies.
CBoth apply equally.
DThe last class in the HTML.
✗ Incorrect
CSS applies the last declared style, so the last class in the HTML overrides earlier ones.
Explain how Tailwind CSS resolves conflicts when multiple utility classes affect the same property.
Think about how CSS applies styles in order.
You got /3 concepts.
Describe strategies to prevent or manage class conflicts in Tailwind projects.
Consider how to organize classes and use Tailwind features.
You got /3 concepts.
Practice
(1/5)
1. In Tailwind CSS, when two classes conflict by setting the same CSS property, which class takes effect?
easy
A. The last class listed in the class attribute
B. The first class listed in the class attribute
C. Both classes apply their styles together
D. Tailwind throws an error for conflicting classes
Solution
Step 1: Understand Tailwind class conflict behavior
Tailwind applies CSS classes in the order they appear in the HTML class attribute.
Step 2: Identify which class overrides
The last class that sets the same CSS property overrides earlier ones.
Final Answer:
The last class listed in the class attribute -> Option A
Quick Check:
Last class wins = C [OK]
Hint: Remember: last class for same property wins in Tailwind [OK]
Common Mistakes:
Thinking the first class always applies
Believing conflicting classes combine styles
Assuming Tailwind errors on conflicts
2. Which of the following is the correct way to apply a red background on small screens and a blue background on medium screens using Tailwind?
easy
A. md:bg-red-500 bg-blue-500
B. bg-red-500 bg-blue-500 md:
C. bg-red-500 md:bg-blue-500
D. bg-red-500 md:bg-red-500 bg-blue-500
Solution
Step 1: Understand responsive prefixes in Tailwind
Use prefixes like md: to apply styles at specific screen sizes.
Step 2: Apply red background by default and blue on medium screens
bg-red-500 applies red always; md:bg-blue-500 overrides it on medium screens.
Final Answer:
<code>bg-red-500 md:bg-blue-500</code> -> Option C
Quick Check:
Responsive prefix changes style at breakpoint = B [OK]
Hint: Use responsive prefixes before classes to override at breakpoints [OK]
Common Mistakes:
Placing responsive prefix after the class
Repeating same class without prefix
Incorrect order causing no override
3. What background color will a div have when rendered with this class attribute? class="bg-green-400 bg-red-500 hover:bg-blue-600" Assume the user is not hovering.
medium
A. Green background
B. Red background
C. Blue background
D. No background color
Solution
Step 1: Identify conflicting background classes
There are two background classes: bg-green-400 and bg-red-500.
Step 2: Determine which class applies
Since bg-red-500 comes after bg-green-400, it overrides the green background.
Step 3: Consider hover state
User is not hovering, so hover:bg-blue-600 does not apply.
Final Answer:
Red background -> Option B
Quick Check:
Last non-hover background class applies = A [OK]
Hint: Last background class wins unless hover state active [OK]
Common Mistakes:
Choosing green because it appears first
Choosing blue without hover
Ignoring class order
4. You wrote this Tailwind class string: class="text-lg text-sm md:text-xl text-md" But the text size is not what you expect on medium screens. What is the problem?
medium
A. The text-md class overrides md:text-xl because it comes last
B. The md: prefix is invalid and ignored
C. Tailwind does not support multiple text size classes
D. The text-sm class should come after text-lg
Solution
Step 1: Analyze class order and prefixes
The classes are text-lg, text-sm, md:text-xl, and text-md in that order.
Step 2: Understand how Tailwind applies classes
On medium screens, md:text-xl applies, but text-md comes after and overrides it because it has no prefix.
Final Answer:
The text-md class overrides md:text-xl because it comes last -> Option A
Quick Check:
Unprefixed class after prefixed overrides = D [OK]
Hint: Place responsive classes last to avoid being overridden [OK]
Common Mistakes:
Thinking md: prefix is invalid
Believing Tailwind forbids multiple text sizes
Ignoring class order importance
5. You want a button that is green normally, turns red on hover, and becomes blue on medium screens but still turns red on hover at medium size. Which class string correctly resolves these conflicts?
hard
A. hover:bg-red-500 bg-green-500 md:bg-blue-500 md:hover:bg-red-500
B. bg-green-500 md:bg-blue-500 hover:bg-red-500 md:hover:bg-red-500
C. bg-green-500 hover:bg-red-500 md:hover:bg-red-500 md:bg-blue-500
D. bg-green-500 hover:bg-red-500 md:bg-blue-500 md:hover:bg-red-500
Solution
Step 1: Identify required styles and their order
Normal: green background (bg-green-500), hover: red (hover:bg-red-500), medium: blue (md:bg-blue-500), medium hover: red (md:hover:bg-red-500).
Step 2: Check class order for correct overrides
The order must be normal green, then hover red, then medium blue, then medium hover red last to ensure correct overrides.
Step 3: Verify bg-green-500 hover:bg-red-500 md:bg-blue-500 md:hover:bg-red-500 matches this order
bg-green-500 hover:bg-red-500 md:bg-blue-500 md:hover:bg-red-500 lists classes in this exact order, so it resolves conflicts correctly.
Final Answer:
<code>bg-green-500 hover:bg-red-500 md:bg-blue-500 md:hover:bg-red-500</code> -> Option D
Quick Check:
Order: normal, hover, medium, medium hover = A [OK]
Hint: Order classes: base, hover, responsive, responsive hover [OK]
Common Mistakes:
Placing hover after responsive classes incorrectly
Mixing order causing hover not to apply on medium
Omitting md:hover class
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.