POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Hover entre hermanos y sin hover

Cómo resaltar el primer enlace de una lista solo cuando ningún enlace está en hover o focus usando CSS y el selector :has

Publicado el 14/09/2025

Tuve que resolver un reto de CSS que puede parecer sencillo pero tiene truco: hay una lista de enlaces y quiero aplicar un estilo cuando un enlace está en estado hover o focus. Si ninguno está hover o focus, quiero que el primero de la lista tenga ese estilo por defecto.

El marcado HTML básico se puede representar así como texto: <ul><li><a href=#>One</a></li><li><a href=#>Two</a></li><li><a href=#>Three</a></li><li><a href=#>Four</a></li><li><a href=#>Five</a></li><li><a href=#>Six</a></li></ul>

Estilado para hover y focus: li a:hover, li a:focus { background-color: pink; }

La parte complicada es aplicar el estilo al primer elemento solo cuando no hay ningún enlace en hover o focus. Una solución moderna de solo CSS aprovecha el pseudo selector :has junto con :not para detectar si la lista contiene un enlace en hover o focus. Por ejemplo: ul:not(:has(li a:hover)):not(:has(li a:focus)) li:first-of-type a { background-color: pink; } Esto significa que el primer enlace se pinta de rosa únicamente cuando la lista no tiene ningún enlace en hover o focus.

Ventaja de esta aproximacion es que evitamos tener que anular estilos de los hermanos cuando uno recibe hover o focus. Inconveniente: :has no esta soportado en todos los navegadores antiguos, por lo que si necesitas compatibilidad amplia puedes implementar una pequena alternativa con JavaScript que añada o quite una clase en el contenedor segun los eventos mouseenter, mouseleave, focus y blur.

Ejemplo final de codigo como texto: <!-- HTML --> <ul><li><a href=#>One</a></li><li><a href=#>Two</a></li></ul> <!-- CSS --> li a:hover, li a:focus { background-color: pink; } ul:not(:has(li a:hover)):not(:has(li a:focus)) li:first-of-type a { background-color: pink; }

En Q2BSTUDIO combinamos buenas practicas de front-end como esta con desarrollo de backend y soluciones completas a medida. Somos una empresa de desarrollo de software y aplicaciones a medida con experiencia en inteligencia artificial, ciberseguridad, servicios cloud aws y azure y soluciones de inteligencia de negocio. Si necesitas una aplicacion diseñada especificamente para tu empresa visita nuestra pagina de aplicaciones a medida y software a medida o conoce nuestras propuestas en inteligencia artificial e IA para empresas para integrar agentes IA, automatizaciones y analitica avanzada con Power BI.

Palabras clave incluidas para mejorar posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio