Vous pouvez utiliser une autre balise au lieu de input
et appliquer FontAwesome de la manière habituelle.
au lieu de votre input
type avec, image
vous pouvez utiliser ceci:
<i class="icon-search icon-2x"></i>
CSS rapide :
.icon-search {
color:white;
background-color:black;
}
Voici un petit violon:
DEMO
Vous pouvez le styliser un peu mieux et ajouter des fonctionnalités d'événement à l'objet i, ce que vous pouvez faire en utilisant un <button type="submit">
objet à la place de i
ou avec javascript.
Le bouton sollution serait quelque chose comme ceci:
<button type="submit" class="icon-search icon-large"></button>
Et le CSS :
.icon-search {
height:32px;
width:32px;
border: none;
cursor: pointer;
color:white;
background-color:black;
position:relative;
}
voici mon violon mis à jour avec le bouton au lieu de i:
DEMO
Mise à jour: utilisation de FontAwesome sur n'importe quelle balise
Le problème avec FontAwsome est que sa feuille de style utilise des :before
pseudo-éléments pour ajouter les icônes à un élément - et les pseudo éléments ne fonctionnent pas / ne sont pas autorisés sur les input
éléments. C'est pourquoi l'utilisation de FontAwesome de manière normale ne fonctionnera pas avec input
.
Mais il existe une solution - vous pouvez utiliser FontAwesome comme une police régulière comme ceci:
CSS:
input[type="submit"] {
font-family: FontAwesome;
}
HTML:
<input type="submit" class="search" value="" />
Les glyphes peuvent être passés comme valeurs de l' value
attribut. Les codes ascii pour les lettres / icônes individuelles peuvent être trouvés dans le fichier css FontAwesome, il vous suffit de les changer en un numéro HTML ascii comme \f002
à 
et cela devrait fonctionner.
Lien vers le code ascii de FontAwesome ( cheatsheet ): fortawesome.github.io/Font-Awesome/cheatsheet
La taille des icônes peut être facilement ajustée via font-size
.
Voir l'exemple ci-dessus en utilisant un input
élément dans un jsfidde:
Mise à jour: FontAwesome 5
Avec FontAwesome version 5, le CSS requis pour cette solution a changé - le nom de la famille de polices a changé et le poids de la police doit être spécifié:
input[type="submit"] {
font-family: "Font Awesome 5 Free"; // for the open access version
font-size: 1.3333333333333333em;
font-weight: 900;
}
Voir le commentaire de @WillFastie avec un lien vers le nouveau violon ci-dessous. Merci!
:before
et ne fonctionnera donc pas avec les balisesinput
ouimg
... mais il existe une solution simple - à savoir, utiliser FontAwesome comme police régulière ... au dessus. J'espère gagner le vote ;-)Voici une solution qui fonctionne avec un CSS simple et une syntaxe géniale de police standard, pas besoin de valeurs Unicode, etc.
Créez une
<input>
balise suivie d'une<i>
balise standard avec l'icône dont vous avez besoin.Utilisez le positionnement relatif avec un ordre de calque supérieur (z-index) et déplacez l'icône au-dessus et au-dessus du champ de saisie.
(Facultatif) Vous pouvez activer l'icône, pour éventuellement soumettre les données, via le JS standard.
Voir les trois extraits de code ci-dessous pour le HTML / CSS / JS.
Ou la même chose dans JSFiddle ici: Exemple: http://jsfiddle.net/ethanpil/ws1g27y3/
la source
Pour ceux qui se demandent comment obtenir des icônes FontAwesome en entrée drupal, vous devez d'abord decode_entities comme ceci:
la source
Changez votre entrée en un élément de bouton et vous pouvez utiliser les classes Font Awesome dessus. L'alignement du glyphe n'est pas génial dans la démo, mais vous voyez l'idée:
http://tinker.io/802b6/1
L'avantage ici est que le formulaire est toujours entièrement fonctionnel sans avoir à ajouter des gestionnaires d'événements pour les éléments qui ne sont pas des boutons mais qui en ressemblent.
la source
Semblable à la réponse principale, j'ai utilisé le caractère unicode dans la section value = du HTML et appelé FontAwesome comme famille de polices sur cet élément d'entrée. La seule chose que j'ajouterai que la réponse principale ne couvre pas est que, parce que mon élément de valeur avait également du texte à l'intérieur après l'icône, le changement de la famille de polices en FontAwesome a rendu le texte normal mauvais. La solution consistait simplement à modifier le CSS pour inclure des polices de secours:
De cette façon, FontAwesome récupérera l'icône, mais tout texte non-icône aura la police souhaitée appliquée.
la source
la source
moyen simple pour une nouvelle police géniale
la source
pour travailler avec unicode ou fontawesome, vous devez ajouter un span avec la classe comme ci-dessous, car la balise d'entrée ne prend pas en charge les pseudo-classes comme: after. ce n'est pas une solution directe
en html:
en css:
la source