Bạn có thể sử dụng thẻ khác thay thế input
và áp dụng FontAwesome theo cách bình thường.
thay vì của bạn input
với loại, image
bạn có thể sử dụng cái này:
<i class="icon-search icon-2x"></i>
CSS nhanh :
.icon-search {
color:white;
background-color:black;
}
Đây là một trò chơi nhanh:
DEMO
Bạn có thể tạo kiểu cho nó tốt hơn một chút và thêm chức năng sự kiện vào đối tượng i, bạn có thể làm điều này bằng cách sử dụng một <button type="submit">
đối tượng thay vì i
hoặc bằng javascript.
Nút sollution sẽ giống như sau:
<button type="submit" class="icon-search icon-large"></button>
Và CSS :
.icon-search {
height:32px;
width:32px;
border: none;
cursor: pointer;
color:white;
background-color:black;
position:relative;
}
đây là trò chơi của tôi được cập nhật bằng nút thay vì i:
DEMO
Cập nhật: Sử dụng FontAwesome trên bất kỳ thẻ nào
Vấn đề với FontAwsome là biểu định kiểu của nó sử dụng :before
các phần tử giả để thêm các biểu tượng vào một phần tử - và các phần tử giả không hoạt động / không được phép trên input
các phần tử. Đây là lý do tại sao sử dụng FontAwesome theo cách thông thường sẽ không hoạt động input
.
Nhưng có một giải pháp - bạn có thể sử dụng FontAwesome như một phông chữ thông thường như sau:
CSS:
input[type="submit"] {
font-family: FontAwesome;
}
HTML:
<input type="submit" class="search" value="" />
Các glyph có thể được chuyển dưới dạng giá trị của value
thuộc tính. Các mã ascii cho các chữ cái cá nhân / các biểu tượng có thể được tìm thấy trong file css FontAwesome, bạn chỉ cần thay đổi chúng thành một số HTML ascii như \f002
để 
và nó sẽ làm việc.
Liên kết tới mã ascii FontAwesome ( cheatsheet ): fortawesome.github.io/Font-Awesome/cheatsheet
Kích thước của các biểu tượng có thể dễ dàng điều chỉnh thông qua font-size
.
Xem ví dụ trên bằng cách sử dụng một input
phần tử trong jsfidde:
Cập nhật: FontAwesome 5
Với FontAwesome phiên bản 5, CSS yêu cầu cho giải pháp này đã thay đổi - tên họ phông chữ đã thay đổi và trọng lượng phông chữ phải được chỉ định:
input[type="submit"] {
font-family: "Font Awesome 5 Free";
font-size: 1.3333333333333333em;
font-weight: 900;
}
Xem bình luận của @WillFastie với liên kết đến phần dưới của fiddle được cập nhật. Cảm ơn!
:before
và do đó sẽ không hoạt động vớiinput
hoặcimg
các thẻ ... nhưng có một giải pháp đơn giản - cụ thể là sử dụng FontAwesome làm phông chữ thông thường ... hãy xem giải pháp cập nhật của tôi ở trên. Tôi hy vọng tôi sẽ kiếm được phiếu bầu trở lại ;-)