Skip to main content

Command Palette

Search for a command to run...

A Beginner's Guide to CSS Selectors for Precise Element Targeting

Updated
2 min read

Why CSS selectors are needed

HTML builds the page.
CSS styles the page.

Selectors are how CSS says:
“Hey, I want to style this specific HTML element.”

Think of selectors as ways to choose elements from HTML.

Imagine a college campus:

  • Element selector → “All students”

  • Class selector → “All students in Mechanical branch”

  • ID selector → “That one student with roll number 123”

  • Descendant selector → “Students inside Classroom A”

CSS works the same way.

Element Selector

Targets all elements of a given type.

p {
  color: blue;
}

Styles every <p> tag on the page.

Use when:
You want a general rule.

Class Selector

Targets elements with a class name.
Classes are reusable.

.card {
  border: 1px solid black;
}

HTML:

<div class="card"></div>
<p class="card"></p>

Styles only elements with class="card"

Rule to remember:

  • Starts with .

  • Can be reused many times

ID Selector

Targets one unique element.

#header {
  background: gray;
}

HTML:

<div id="header"></div>

Styles only that one element

Rule to remember:

  • Starts with #

  • Should be unique

  • Use rarely

Group Selector

When multiple selectors need the same styling.

h1, h2, p {
  font-family: Arial;
}

Saves time, avoids repetition.

Descendant Selector

Targets elements inside another element.

div p {
  color: red;
}

Means:
“All <p> tags that are inside a <div>

Very common in real projects.

Basic selector priority

When multiple selectors target the same element:

ID > Class > Element

Example:

p { color: blue; }
.text { color: green; }
#main { color: red; }

HTML:

<p id="main" class="text">Hello</p>

Final color = red (ID wins)

Conclusion

CSS selectors are simply ways to point at HTML elements so styles know where to apply.
If you understand selectors well, CSS becomes predictable instead of confusing, everything else builds on this.