Image Replacement em elementos input
11/02/07
Neste post, expliquei como eu estava querendo aplicar um fundo a elemento button. Eu e o Rapha aqui do UOL descobrimos ontem uma maneira de fazer isso no elemento input.
Olha que fácil. No markup:
<input type="button" value="Um botão" />
E o CSS:
input {
border: none;
background: url(http://m.simplesideias.com.br/document-save-as.png) no-repeat;
content: ""; /* opera */
display: inline-block; /* opera */
height: 32px;
line-height: 0; /* ie */
text-indent: -9999px;
width: 32px;
}
O melhor de tudo é que funciona até no Opera, coisa que não tinha conseguido fazer antes! ;)
Veja o resultado nos navegadores IE6 Standalone, IE7, Firefox 2 e Opera 9:


- Permalink
- Trackback
- Feed dos comentários
- Ao som de: Ramones – Danny Says

Comentários #
Você está usando a versão standalone do IE6 do evolt? Nunca usei essas versões standalone porque fico com um pé atrás. Não tenho como saber com certeza se o standalone irá se comportar da mesma forma em todas situações.
Por isso uso o IE6 "padrão" e o IE7 numa VM.
Não conhecia esse valor para display: inline-block.
Faz parte das recomendações do W3C?
Sim, é totalmente válida.
http://www.w3.org/TR/CSS21/visuren.html#display-prop
Muito, muito bom.
Gostei do truque com o content:""
[...] Ele descreve a solução no blog dele em http://simplesideias.com.br/image-replacement-em-elementos-input/ [...]
poxa kra, eu nao sabia disso nao, costumava usar input type imgage, vlw ai a dica.
flw abraço
[...] Image Replacement em elementos input? [...]
Eu prefiro usar a tag :
<input type="submit" value="Um botão" />
input.um_botao {
border: none;
background: url(http://m.simplesideias.com.br/document-save-as.png) no-repeat;
height: 32px;
text-indent: -9999px;
overflow: hidden;
width: 32px;
}
Show de bola!!!!
@Rafael: Teoricamente, esse código deveria funcionar - eu fazia assim antes - mas no Opera não rola. Com as regras que eu coloquei no post, funciona em todos!
Ae nando estou aplicando essas dicas em um trabalho,
Uma ultima duvida css válido? Sem opção de testes no momento.
Fabrício, todas as regras são válidas. A única coisa que acontece é que os browsers que não suportam determinada regra, simplesmente não a aplica.
Legal, assim fica mais fácil manipular o input…
Eu usaria a tag "button".
Claro que isso ficaria visualmente diferente, porem ficaria nítido que é um elemento "clicavel".
Leonardo, não acredito que ser visualmente clicável é um problema. Basta adicionar o css cursor: pointer. A idéia é que você pode padronizar todos os elementos do tipo button (button, submit).
Oi Nando e Rapha! Valeu o bizú, funcionou redondo aqui. Abraços…
Velho, vc salvou a minha paciência, a técnica foi tiro e queda… e olha q mexo com isso faz tempooooo…. preguiça de perguntar ao meu "mestre dos magos"
Abração guri, parabéns ai pela caminhada.
(=
Bela dica!
Vou testar essa implementação em meus futuros projetos…
Nando, enfrentei este problema ae lembrei de ter visto no seu blog.
Realmente fica perfeito!
Meus parabens! ;-)
Abrazzo
Jan
Massa. Até consegui fazer com o button, estava me batendo em fazer o IECA funcionar.
Abraços
Muito bom, sempre recorro quando me esqueço de alguma propriedade CSS… hehehe Parabéns!
Oi valeu! estava com um problema desses em um trabalho,e eis que encontro aqui a solução !!!
Funciona perfeitamente, muito obrigado.
Deixe um comentário