In CSS, combinators define relationships between selectors. Instead of selecting elements individually, combinators allow you to target elements based on how they are positioned within the HTML structure.
Software developers are building the future. Become part of them.
There are four main CSS combinators:
space)>)+)~)Let’s break each down—definitions, diagrams, and examples.
– space)Selects any element nested inside another, at any depth.
A B = Select B only if it exists anywhere inside A.
<div class="container">
<p>First paragraph</p>
<div>
<p>Nested paragraph</p>
</div>
</div> .container p {
color: blue;
} All <p> elements inside .container—no matter how deeply nested—turn blue.
>)Selects direct children only, not deeper descendants.
A > B = Select B only if it is a direct child of A.
<ul class="menu">
<li>Home</li>
<li>
About
<ul>
<li>Team</li>
</ul>
</li>
</ul> .menu > li {
font-weight: bold;
} Only the top-level list items (Home and About) become bold, not the nested “Team” item.
+)Selects the immediately next sibling element.
A + B = Select B only if it comes right after A.
<h2>Title</h2>
<p>Subtitle paragraph</p>
<p>Another paragraph</p> h2 + p {
margin-top: 0;
} Only the first <p> after <h2> is affected.
~)Selects all siblings that come after a specified element—not just the first one.
A ~ B = Select every B that appears after A in the same parent.
<div>
<h3>Header</h3>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div> h3 ~ p {
color: green;
} All <p> elements after <h3> turn green.
| Combinator | Symbol | Selects | Example | Meaning |
|---|---|---|---|---|
| Descendant | (space) | Any nested element | div p | All <p> inside <div> |
| Child | > | Direct children | ul > li | Only top-level <li> |
| Adjacent Sibling | + | Next element only | h1 + p | Only the first <p> after <h1> |
| General Sibling | ~ | All following siblings | h1 ~ p | All <p> after <h1> |
Use them sparingly in large apps for performance.
They prevent styles from leaking into unintended nested elements.
Example:
input.error + small {
color: red;
} Example:
.card > h2 + p {
opacity: 0.7;
} Meaning: Select the <p> that comes right after <h2> inside .card.
CSS combinators are essential for writing clean, predictable, and efficient styles. They allow you to target elements based on their structural relationship, making your CSS more modular and powerful.
Latest tech news and coding tips.
Visual Studio Code (VS Code) is powerful out of the box, but its real strength…
1. What Is a Variable in JavaScript? A variable is a named container used to store data…
1. What Is a Queue? A Queue is a linear data structure that follows the principle: FIFO – First…
Angular is a full-featured frontend framework built by Google for creating large, maintainable, and high-performance web applications.…
What Is Responsive Web Design? Responsive Web Design (RWD) is an approach to building websites…
The Geolocation API allows a web application to access a user’s geographical location (latitude, longitude, and more), with…