CSS selectors match patterns against HTML elements so you can apply rules precisely where needed. Choosing clean, low-specificity selectors keeps stylesheets predictable as your application grows.
p, h2): Styles every matching HTML tag type on the page..card): Targets every element carrying class="card". This is the workhorse selector of modern CSS.#main-nav): Targets the single unique element with id="main-nav".*): Matches all elements—most commonly used once at the top of a stylesheet for box-sizing: border-box;.h1, h2, h3): Applies shared properties to multiple selectors separated by commas.* {
box-sizing: border-box;
}
p {
color: #334155;
line-height: 1.6;
}
.card {
background: #ffffff;
border: 1px solid #e2e8f0;
padding: 16px;
}
.card.featured {
border-color: #2563eb;
}
#promo-banner {
background: #1e293b;
color: #f8fafc;
}
When two rules target the same element, the selector with higher specificity wins regardless of line order:
flowchart TD
A["Inline style attribute (Highest)"] --> B["ID selector (#banner)"]
B --> C["Class, Attribute & Pseudo-class (.card, :hover)"]
C --> D["Element & Pseudo-element (p, ::before)"]
Because ID selectors overpower class selectors easily, teams prefer classes for styling and reserve IDs for JavaScript hooks or page anchors.
.card.featured matches an element with both classes, whereas .card .featured matches a child .featured inside .card.body div main ul li a: Deep chains lock CSS to rigid HTML structure and break as soon as markup changes.#id selectors: High specificity forces awkward overrides later.Whichever rule appears later (lower down) in the CSS stylesheet wins according to cascade order.
Avoid stripping all margins and padding with * because it removes useful default spacing on form controls and lists; use * { box-sizing: border-box; } instead.
Sign in to track your learning journey, earn industry-recognized certificates, and join our elite developer community.
Quick Access With
Experiment with the code from this lesson in our interactive playground.
You've completed this section! Take a quick 5-question quiz to check your understanding.