O :valid
seletor permite selecionar elementos que contêm conteúdo válido, conforme determinado por seu
type
atributo. :valid
é definido nas especificações CSS Selectors Nível 3 como um “pseudo-seletor de validade”, o que significa que é usado para estilizar elementos interativos com base em uma avaliação da entrada do usuário.
Esse seletor tem um uso específico: fornecer feedback a um usuário enquanto ele interage com um formulário na página. O exemplo abaixo usa CSS para transformar os campos "E-mail" em vermelho ou verde, respondendo se o conteúdo corresponde ou não a um padrão de endereço de e-mail válido:
Veja as entradas Pen: valid &: invalid por Chris Coyier (@chriscoyier) no CodePen
Observe como o primeiro (“Email”) é verde-válido, mesmo quando não há conteúdo no campo. Isso ocorre porque a entrada é opcional, portanto, deixá-la em branco resultaria em um envio de formulário válido. Para corrigir esse comportamento, o segundo
possui um atributo “obrigatório”, o que significa que um campo em branco resultaria em um envio de formulário inválido.
Pontos de interesse
:valid
pode ser “encadeado” com outros pseudo-seletores: como:focus
para validar apenas quando o usuário está digitando,:before
ou:after
para gerar ícones ou texto para fornecer mais feedback do usuário, ou seletores de atributo comoinput(value="")
validar apenas campos de entrada contendo conteúdo.
Suporte para navegador
cromada | Safári | Raposa de fogo | Ópera | IE | Android | iOS |
---|---|---|---|---|---|---|
10,0+ | 5.0+ | 4.0+ | 10,0+ | 10+ | 5+ | 2+ |
:valid
foi introduzido no Módulo 3 dos seletores CSS, o que significa que as versões antigas dos navegadores não o suportam. No entanto, o suporte do navegador moderno está cada vez melhor. Se você precisar de suporte a um navegador mais antigo, use polyfill ou use esses seletores de maneiras não críticas à melhoria progressiva, que é recomendada.