How does CSS specificity work?
Answer
Specificity determines which competing declaration wins after origin and importance: IDs outrank classes, attributes, and pseudo-classes, which outrank element selectors. Prefer low-specificity, composable selectors instead of escalating with IDs or !important.
Context
CSS is a cascade-based layout system. Robust styles keep specificity low, make layout constraints explicit, and let components adapt to their available space instead of a fixed device list.
Example
css
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
gap: 1rem;
}This grid responds to available container width without relying on device-specific breakpoints.
Practical considerations
- Choose the approach from the requirement and constraints, not from habit.
- Include validation, error handling, and cleanup where the boundary requires them.
- Verify the observable result with focused tests or measurement.
Follow-up prompts
- What failure mode would you expect if this were implemented incorrectly?
- How would you test this behaviour?
- What changes when the feature must scale to a larger application or team?
In practice
For this medium-level topic, make assumptions explicit, choose the smallest safe implementation, and verify the behavior at the relevant boundary.