CSS :has() - The Parent Selector We've Always Wanted

Transform your CSS with :has(), the game-changing selector that finally lets us style elements based on their children.

Trevor I. Lasn Trevor I. Lasn
· 3 min read
Building 0xinsider.com — see who's winning across prediction markets (Polymarket, Kalshi, and more) — and what they're trading right now.

The :has() selector addresses a long-standing limitation in CSS - the inability to style elements based on their contents.

While CSS has always allowed styling children based on their parents, the reverse wasn’t possible until now. This change brings new possibilities for dynamic, content-aware styling.

The :has() selector functions as a conditional check for element contents. It enables style application based on whether an element contains specific children or siblings:

This straightforward syntax eliminates the need for JavaScript or complex CSS workarounds that were previously necessary.

The :has() selector becomes more powerful when combined with other selectors for checking states, positions, and combinations:

The :has() selector enables adaptive layouts that respond to content structure:

This approach eliminates manual class management or JavaScript intervention for layout adjustments.

The :has() selector fundamentally changes CSS architecture by enabling content-aware styling without JavaScript. Its ability to style parent elements based on their children opens up robust, maintainable approaches to common layout challenges.

Modern browsers support :has() well, making it production-ready for contemporary web development. For older browsers, implement fallback styles:

My tip: Start small - replace JavaScript-based style toggles with :has() selectors. Move gradually to content-aware layouts.


Trevor I. Lasn

Building 0xinsider.com — see who's winning across prediction markets (Polymarket, Kalshi, and more) — and what they're trading right now. Product engineer based in Tartu, Estonia, building and shipping for over a decade.


Found this article helpful? You might enjoy my free newsletter. I share dev tips and insights to help you grow your coding skills and advance your tech career.


Related Articles

Check out these related articles that might be useful for you. They cover similar topics and provide additional insights.

Webdev
3 min read

::details-content: style expandable content without wrapper divs

The ::details-content pseudo-element lets you style the expandable content of details elements separately from the summary, no divs needed.

Nov 11, 2025
Read article
Webdev
7 min read

How to Land Your First Tech Job

A developer's guide to tech interviews - from someone who sits on both sides of the table

Oct 24, 2024
Read article
Webdev
5 min read

WebAssembly (Wasm): When (and When Not) to Use It

Understanding the real use cases for WebAssembly beyond the performance hype

Nov 25, 2024
Read article
Webdev
3 min read

NPQ: Open source CLI tool that audits and protects your npm installs from malicious packages

A CLI tool that checks packages for security issues and social engineering attacks before they hit your project

Jul 26, 2025
Read article
Webdev
3 min read

CSS ::target-text for Text Highlighting

A look at how browsers can highlight text fragments using CSS ::target-text, making text sharing and navigation more user-friendly

Dec 17, 2024
Read article
Webdev
12 min read

Frontend Security Checklist

Tips for Keeping All Frontend Applications Secure

Jul 30, 2024
Read article
Webdev
5 min read

Programming Trends to Watch in 2020 and Beyond

Here are my bets on the programming trends

Jul 19, 2019
Read article
Webdev
36 min read

IndexNow: Get Pages Indexed in Minutes, Not Weeks

Set up IndexNow to notify Bing, DuckDuckGo, ChatGPT, and Perplexity the moment you publish. Free protocol, 5-minute setup.

Oct 27, 2025
Read article
Webdev
4 min read

Speed Up Your Website With rel='preconnect' and increase PageSpeed Insights Score

Using link rel='preconnect' can improve your website's performance by reducing connection setup times to key external domains.

Sep 13, 2024
Read article

This article was originally published on https://www.trevorlasn.com/blog/has-css-functional-pseudo-class. It was written by a human and polished using grammar tools for clarity.