Estou tendo um inferno com este seletor CSS específico que não quer funcionar quando eu adiciono :not(:empty)
a ele. Parece funcionar bem com qualquer combinação dos outros seletores:
input:not(:empty):not(:focus):invalid { border-color: #A22; box-shadow: none }
Se eu remover a :not(:empty)
peça, funciona perfeitamente. Mesmo se eu mudar o seletor para input:not(:empty)
ele ainda não selecionará os campos de entrada que têm texto digitado neles. Ele está quebrado ou não tenho permissão para usar :empty
em um :not()
seletor?
A única outra coisa que consigo pensar é que os navegadores ainda estão dizendo que o elemento está vazio porque não tem filhos, apenas um "valor" por dizer. O :empty
seletor não tem funcionalidade separada para um elemento de entrada e um elemento regular? Isso não parece provável porque usar:empty
em um campo e digitar algo nele fará com que os efeitos alternativos desapareçam (porque ele não está mais vazio).
Testado no Firefox 8 e Chrome.
:empty
seletor : "Alguns outros elementos, por outro lado, estão vazios (ou seja, não têm filhos) por definição: <input>
, <img>
, <br>
, e <hr>
, por exemplo."
:not(:empty)
, a borda vermelha funcionará conforme o esperado para uma entrada que não está em foco, mas é inválida.