Você pode usar outra tag em vez de input
e aplicar FontAwesome da maneira normal.
em vez de input
com tipo, image
você pode usar isto:
<i class="icon-search icon-2x"></i>
CSS rápido :
.icon-search {
color:white;
background-color:black;
}
Aqui está um violino rápido:
DEMO
Você pode estilizá-lo um pouco melhor e adicionar funcionalidade de evento ao objeto i, o que pode ser feito usando um <button type="submit">
objeto em vez de i
ou com javascript.
A solução do botão seria algo assim:
<button type="submit" class="icon-search icon-large"></button>
E o CSS :
.icon-search {
height:32px;
width:32px;
border: none;
cursor: pointer;
color:white;
background-color:black;
position:relative;
}
aqui está meu violino atualizado com o botão em vez de i:
DEMO
Atualização: Usando FontAwesome em qualquer tag
O problema com FontAwsome é que sua folha de estilo usa :before
pseudo-elementos para adicionar os ícones a um elemento - e pseudo-elementos não funcionam / não são permitidos nos input
elementos. É por isso que usar FontAwesome da maneira normal não funcionará input
.
Mas há uma solução - você pode usar FontAwesome como uma fonte regular, assim:
CSS:
input[type="submit"] {
font-family: FontAwesome;
}
HTML:
<input type="submit" class="search" value="" />
Os glifos podem ser passados como valores do value
atributo. Os códigos ASCII para as letras / ícones individuais podem ser encontrados no arquivo css FontAwesome, você só precisa mudá-los para um número ASCII HTML como \f002
em 
e deve funcionar.
Link para o código ascii FontAwesome ( cheatsheet ): fortawesome.github.io/Font-Awesome/cheatsheet
O tamanho dos ícones pode ser facilmente ajustado via font-size
.
Veja o exemplo acima usando um input
elemento em um jsfidde:
Atualização: FontAwesome 5
Com o FontAwesome versão 5, o CSS necessário para esta solução mudou - o nome da família da fonte mudou e a espessura da fonte deve ser especificada:
input[type="submit"] {
font-family: "Font Awesome 5 Free"; // for the open access version
font-size: 1.3333333333333333em;
font-weight: 900;
}
Veja o comentário de @WillFastie com o link para o violino atualizado abaixo. Obrigado!
:before
e, portanto, não funciona com as tagsinput
ouimg
... mas há uma solução simples - ou seja, usar FontAwesome como fonte normal ... veja minha solução atualizada acima. Espero ganhar o voto de volta ;-)