CSS46 / 62

:has() — selector induk yang lama ditunggu

Selama bertahun-tahun CSS tidak bisa memilih elemen berdasarkan isinya. :has() mengubah itu: .kartu:has(img) berarti 'kartu yang di dalamnya ada gambar'. Ini membuka pola yang sebelumnya butuh JavaScript, misalnya memberi gaya berbeda pada form yang punya input invalid.

👀 Contoh dulu

/* form yang MENGANDUNG input invalid */
form:has(input:invalid) {
  border: 2px solid red;
}

/* label yang punya checkbox tercentang */
label:has(input:checked) {
  font-weight: bold;
}

Hasilnya: Form otomatis bergaris merah begitu ada satu input yang tidak valid — tanpa JavaScript sama sekali.

💡 Yang diberi gaya adalah elemen di LUAR (form/label), berdasarkan kondisi isi di dalamnya.

📝 Sekarang giliranmu

Beri border: 3px solid #16a34a pada kartu yang memiliki gambar di dalamnya, memakai .kartu:has(img).

Preview