CSS pointer-events
La proprietà CSS pointer-events per gestire l'interazione del mouse (CSS2)
La proprietà pointer-events
controlla come un elemento interagisce con gli eventi del mouse. Se impostata su none
, l'elemento non risponderà agli eventi del mouse, mentre se impostata su auto
, l'elemento risponderà normalmente.
Sintassi
Significato dei valori principali:
-
auto: il comportamento predefinito. L'elemento risponde normalmente agli eventi del mouse.
-
none: l'elemento non risponde a nessun evento del mouse. Gli eventi passano "attraverso" l'elemento come se non fosse presente.
-
painted: l'elemento risponde agli eventi solo se è visibile (ad esempio, non trasparente).
-
visiblePainted: l'elemento risponde agli eventi solo se visibile, ma non se ha trasparenza o è nascosto.
-
visibleFill: l'elemento risponde solo quando la parte visibile è riempita di colore (utile per forme SVG).
Esempio proprietà: pointer-events
Codice Esempio: pointer-events

.container {
width: 300px;
height: 200px;
background-color: #f4f4f4;
position: relative;
border: 2px solid #333;
}
.clickable {
position: absolute;
top: 50px;
left: 50px;
width: 100px;
height: 100px;
background-color: #50a14f;
color: white;
text-align: center;
line-height: 100px;
pointer-events: none; /* Disabilita l'interazione del mouse */
}
.underneath {
position: absolute;
top: 70px;
left: 70px;
width: 100px;
height: 100px;
background-color: #ff6347;
color: white;
text-align: center;
line-height: 100px;
}
Contenuto Esempio: pointer-events
Esempio di utilizzo di pointer-events
In questo esempio, la proprietà pointer-events
viene utilizzata per disabilitare l'interazione con un elemento, facendo sì che il mouse "passi attraverso" l'elemento:
CSS e HTML per il contenitore con l'elemento disabilitato:
<style>
.container {
width: 300px;
height: 200px;
background-color: #f4f4f4;
position: relative;
border: 2px solid #333;
}
.clickable {
position: absolute;
top: 50px;
left: 50px;
width: 100px;
height: 100px;
background-color: #50a14f;
color: white;
text-align: center;
line-height: 100px;
pointer-events: none; /* Disabilita l'interazione del mouse */
}
.underneath {
position: absolute;
top: 70px;
left: 70px;
width: 100px;
height: 100px;
background-color: #ff6347;
color: white;
text-align: center;
line-height: 100px;
}
</style>
<div class="container">
<div class="clickable">Non cliccabile</div>
<div class="underneath">Cliccabile</div>
</div>
Spiegazione:
Hai due elementi sovrapposti in una container di dimensioni 300px per 200px:
- Un rettangolo verde (con classe .clickable) che si trova nella parte superiore della container.
- Un rettangolo rosso (con classe .underneath) che si trova sotto il verde.
La proprietà CSS pointer-events controlla se un elemento può essere interagito dal mouse o da altri dispositivi di puntamento (come il touch screen). Se è impostata su none, l'elemento non risponderà a nessuna interazione del mouse, e quindi, gli eventi come i clic non verranno attivati su di esso.
Il comportamento dell'esempio:
- L'elemento con la classe .clickable (verde) ha la proprietà pointer-events: none;, che significa che non risponde a nessun clic o interazione del mouse. Non importa dove clicchi sopra il rettangolo verde, il mouse "passerà attraverso" e non verrà attivato da quell'elemento.
- L'elemento con la classe .underneath (rosso), invece, è cliccabile normalmente, poiché non ha pointer-events: none; e quindi risponde agli eventi del mouse.
Cosa succede quando interagisci con la pagina:
- Se provi a cliccare sull'elemento verde (quello con la classe .clickable), nulla succede, perché il mouse "passa attraverso" di esso.
- Se clicchi sull'elemento rosso (quello con la classe .underneath), il clic avrà effetto sull'elemento rosso, poiché quest'ultimo è interattivo.
Note:
Le indicazioni dei Browser supportati sono superate grazie alla loro costante evoluzione, si consiglia di verificare la compatibilità dei vari browser eseguendo il test cliccando qui sotto.