// 05 de 09
Nueva API HTML (2023). Tooltips, menús y paneles flotantes en la top layer, sin gestionar z-index ni JavaScript para lo básico.
popoverpopover=autopopover=manual
popovertargetpopovertargetaction:popover-open
popover=auto — se cierra al clicar fuera
popover=manual — no se cierra solo
popovertargetaction: show · hide · toggle
Dos popovers=auto — se excluyen mutuamente
Top Layer — los popovers se renderizan por encima de cualquier z-index, incluso de position:fixed. No necesitas gestionar capas.
Sin JS — el botón con popovertarget apunta al id del popover. Cero JavaScript necesario.
<!-- Auto: se cierra al clicar fuera -->
<button popovertarget="mi-pop">
Abrir
</button>
<div id="mi-pop" popover>
Contenido del popover
</div>
<!-- Manual: no se cierra solo -->
<div id="mi-pop" popover="manual">
Panel persistente
<button
popovertarget="mi-pop"
popovertargetaction="hide">
Cerrar
</button>
</div>
<!-- Tres acciones posibles -->
<button popovertarget="p"
popovertargetaction="show">Show</button>
<button popovertarget="p"
popovertargetaction="hide">Hide</button>
<button popovertarget="p"
popovertargetaction="toggle">Toggle</button>
<!-- CSS cuando está visible -->
[popover]:popover-open {
animation: fadeIn .2s ease;
}
<!-- JS si necesitas más control -->
const pop = document.getElementById('p')
pop.showPopover()
pop.hidePopover()
pop.togglePopover()
pop.addEventListener('toggle', e => {
console.log(e.newState) // "open" o "closed"
})