Ви можете використовувати інший тег замість input
і застосовувати FontAwesome звичайним способом.
замість вашого input
з типом image
ви можете використовувати це:
<i class="icon-search icon-2x"></i>
швидкий CSS :
.icon-search {
color:white;
background-color:black;
}
Ось коротка скрипка:
DEMO
Ви можете стилізувати його трохи краще та додати функцію події до об’єкта i, що можна зробити, використовуючи <button type="submit">
об’єкт замість i
або за допомогою JavaScript.
Рішення кнопки буде приблизно таким:
<button type="submit" class="icon-search icon-large"></button>
І CSS :
.icon-search {
height:32px;
width:32px;
border: none;
cursor: pointer;
color:white;
background-color:black;
position:relative;
}
ось моя скрипка оновлена кнопкою замість i:
DEMO
Оновлення: Використання FontAwesome для будь-якого тегу
Проблема FontAwsome полягає в тому, що його таблиця стилів використовує :before
псевдоелементи для додавання піктограм до елемента - і псевдоелементи не працюють / заборонені для input
елементів. Ось чому використання FontAwesome у звичайному режимі не буде працювати input
.
Але є рішення - ви можете використовувати FontAwesome як звичайний шрифт приблизно так:
CSS:
input[type="submit"] {
font-family: FontAwesome;
}
HTML:
<input type="submit" class="search" value="" />
Гліфи можна передавати як значення value
атрибута. ASCII - коду для окремих букв / іконки можна знайти в CSS файл FontAwesome, потрібно просто змінити їх в ряд HTML ASCii , як \f002
в 
і вона повинна працювати.
Посилання на код ascii FontAwesome ( шпаргалка ): fortawesome.github.io/Font-Awesome/cheatsheet
Розмір піктограм можна легко регулювати за допомогою font-size
.
Див. input
Наведений вище приклад використання елемента в jsfidde:
Оновлення: FontAwesome 5
З версією FontAwesome 5 змінився CSS, необхідний для цього рішення - змінилася назва родини шрифтів і повинна бути вказана вага шрифту:
input[type="submit"] {
font-family: "Font Awesome 5 Free";
font-size: 1.3333333333333333em;
font-weight: 900;
}
Дивіться коментар @WillFastie із посиланням на оновлену скрипку нижче. Дякую!
:before
і , отже , не працюватиме зinput
абоimg
тегами ... але є просте рішення - а саме, використовуючи FontAwesome як звичайний шрифт ... бачити моє оновлене рішення вище. Сподіваюся, я отримаю голос назад ;-)