We use the adjacent sibling selector (+), if we want to match the element which occurs immediately after the first selector. Here, both selectors are children of the same parent element.
The syntax of the CSS adjacent sibling combinator is as follows −
Selector + Selector{ attribute: /*value*/ }
If we want to select siblings of the same parent irrespective of the position of the second selected element, we use the CSS general sibling combinator.
The syntax of the CSS general sibling combinator is as follows −
Selector ~ Selector{ attribute: /*value*/ }
The following examples illustrate CSS adjacent and general sibling combinator property.
Example
<!DOCTYPE html> <html> <head> <style> #parent { display: flex; margin: 2%; padding: 2%; box-shadow: inset 0 0 24px cyan; justify-content: space-around; } div + p { font-size: 1.2em; font-weight: bold; background: powderblue; } section { box-shadow: 0 0 3px rgba(0,0,0,0.8); } </style> </head> <body> <div id="parent"> <img src="https://i.picsum.photos/id/616/200/200.jpg?hmac=QEzyEzU6nVn4d_vdALhsT9UAtTU EVhwrT-kM5ogBqKM" /> <div> <p>Check this</p> <section><p>Some text in section</p></section> <span>hello</span> </div> <p>Selected</p> </div> </body> </html>
Output
This will produce the following result −
Example
<!DOCTYPE html> <html> <head> <style> #parent { display: flex; margin: 2%; padding: 2%; background: thistle; justify-content: space-between; } section ~ p { text-align: center; font-size: 1.2em; font-weight: bold; background: lavender; } </style> </head> <body> <div id="parent"> <img src="https://i.picsum.photos/id/616/200/200.jpg?hmac=QEzyEzU6nVn4d_vdALhsT9UAtTU EVhwrT-kM5ogBqKM" /> <div> <p>Random text 1</p> <section><p>Some text in section</p></section> <span>hello</span> <p>Selected</p> </div> <img src="https://i.picsum.photos/id/1035/200/200.jpg?hmac=IDuYUZQ_7a6h4pQU2k7p2nxTMjMt4uy-p3ze94KtA4" /> </div> </body> </html>
Output
This will produce the following result −