Next-sibling combinator
Baseline Widely available
This feature is well established and works across many devices and browser versions. It's been available across browsers since July 2015.
The next-sibling combinator (+) separates two selectors and matches the second element only if it immediately follows the first element, and both are children of the same parent element.
/* Paragraphs that come immediately after any image */
img + p {
font-weight: bold;
}
Syntax
/* The white space around the + combinator is optional but recommended. */
former_element + target_element { style properties }
Examples
Basic usage
This example demonstrates how to select the next sibling if that next sibling is of a specific type.
CSS
We only style the <li> that comes immediately after an <li> that is the first of its type:
li:first-of-type + li {
color: red;
font-weight: bold;
}
HTML
<ul> <li>One</li> <li>Two!</li> <li>Three</li> </ul>
Result
Selecting a previous sibling
The next-sibling combinator can be included within the :has() functional selector to select the previous sibling.
CSS
We only style the <li> with a next sibling that is an <li> that is the last of its type:
li:has(+ li:last-of-type) {
color: red;
font-weight: bold;
}
HTML
<ul> <li>One</li> <li>Two</li> <li>Three!</li> <li>Four</li> </ul>
Result
Specifications
| Specification |
|---|
| Selectors Level 4 # adjacent-sibling-combinators |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | |
next-sibling |
1 |
12 |
1 |
3.5 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
See also
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/Next-sibling_combinator