Choose Theme

CSS :has() selector magic

· 1 min read · #CSS
--

The :has() pseudo-class is a game-changer for CSS:

/* Style a card differently if it has an image */
.card:has(img) {
display: grid;
grid-template-columns: 200px 1fr;
}
/* Style parent based on child state */
form:has(input:invalid) {
border-color: red;
}
/* Sibling selector on steroids */
li:has(+ li.active) {
opacity: 0.5;
}

No more JavaScript needed for parent-child conditional styling!