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 ;-)Aqui está uma solução que funciona com CSS simples e sintaxe de fonte padrão incrível, sem necessidade de valores Unicode, etc.
Crie uma
<input>
tag seguida por uma<i>
tag padrão com o ícone de que você precisa.Use o posicionamento relativo junto com uma ordem de camada superior (índice z) e mova o ícone para cima e para cima do campo de entrada.
(Opcional) Você pode tornar o ícone ativo, para talvez enviar os dados, via JS padrão.
Veja os três trechos de código abaixo para HTML / CSS / JS.
Ou o mesmo em JSFiddle aqui: Exemplo: http://jsfiddle.net/ethanpil/ws1g27y3/
fonte
Para aqueles que estão se perguntando como obter os ícones FontAwesome para a entrada drupal, você deve primeiro decodificar_entidades como:
fonte
Mude sua entrada para um elemento de botão e você pode usar as classes Font Awesome nele. O alinhamento do glifo não é muito bom na demonstração, mas você entendeu:
http://tinker.io/802b6/1
A vantagem aqui é que o formulário ainda é totalmente funcional sem precisar adicionar manipuladores de eventos para elementos que não são botões, mas parecem um.
fonte
Semelhante à resposta principal, usei o caractere Unicode na seção value = do HTML e chamei FontAwesome como a família da fonte nesse elemento de entrada. A única coisa que acrescentarei que a resposta principal não cobre é que, como meu elemento de valor também tinha texto dentro dele após o ícone, alterar a família da fonte para FontAwesome fez com que o texto normal tivesse uma aparência ruim. A solução foi simplesmente alterar o CSS para incluir fontes alternativas:
Dessa forma, FontAwesome agarrará o ícone, mas todo texto que não seja de ícone terá a fonte desejada aplicada.
fonte
fonte
maneira simples para uma nova fonte incrível
fonte
para trabalhar isso com unicode ou fontawesome, você deve adicionar um span com a classe como abaixo, porque a tag de entrada não suporta pseudo classes como: after. esta não é uma solução direta
em html:
em css:
fonte