Możesz użyć innego tagu zamiast input
i zastosować FontAwesome w normalny sposób.
zamiast twojego input
z typem image
możesz użyć tego:
<i class="icon-search icon-2x"></i>
szybki CSS :
.icon-search {
color:white;
background-color:black;
}
Oto krótkie skrzypce:
DEMO
Możesz nieco poprawić styl i dodać funkcjonalność zdarzeń do obiektu i, co możesz zrobić, używając <button type="submit">
obiektu zamiast i
lub za pomocą javascript.
Rozwiązanie przycisku wyglądałoby mniej więcej tak:
<button type="submit" class="icon-search icon-large"></button>
Oraz CSS :
.icon-search {
height:32px;
width:32px;
border: none;
cursor: pointer;
color:white;
background-color:black;
position:relative;
}
oto moje skrzypce zaktualizowane przyciskiem zamiast i:
DEMO
Aktualizacja: używanie FontAwesome na dowolnym tagu
Problem z FontAwsome polega na tym, że jego arkusz stylów używa :before
pseudoelementów do dodawania ikon do elementu - a pseudoelementy nie działają / nie są dozwolone na input
elementach. Dlatego używanie FontAwesome w normalny sposób nie zadziała input
.
Ale jest rozwiązanie - możesz użyć FontAwesome jako zwykłej czcionki, na przykład:
CSS:
input[type="submit"] {
font-family: FontAwesome;
}
HTML:
<input type="submit" class="search" value="" />
Glify mogą być przekazywane jako wartości value
atrybutu. Kody ascii dla poszczególnych liter / ikon można znaleźć w pliku css FontAwesome, wystarczy je zmienić na numer ascii HTML, taki jak \f002
to 
i powinno działać.
Link do kodu ascii FontAwesome ( ściągawka ): fortawesome.github.io/Font-Awesome/cheatsheet
Rozmiar ikon można łatwo dostosować za pomocą font-size
.
Zobacz powyższy przykład z użyciem input
elementu w jsfidde:
Aktualizacja: FontAwesome 5
Wraz z FontAwesome w wersji 5 zmienił się CSS wymagany dla tego rozwiązania - zmieniła się nazwa rodziny czcionek i należy określić grubość czcionki:
input[type="submit"] {
font-family: "Font Awesome 5 Free";
font-size: 1.3333333333333333em;
font-weight: 900;
}
Zobacz komentarz @WillFastie z linkiem do zaktualizowanych skrzypiec poniżej. Dzięki!
:before
i dlatego nie będzie działać z tagamiinput
lubimg
... ale jest proste rozwiązanie - mianowicie użycie FontAwesome jako zwykłej czcionki ... zobacz moje zaktualizowane rozwiązanie powyżej. Mam nadzieję, że odzyskam głos ;-)