pointer-events
y cómo se utiliza?
pointer-events
controla si un elemento acepta eventos de interacción (clics, desplazamiento, etc.) o los ignora por completo, permitiendo que dichos eventos pasen a los elementos que están detrás de él en el orden de apilamiento. Se usa principalmente para habilitar o deshabilitar la interacción, pero también para controlar eventos en SVG y gráficos.
.elemento {
pointer-events: none;
}
En este ejemplo, el elemento con la clase .elemento
no responderá a los clics, desplazamientos o eventos del ratón, permitiendo que los elementos debajo de él sigan recibiendo estos eventos.
pointer-events
1. auto
: Valor predeterminado. El elemento acepta eventos de interacción normalmente.
2. none
: Desactiva la interacción del elemento con el puntero. Cualquier clic o evento pasará al elemento subyacente.
3. Otros valores específicos: Para gráficos SVG, existen valores como visiblePainted
, visibleFill
, visibleStroke
, entre otros, para controlar eventos según las áreas de relleno o contorno del elemento.
pointer-events
1. Ignorar clics en un contenedor:
.superposicion {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
pointer-events: none; /* Ignora los eventos de puntero */
}
Este ejemplo crea un contenedor de superposición semi-transparente que no bloquea la interacción con los elementos subyacentes.
2. Desactivar enlaces o botones:
.enlace-desactivado {
color: gray;
pointer-events: none;
cursor: not-allowed; /* Cambia el cursor para indicar que está desactivado */
}
Ideal para indicar visualmente que un enlace o botón no está disponible temporalmente, evitando que el usuario haga clic en ellos.
3. Permitir interacción en un área específica:
.contenedor {
pointer-events: none; /* Desactiva la interacción en todo el contenedor */
}
.contenedor .activo {
pointer-events: auto; /* Reactiva la interacción solo en este elemento */
}
Este uso es útil cuando se desea desactivar una sección completa, pero permitir la interacción en elementos hijos específicos, como botones o enlaces dentro del contenedor.
4. Crear tooltips sin bloquear el contenido:
.tooltip {
position: absolute;
background: yellow;
padding: 10px;
pointer-events: none; /* El tooltip no bloquea la interacción con el contenido */
}
Al aplicar pointer-events: none
en un tooltip, este no impedirá que el usuario interactúe con el contenido debajo de él.
pointer-events
en CSS?
pointer-events: none
es una forma rápida de desactivar interacciones.
pointer-events
pointer-events: none
, asegúrate de comunicar visualmente el estado desactivado del elemento, por ejemplo, cambiando el color o el cursor (cursor: not-allowed
) para indicar que no se puede hacer clic.
pointer-events
afecta tanto a eventos de ratón como táctiles, por lo que desactivar los eventos de puntero en dispositivos móviles puede impedir interacciones esenciales.
Para más detalles y valores avanzados de esta propiedad, consulta la documentación oficial de MDN sobre pointer-events.
Jorge García
Fullstack developer