Phông chữ tuyệt vời, kiểu nhập 'gửi'


205

Dường như không có lớp nào cho kiểu nhập 'gửi' trong phông chữ tuyệt vời. Có thể sử dụng một số lớp từ phông chữ tuyệt vời cho đầu vào nút? Tôi đã thêm các biểu tượng cho tất cả các nút (thực sự liên kết với lớp 'btn' từ twitter-bootstrap) trong các ứng dụng của tôi, nhưng không thể thêm biểu tượng vào 'gửi kiểu nhập'.

Hoặc, làm thế nào để sử dụng mã này:

input#image-button{
    background: #ccc url('icon.png') no-repeat top left;
    padding-left: 16px;
    height: 16px;
}

html:

<input type="submit" id="image-button">Text</input>

(mà tôi đã lấy từ HTML: Làm cách nào để tạo nút gửi với văn bản + hình ảnh trong đó? ) với phông chữ tuyệt vời?

Câu trả lời:


345

sử dụng loại nút = "gửi" thay vì đầu vào

<button type="submit" class="btn btn-success">
    <i class="fa fa-arrow-circle-right fa-lg"></i> Next
</button>

để sử dụng Font Awesome 3.2.0

<button type="submit" class="btn btn-success">
    <i class="icon-circle-arrow-right icon-large"></i> Next
</button>

Tuyệt vời! Hoạt động như mong đợi. Vẫn cần một số bước để điều chỉnh điều này cho Simple_form hoặc tạo một trình trợ giúp, nhưng nó tương đối dễ dàng.
denis.peplin

19
Ngoài ra, hãy lưu ý đến sự khác biệt giữa <button type=submit><input type=submit>: stackoverflow.com/questions/3543615/
Kẻ

@ stanislav-mayorov nó hoạt động. Nếu bạn đang sử dụng phiên bản 4.7 hiện tại, bạn phải điều chỉnh từ 3.2.0 (từ 2012). Hãy thử câu trả lời cập nhật.
Joao Leme

@JoaoLeme không <button type="submit">hoạt động dưới hình thức nào?
Ryuujo

Điều này không hoạt động khi tôi muốn tránh tải lại trang.
Salvioner

87

HTML

Do <input>phần tử chỉ hiển thị giá trị của thuộc tính value, nên chúng ta chỉ thao tác với nó:

<input type="submit" class="btn fa-input" value="&#xf043; Input">

Tôi đang sử dụng &#xf043;thực thể ở đây, tương ứng với U + F043, biểu tượng 'tint' của Font Awesome.

CSS

Sau đó, chúng ta phải tạo kiểu cho nó để sử dụng phông chữ:

