CSS :has

For as long as developers have written CSS code, we’ve been desperate to have a method to allow styling a parent element based child characteristics. That’s not been possible until now. CSS has introduced the :has pseudo-class which allows styling a parent based on a relative CSS selector! Let’s have a look at a few […]

The post CSS :has appeared first on David Walsh Blog.


This content originally appeared on David Walsh Blog and was authored by David Walsh

For as long as developers have written CSS code, we’ve been desperate to have a method to allow styling a parent element based child characteristics. That’s not been possible until now. CSS has introduced the :has pseudo-class which allows styling a parent based on a relative CSS selector!

Let’s have a look at a few use cases for :has in CSS:

/*
  If an `a` element contains an image, set the `a`'s display
*/
a:has(img) {
  display: block;
}

/*
  If a `figure` has a `caption` with a `multiline` class
  allow the `figure` to have any height
*/
figure {
  height: 200px;
}
figure:has(caption.multiline) {
  height: auto;
}

/*
  Hide an advert containing `div` until ads load
  and have been injected
*/
.ad-container {
  display: none;
}
.ad-container:has(.ad) {
  display: block;
}

/*
  If we have an `article` element without a heading,
  add top padding because `H1`s have top padding
*/
article:not(:has(h1)) {
  padding-top: 20px;
}

Apple’s Safari is the first browser to support :has , though we should see others quickly follow suit as it’s part of the official CSS spec. Now that we have this new pseudo-class, do you think you’ll use it much? Or will you stick to your current workarounds?

The post CSS :has appeared first on David Walsh Blog.


This content originally appeared on David Walsh Blog and was authored by David Walsh


Print Share Comment Cite Upload Translate Updates
APA

David Walsh | Sciencx (2022-03-28T10:03:15+00:00) CSS :has. Retrieved from https://www.scien.cx/2022/03/28/css-has/

MLA
" » CSS :has." David Walsh | Sciencx - Monday March 28, 2022, https://www.scien.cx/2022/03/28/css-has/
HARVARD
David Walsh | Sciencx Monday March 28, 2022 » CSS :has., viewed ,<https://www.scien.cx/2022/03/28/css-has/>
VANCOUVER
David Walsh | Sciencx - » CSS :has. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/03/28/css-has/
CHICAGO
" » CSS :has." David Walsh | Sciencx - Accessed . https://www.scien.cx/2022/03/28/css-has/
IEEE
" » CSS :has." David Walsh | Sciencx [Online]. Available: https://www.scien.cx/2022/03/28/css-has/. [Accessed: ]
rf:citation
» CSS :has | David Walsh | Sciencx | https://www.scien.cx/2022/03/28/css-has/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.