Skip to main content

How to use multiple parent selectors

The internet is brimming with web design inspiration and tools to aid your web projects, which is helpful as designing for the web can get tricky. Making life as easy as possible is the key.

Multiple parents make stylesheets much more terse, which is always nice. It reduces filesize and maintenance, so it's something we're definitely interested in. Here are three ways to use multiple parent selectors.

01. Preprocessors

multiple parent selectors

Use Sass

Currently, the most obvious solution is to use a preprocessor's in-built nesting functionality to list our multiple parents, then nest our one child in it. This still compiles out to relatively verbose CSS, but it is nice and terse in our source.

02. :matches()

multiple parent selectors

Use a pseudo-selector

There's a pseudo-selector in Selectors Level 4 that provides this natively. :matches (or :any , in older specs) allows you to write much more terse selectors, which the browser expands internally.

03. cssnext

multiple parent selectors

Transpile with cssnext

To get :matches() working requires a little extra work. It's actually referred to as :any() in older specs, and requires vendor prefixing. To this end, I'd recommend using cssnext to transpile the new syntax back to better support.

Words: Harry Roberts

Harry Roberts is a consultant frontend architect, writer and speaker. This article originally appeared in issue 276 of net magazine

Liked this? Read these!