.fa-input {
  font-family: FontAwesome, 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

Điều này sẽ cung cấp cho chúng tôi biểu tượng màu trong Phông chữ Tuyệt vời và văn bản khác trong phông chữ thích hợp.

Tuy nhiên, điều khiển này sẽ không hoàn hảo về pixel, do đó bạn có thể phải tự điều chỉnh nó.


1
Cảm ơn câu trả lời, nó hoạt động, nhưng tôi thực sự không thể sử dụng phương pháp này, vì phông chữ ảnh hưởng đến toàn bộ văn bản của giá trị. Tôi cũng sử dụng 'icon-Large' trong các nút khác ... Đối với những người sẽ thử điều này, mã phông chữ có ở đây: github.com/FortAwemme/Font-Awemme/blob/master/sass/iêu
denis.peplin

Tôi nghĩ đó là tất cả những gì chúng ta có thể làm ở đây. Cá nhân tôi đề nghị bạn để lại <input>sw / o một biểu tượng.
Pavlo

hoạt động tốt, tôi phải sử dụng <input type = "submit"> vì tôi có hai lần gửi trong một hình thức
MuniR

điều này tốt hơn việc thêm "fa" vào lớp của phần tử, vì "fa" sẽ thay đổi chiều cao của phần tử.
Siwei Shen

Ngoài ra, bạn có thể sử dụng thuộc tính kiểu nội tuyến font-familyđể sử dụng nó trong bất kỳ thành phần HTML nào có nội dung văn bản.
SaidbakR

54

Bạn có thể sử dụng phông chữ utf tuyệt vời

<input type="submit" class="btn btn-success" value="&#xf011; Login"/>

đây là đường dẫn cho chiếc áo choàng http://fortawgie.github.io/Font-Aw đũa / áo


2
Điều này làm cho ngày của tôi! Cảm ơn .. Đối với bất kỳ người dùng nào khác, vui lòng lưu ý câu: sao chép và dán các biểu tượng ( không phải là unicode ) trực tiếp từ trang này vào thiết kế của bạn, tức là sao chép biểu tượng thực tế và nó sẽ hoạt động
PSR

17
<input type="button" class="fa" value="&#xf011; Login"/>không có bootstrap, hãy sử dụng lớp fa để nó hoạt động
StackHola

2
Nếu bạn đang cố gắng thiết lập điều này với javascript hoặc jQuery, hãy sử dụng biến thể unicode:$("input.search").addClass("fa").val("\uf011 Login");
Jamie Chong

2
Ngay cả với Bootstrap tôi cũng cần thêm class = "fa" để làm việc này.
denis.peplin

12

Chà, về mặt kỹ thuật thì không thể có được :before:aftercác phần tử giả hoạt động trên inputcác phần tử

Từ W3C :

12.1 The: trước và: sau các phần tử giả

Các tác giả chỉ định kiểu và vị trí của nội dung được tạo bằng: trước và sau các phần tử giả. Như tên của chúng chỉ ra, các phần tử giả trước: sau và sau xác định vị trí của nội dung trước và sau nội dung của cây tài liệu. Thuộc tính 'nội dung', kết hợp với các phần tử giả này, chỉ định nội dung được chèn.


Vì vậy, tôi đã có một dự án nơi tôi đã gửi các nút ở dạng input thẻ và vì một số lý do, các nhà phát triển khác đã hạn chế tôi sử dụng <button>các thẻ thay vì các nút gửi đầu vào thông thường, vì vậy tôi đã đưa ra một giải pháp khác, đó là bọc các nút bên trong một spanbộ đến position: relative;và sau đó hoàn toàn định vị biểu tượng bằng :aftergiả.

Lưu ý: Fiddle demo sử dụng mã nội dung cho FontAwgie 3.2.1, do đó bạn có thể cần thay đổi giá trị của thuộc contenttính cho phù hợp.

HTML

<span><input type="submit" value="Send" class="btn btn-default" /></span>

CSS

input[type="submit"] {
    margin: 10px;
    padding-right: 30px;
}

span {
    position: relative;
}

span:after {
    font-family: FontAwesome;
    content: "\f004"; /* Value may need to be changed in newer version of font awesome*/
    font-size: 13px;
    position: absolute;
    right: 20px;
    top: 1px;
    pointer-events: none;
}

Demo

Bây giờ ở đây mọi thứ đều tự giải thích ở đây, về một tài sản tức là pointer-events: none; , tôi đã sử dụng điều đó bởi vì khi di chuột qua :afternội dung giả tạo, nút của bạn sẽ không nhấp, do đó, sử dụng giá trị nonesẽ buộc hành động nhấp đi qua nội dung đó .

Từ Mạng lưới nhà phát triển Mozilla :

Ngoài việc chỉ ra rằng phần tử không phải là mục tiêu của các sự kiện chuột, giá trị không hướng dẫn sự kiện chuột đi qua "phần tử" và nhắm mục tiêu bất cứ điều gì là "bên dưới" phần tử đó.

Di chuột vào phông chữ / biểu tượng trái tim Demovà xem điều gì sẽ xảy ra nếu bạn KHÔNG sử dụngpointer-events: none;


1
Mặc dù một giải pháp rất tuyệt vời nhưng nó có một nhược điểm lớn: các sự kiện con trỏ: không được hỗ trợ bởi IE <11 ( caniuse.com/#feat=pulum-events ). Lý do là thuộc tính sự kiện con trỏ được tạo cho các phần tử SVG (đồ họa vectơ) và về mặt kỹ thuật không có trong thông số kỹ thuật W3C cho các phần tử HTML khác (tuy nhiên, wiki.csswg.org/spec/css4-ui#pulum-events ) mặc dù tất cả các trình duyệt hiện đại ngoại trừ IE <11 đều hỗ trợ nó.
CaspianRoach

9

Bạn có thể sử dụng các lớp nút btn-linkbtn-xsvới loại submit, sẽ tạo một nút nhỏ vô hình với một biểu tượng bên trong nó. Thí dụ:

<button class="btn btn-link btn-xs" type="submit" name="action" value="delete">
    <i class="fa fa-times text-danger"></i>
</button>

5

Cũng có thể như thế này

<button type="submit" class="icon-search icon-large"></button>

1

Với nhiều lần gửi, khi bạn cần giá trị của lần gửi được chọn, việc này có thể được thực hiện khá dễ dàng. Chỉ cần tạo một trường ẩn trong biểu mẫu của bạn và thay đổi giá trị của nó tùy thuộc vào nút nào được nhấp. Ví dụ: trong biểu mẫu, giả sử bạn có:

<input type="hidden" id="Clicked" name="Clicked" value="" />
<button type="submit" class="btn btn-success ClickCheck" id="Create"> <i class="fa fa-file-pdf-o"> Create Bill</i></button>
<button type="submit" class="btn btn-success ClickCheck" id="Reset"> <i class="fa fa-times"> Reset</i></button>
<button type="submit" class="btn btn-success ClickCheck" id="StoreData"> <i class="fa fa-archive"> Save</i></button>

Sử dụng jQuery:

<script type="text/javascript">
    $(document).ready(function()
    {
        $('.ClickCheck').click(function()
        {
            var ButtonID = $(this).attr('id');
            $('#Clicked').val(ButtonID);
        });
    });
</script>

Sau đó, bạn có thể truy xuất giá trị của nút được nhấp trong biến bài "Đã nhấp"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.