Guía educativa de selectores de estados abiertos
Tres sintaxis, tres preguntas distintas
Relaciona atributos persistentes y estados transitorios con el elemento nativo que realmente los define.
Modelo mental
Elige el selector según la fuente del estado que necesitas observar.
[open]Inspecciona el HTML
Pregunta si el atributo open está presente, aunque no generaliza a todo elemento que abre una interfaz.
:openInspecciona un estado semántico
Pregunta si un elemento que puede abrirse o cerrarse está actualmente abierto.
:popover-openInspecciona la visibilidad popover
Pregunta si un elemento con popover se encuentra ahora en estado mostrado.
Atributo open
Observa el estado reflejado en HTML para details y dialog.
[open]
Elementos cuyo HTML incluye el atributo open.
Especificidad(0, 1, 0)
[open]
Comportamiento
- En details y dialog, la propiedad open refleja este atributo booleano.
- Puede permanecer presente hasta que el elemento se cierre mediante interacción o API.
Ejemplos
[open]Coincide: <details open>Visible content</details>
<details>Hidden content</details>dialog[open]Coincide: <dialog open>Non-modal dialog</dialog>
<div popover>Popover</div>Errores frecuentes
- No selecciona un select con su picker abierto.
- No debe sustituirse por [popover], que declara otra capacidad.
Soporte y compatibilidad
Los selectores de atributo están ampliamente disponibles.
Estado :open
Agrupa details, dialog, select e inputs con picker bajo una pseudoclase semántica.
:open
Elementos con estado abierto/cerrado que están actualmente abiertos.
Especificidad(0, 1, 0)
:open
Comportamiento
- Se aplica a details, dialog, select e inputs que soportan picker mientras su interfaz está abierta.
- Describe estado, aunque en details y dialog coincida normalmente con la presencia de open.
Ejemplos
:openCoincide: <details open>Visible content</details>
<details>Hidden content</details>select:openCoincide: <select>
<option>One</option>
<option>Two</option>
</select>input[type="color"]:openCoincide: <input type="color" value="#f97316">Errores frecuentes
- No se aplica a un popover solo por estar mostrado.
- Los estados de select e input son transitorios y dependen de abrir su UI nativa.
Soporte y compatibilidad
:open es Baseline Newly Available desde mayo de 2026; conserva detección de soporte.
Popover mostrado
Distingue declarar un popover de tenerlo visible en la top layer.
:popover-open
Elementos popover que están actualmente mostrándose.
Especificidad(0, 1, 0)
:popover-open
Comportamiento
- El botón con popovertarget activa el estado sin JavaScript.
- Al ocultarse, el elemento conserva popover pero deja de coincidir.
Ejemplos
[popover]:popover-open<button popovertarget="help">Help</button>
Coincide: <div id="help" popover>Popover content</div>Errores frecuentes
- [popover] selecciona también popovers ocultos.
- No es una variante de :open ni depende del atributo open.
Soporte y compatibilidad
El estado forma parte de la Popover API, Baseline Newly Available.