W3docs

CSS :disabled Pseudo Class

Use a pseudo-classe CSS :disabled para selecionar e estilizar elementos desativados. Leia sobre a pseudo-classe e pratique com exemplos.

A pseudo-classe :disabled seleciona e estiliza todo elemento que está atualmente desativado — ou seja, um elemento com o qual o usuário não pode interagir. Um controle fica desativado quando possui o atributo HTML disabled, portanto :disabled permite dar a esses controles uma aparência distinta de "você não pode usar isso" sem precisar adicionar uma classe extra.

![CSS :disabled Pseudo Class example](https://api.w3docs.com/uploads/media/default/0001/03/ced1796b1077a7b96196914b14dfc04aa89805ab.png "CSS :disabled pseudo-class example" =420x)

Esta página aborda o que é considerado um elemento desativado, a sintaxe do seletor, como :disabled se relaciona com seu oposto :enabled, a diferença entre disabled e readonly, e um conjunto de exemplos de estilização executáveis.

Quais elementos podem ser desativados

Apenas elementos que podem ser desativados são correspondidos por :disabled. Estes são os controles de formulário interativos:

Um controle desativado se comporta de forma diferente de um normal:

  • Ele não aceita cliques, entrada de texto ou foco pelo teclado.
  • Seu valor não é enviado com o formulário.
  • Ele não é validado pelo navegador, portanto :valid / :invalid não se aplicam a ele.

Elementos de texto simples como <p> ou <div> não podem ser desativados, portanto nunca correspondem a :disabled.

:disabled vs. :enabled

:disabled e :enabled são imagens espelhadas. Qualquer controle que possa ser desativado é correspondido por exatamente um deles por vez: :enabled quando está interativo, :disabled quando o atributo disabled está presente. Estilizar ambos fornece ao usuário um contraste visual claro entre controles utilizáveis e inutilizáveis.

disabled vs. readonly

Esses dois atributos parecem semelhantes, mas não são iguais:

disabledreadonly
O usuário pode focar neleNãoSim
O usuário pode editar o valorNãoNão
Valor enviado com o formulárioNãoSim
Correspondido por:disabled:read-only

Use disabled para desativar um controle completamente; use readonly (veja :read-only) quando o valor deve permanecer visível e ser enviado, mas não editado.

Sintaxe

Usado por si só, :disabled tem como alvo qualquer controle desativado. Combine-o com um seletor de tipo ou atributo para ser mais específico:

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

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

Exemplo de definição de cor de fundo para um elemento <input> desativado:

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>

Exemplo de definição de cor de fundo para elementos <option> desativados:

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: A pseudo-classe :disabled tem precedência sobre :valid e :invalid. Elementos de formulário desativados não são validados pelo navegador.

Exemplo de um elemento <input> desativado:

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 de acessibilidade

Como um controle desativado não pode receber foco, usuários de teclado e leitores de tela simplesmente o ignoram e não recebem nenhuma explicação do motivo pelo qual ele está indisponível. Não confie apenas em deixá-lo acinzentado — quando o motivo importa, adicione texto de ajuda próximo, ou mantenha o controle ativo e valide ao enviar o formulário. Mantenha também contraste suficiente no texto desativado para que permaneça legível.

Pseudo-classes relacionadas

  • :enabled — o estado oposto: controles com os quais o usuário pode interagir.
  • :read-only e :read-write — para entradas readonly.
  • :required — controles que devem ser preenchidos.
  • :valid e :invalid — estados de validação de formulário.
  • :checked — checkboxes, radios e opções selecionados.
  • :focus — o elemento que atualmente tem o foco do teclado.

Especificações

Praticar

Prática
Quais são as características do atributo 'disabled' em CSS?
Quais são as características do atributo 'disabled' em CSS?
Was this page helpful?