Atualmente, estou usando readonly = "readonly" para desativar os campos. Agora estou tentando estilizar o atributo usando CSS. Eu tentei usar
input[readonly] {
/*styling info here*/
}
mas não está funcionando por algum motivo. Eu também tentei
input[readonly='readonly'] {
/*styling info here*/
}
isso também não funciona.
Como posso estilizar o atributo readonly com CSS?
html
css
css-selectors
Daphne
fonte
fonte
input[readonly]
Deveria trabalhar. Verifique se ele não está sendo substituído por outros seletores mais específicos em outras partes da folha de estilo.input[readonly='readonly']
só funcionará se você usar HTML como<input readonly="readonly">
, não por exemplo<input readonly>
.input[readonly]
deve corresponder a ambos.!important
deve trabalhar para substituir, a menos que você também tenha!important
na classe de configuração?Respostas:
https://curtistimson.co.uk/post/css/style-readonly-attribute-css/
fonte
input[readonly]
vez disso, você deve usar comoreadonly
é um atributo booleano que não foi projetado para ter um valor específico.readonly="readonly"
do seuinput
elemento.Observe que
textarea[readonly="readonly"]
funciona se você definirreadonly="readonly"
em HTML, mas NÃO funciona se você definir oreadOnly
atributo-paratrue
ou"readonly"
via JavaScript.Para que o seletor CSS funcione, se você definir
readOnly
com JavaScript, precisará usar o seletortextarea[readonly]
.Mesmo comportamento no Firefox 14 e Chrome 20.
Para estar do lado seguro, eu uso os dois seletores.
fonte
textarea[readonly]
- tudotextarea[readonly="readonly"]
é garantido para corresponder a isso.Para estar seguro, você pode usar os dois ...
O atributo readonly é um "atributo booleano", que pode estar em branco ou "readonly" (os únicos valores válidos). http://www.whatwg.org/specs/web-apps/current-work/#boolean-attribute
Se você estiver usando algo como a
.prop('readonly', true)
função do jQuery , acabará precisando[readonly]
, enquanto que se estiver usando.attr("readonly", "readonly")
, precisará[readonly="readonly"]
.Correção: Você só precisa usar
input[readonly]
. Incluirinput[readonly="readonly"]
é redundante. Consulte https://stackoverflow.com/a/19645203/1766230fonte
Cargas de respostas aqui, mas ainda não vi a que eu uso:
Observe o traço no pseudo-seletor. Se a entrada for,
readonly="false"
também será detectada, pois esse seletor captura a presença de somente leitura, independentemente do valor. Tecnicamente,false
é inválido de acordo com as especificações, mas a internet não é um mundo perfeito. Se precisar cobrir esse caso, você pode fazer o seguinte:textarea
funciona da mesma maneira:Tenha em mente que html agora suporta não só
type="text"
, mas uma série de outros tipos textuais como umnumber
,tel
,email
,date
,time
,url
, etc. Cada precisaria ser adicionado ao seletor.fonte
:read-only
e outros seletores de psuedo foram adicionados ao padrão W3C e podem ser usados com versões de pré-visualização do IE 10 10547 e superior.Há algumas maneiras de fazer isto.
O primeiro é o mais utilizado. Funciona em todos os principais navegadores.
Enquanto o item acima selecionará todas as entradas
readonly
anexadas, este abaixo selecionará apenas o que você deseja. Substituademo
por qualquer tipo de entrada desejado.Esta é uma alternativa à primeira, mas não é muito usada:
O
:read-only
seletor é suportado no Chrome, Opera e Safari. O Firefox usa:-moz-read-only
. O IE não suporta o:read-only
seletor.Você também pode usar
input[readonly="readonly"]
, mas isso é praticamente o mesmo queinput[readonly]
, pela minha experiência.fonte
Deverá cobrir todos os casos para um campo de entrada somente leitura ...
fonte
colocar em maiúscula a primeira letra de Only
fonte
Se você selecionar a entrada pelo id e adicionar a
input[readonly="readonly"]
tag no css, algo como:Isso não vai funcionar. Você precisa selecionar uma classe ou identificação pai e, em seguida, a entrada. Algo como:
Meus 2 centavos enquanto aguarda novos ingressos no trabalho: D
fonte
Use o seguinte para trabalhar em todos os navegadores:
fonte