Featured image of post Recetas CSS creativas con el selector padre :has()Featured image of post Recetas CSS creativas con el selector padre :has()

Recetas CSS creativas con el selector padre :has()

Avoid wrapping components in dynamic hook flags by applying styles natively using CSS :has().

Cómo funciona :has()

La pseudo-clase :has() toma una lista de selectores y selecciona un elemento si contiene cierto descendiente o hermano. Soportada en todos los navegadores principales desde 2026.

Receta 1: Estilos de validación de formularios

.form-group:has(input:invalid) { border-left: 3px solid #e74c3c; }

Muestra/oculta mensajes de error y colorea bordes según el estado del input, sin JavaScript.

Receta 2: Layouts dinámicos de tarjetas

Tarjetas con imagen ajustan su padding automáticamente: .card:has(img) { padding: 0; }

Receta 3: Valoración con estrellas

Usando el combinador ~ dentro de :has(), se pueden estilar elementos hermanos que aparecen después en el DOM.

Receta 4: Galería con filtros

Oculta/muestra elementos según atributos de datos, sin event handlers de JavaScript.

Receta 5: Menús de navegación con dropdown

Mantén el menú abierto al pasar el ratón sobre el trigger o el menú mismo, solo con CSS.

Consideraciones de rendimiento

Evita anidamiento profundo en :has(), usa selectores simples, limita el alcance a un contenedor.

Última actualización 2026/07/12 04:12 JST