W3docs

CSS :disabled Pseudo Classe

Usa la pseudo-classe CSS :disabled per selezionare e stilare gli elementi disabilitati. Leggi la sintassi e pratica con esempi.

La pseudo-classe :disabled seleziona e stilizza ogni elemento attualmente disabilitato — ovvero un elemento con cui l'utente non può interagire. Un controllo diventa disabilitato quando porta l'attributo HTML disabled, quindi :disabled ti permette di dare a quei controlli un aspetto distinto "non puoi usare questo" senza aggiungere una classe extra.

![Esempio di pseudo-classe CSS :disabled](https://api.w3docs.com/uploads/media/default/0001/03/ced1796b1077a7b96196914b14dfc04aa89805ab.png "Esempio di pseudo-classe CSS :disabled" =420x)

Questa pagina tratta cosa conta come elemento disabilitato, la sintassi del selettore, come :disabled si relaziona al suo opposto :enabled, la differenza tra disabled e readonly, e una serie di esempi di stile eseguibili.

Quali elementi possono essere disabilitati

Solo gli elementi che possono essere disabilitati sono abbinati da :disabled. Questi sono i controlli di form interattivi:

Un controllo disabilitato si comporta diversamente da uno normale:

  • Non accetta clic, input di testo o focus da tastiera.
  • Il suo valore non viene inviato con il form.
  • Non viene validato dal browser, quindi :valid / :invalid non si applicano ad esso.

Gli elementi di testo semplice come <p> o <div> non possono essere disabilitati, quindi non corrispondono mai a :disabled.

:disabled vs. :enabled

:disabled e :enabled sono immagini speculari. Qualsiasi controllo che può essere disabilitato è abbinato esattamente a uno di essi alla volta: :enabled quando è interattivo, :disabled quando l'attributo disabled è presente. Stilizzare entrambi offre all'utente un chiaro contrasto visivo tra controlli utilizzabili e non utilizzabili.

disabled vs. readonly

Questi due attributi sembrano simili ma non sono la stessa cosa:

disabledreadonly
L'utente può metterlo a fuocoNo
L'utente può modificare il valoreNoNo
Valore inviato con il formNo
Abbinato da:disabled:read-only

Usa disabled per disattivare completamente un controllo; usa readonly (vedi :read-only) quando il valore deve rimanere visibile ed essere inviato ma non modificato.

Sintassi

Usato da solo, :disabled si applica a qualsiasi controllo disabilitato. Combinalo con un tipo o un selettore di attributo per essere più specifico:

/* every disabled control */
:disabled {
  /* css declarations */
}

/* only disabled text inputs */
input[type="text"]:disabled {
  background: #ccc;
  cursor: not-allowed;
}

Esempio di impostazione di un colore di sfondo per un elemento <input> disabilitato:

CSS :disabled code example

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      input {
        padding: 2px 5px;
        margin-bottom: 10px;
        border: 1px solid #ccc;
      }
      input[type=text]:enabled {
        background: #eee;
      }
      input[type=text]:disabled {
        background: #ccc;
      }
    </style>
  </head>
  <body>
    <h2>:disabled selector example for input</h2>
    <form action="">
      <label for="name">First name:</label>
      <input type="text" value="John" id="name" />
      <br />
      <label for="lastname">Last name:</label>
      <input type="text" value="Smith" id="lastname" />
      <br />
      <label for="country">Country:</label>
      <input type="text" disabled="disabled" value="10 High Street" id="country" />
    </form>
  </body>
</html>

Esempio di impostazione di un colore di sfondo per elementi <option> disabilitati:

CSS :disabled another code example

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      option:disabled {
        background: #8ebf42;
      }
    </style>
  </head>
  <body>
    <h2>:disabled selector example for option</h2>
    <select>
      <option value="paris">Paris</option>
      <option value="london" disabled>London</option>
      <option value="moscow">Moscow</option>
      <option value="rome" disabled>Rome</option>
      <option value="berlin">Berlin</option>
    </select>
  </body>
</html>

Nota: La pseudo-classe :disabled ha la precedenza su :valid e :invalid. Gli elementi di form disabilitati non vengono validati dal browser.

Esempio di un elemento <input> disabilitato:

Example of disabled input element

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      input {
        width: 60%;
        margin: 0;
        border: none;
        outline: 1px solid lightgrey;
        outline-offset: 2px;
      }
      input:disabled {
        background: #cccccc;
        cursor: not-allowed;
      }
      form {
        background: #67a6ec;
        padding: 1.5em;
        max-width: 400px;
        width: 100%;
        outline: 10px solid rgba(17, 58, 103, 0.6);
      }
      hr {
        visibility: hidden;
      }
      label {
        margin-right: 3%;
        text-align: left;
        display: inline-block;
        width: 35%;
      }
    </style>
  </head>
  <body>
    <h2>:disabled selector example with styling</h2>
    <form action="#">
      <label for="name">Enabled Input:</label>
      <input type="text" autofocus />
      <hr />
      <label for="name">Disabled Input:</label>
      <input type="text" disabled />
    </form>
  </body>
</html>

Nota sull'accessibilità

Poiché un controllo disabilitato non può ricevere il focus, gli utenti da tastiera e con screen reader lo saltano direttamente senza alcuna spiegazione del perché non sia disponibile. Non fare affidamento solo sull'effetto grigio — quando il motivo è importante, aggiungi un testo di aiuto nelle vicinanze, oppure mantieni il controllo abilitato e valida all'invio. Assicurati anche che il contrasto del testo disabilitato sia sufficiente affinché rimanga leggibile.

Pseudo-classi correlate

  • :enabled — lo stato opposto: controlli con cui l'utente può interagire.
  • :read-only e :read-write — per gli input readonly.
  • :required — controlli che devono essere compilati.
  • :valid e :invalid — stati di validazione del form.
  • :checked — checkbox, radio e opzioni selezionate.
  • :focus — l'elemento che attualmente ha il focus da tastiera.

Specifiche

Pratica

Pratica
Quali sono le caratteristiche dell'attributo 'disabled' in CSS?
Quali sono le caratteristiche dell'attributo 'disabled' in CSS?
Was this page helpful?