Дивовижний шрифт, тип введення "подати"


205

Здається, немає класу для типу введення 'submit' у шрифтовому плані. Чи можна використовувати якийсь клас із шрифтового дивовижного для введення кнопок? Я додав піктограми до всіх кнопок (які насправді посилаються на клас 'btn' від twitter-bootstrap) у своїх додатках, але я не можу додати піктограми під назвою «тип подання вводу».

Або, як використовувати цей код:

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>

(Який я взяв з HTML: Як зробити кнопку з текстом + зображенням уявити в ньому? ) З шрифтом дивним?

Відповіді:


345

використання кнопки type = "submit" замість введення

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

для використання шрифту Awesome 3.2.0

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

Дивовижно! Працює як очікувалося. Ще потрібні кілька кроків, щоб адаптувати це для simple_form або створити помічник, але це досить просто.
denis.peplin

19
Також пам’ятайте про відмінності між <button type=submit>та <input type=submit>: stackoverflow.com/questions/3543615/…
Павло

@ stanislav-mayorov це працює. Якщо ви використовуєте поточну версію 4.7, вам доведеться скоригуватися з 3.2.0 (з 2012 року). Спробуйте оновити відповідь.
Жоао Леме

@JoaoLeme <button type="submit">працює в будь-якій формі?
Рюйохо

Це не працює, коли я хочу уникати перезавантаження сторінки.
Спаситель

87

HTML

Оскільки <input>елемент відображає лише значення атрибута значення, ми маніпулюємо лише ним:

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

Я &#xf043;тут використовую сутність, яка відповідає U + F043, символу "відтінку" шрифту Awesome.

CSS

Тоді ми повинні стилізувати його, щоб використовувати шрифт:

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

Що дасть нам символ відтінку у шрифті Awesome та інший текст відповідним шрифтом.

Однак цей елемент управління не буде ідеальним для пікселів, тому вам, можливо, доведеться налаштувати його самостійно.


1
Дякую за відповідь, він працює, але я фактично не можу використовувати такий підхід, оскільки шрифт впливає на текст цілого значення. Я також використовую 'icon-large' в інших кнопках ... Для тих, хто спробує це, шрифтові коди тут: github.com/FortAwesome/Font-Awesome/blob/master/sass/…
denis.peplin

Я думаю, що це все, що ми можемо зробити тут. Особисто я пропоную вам залишити <input>значок sw / o.
Павло

добре працював, я маю використовувати <input type = "submit"> тому що у мене є дві подачі в одній формі
MuniR

це краще, ніж додавати "fa" до класу елементів, оскільки "fa" змінить висоту елемента.
Сівей Шень 申思维

Також ви можете використовувати font-familyвластивість стилю вбудованого тексту, щоб використовувати його в будь-яких елементах HTML, які мають текстовий вміст.
SaidbakR

54

Ви можете використовувати дивовижний шрифт utf

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

ось посилання на шпаргалку http://fortawesome.github.io/Font-Awesome/cheatsheet/


2
Це зробив мій день! Дякую .. Для будь-яких інших користувачів зверніть увагу на речення: скопіюйте та вставте піктограми (а не юнікод ) безпосередньо з цієї сторінки у свій дизайн, тобто скопіюйте фактичний значок, і він спрацює
PSR

17
<input type="button" class="fa" value="&#xf011; Login"/>без завантажувальної програми використовуйте клас класу, щоб змусити його працювати
StackHola

2
Якщо ви намагаєтесь встановити це за допомогою JavaScript або jQuery, використовуйте варіацію Unicode:$("input.search").addClass("fa").val("\uf011 Login");
Джеймі Чонг,

2
Навіть у Bootstrap мені потрібно додати class = "fa", щоб це працювало.
denis.peplin

12

Ну, технічно неможливо отримати, :beforeа :afterпсевдоелементи працюють над inputелементами

Від W3C :

12.1 Псевдоелементи: до і після

Автори визначають стиль та розташування створеного контенту за допомогою: перед та: після псевдоелементів. Як вказують їх назви, псевдоелементи: до та: після вказують розташування вмісту до та після вмісту дерева документа. Властивість "content" спільно з цими псевдоелементами визначає, що вставлено.


Тож у мене був проект, де я мав кнопки для надсилання у вигляді inputтегів, і чомусь інші розробники обмежили мене використовувати <button>теги замість звичайних кнопок подачі вводу, тож я придумав інше рішення - обгортати кнопки всередині spanнабору до, position: relative;а потім абсолютно позиціонувати піктограму за допомогою :afterпсевдо.

Примітка. Демонстраційна скрипка використовує код вмісту для FontAwesome 3.2.1, тому вам може знадобитися відповідно змінити значення contentвластивості.

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

Тепер тут все само собою пояснюється, про одну властивість, тобто pointer-events: none;я використав це, тому що, якщо навести курсор на :afterпсевдогенерований вміст, ваша кнопка не буде натискати, тому використання значення " noneсила" змусить дію клацання пройти через цей вміст .

Від мережі розробників Mozilla :

Крім вказівки на те, що елемент не є ціллю подій миші, значення жодне не вказує події миші пройти "через" елемент і націлити все, що знаходиться "під ним".

Наведіть курсор / піктограму серця Demoі подивіться, що станеться, якщо ви НЕ використовуєтеpointer-events: none;


1
Незважаючи на те, що це дуже круте рішення, у нього є один великий недолік: pointer-events: none не підтримується IE <11 ( caniuse.com/#feat=pointer-events ). Причина полягає в тому, що властивість покажчика-події була створена для елементів SVG (векторної графіки), а технічно це не в специфікаціях W3C для інших елементів HTML (поки, wiki.csswg.org/spec/css4-ui#pointer-events ), хоча всі сучасні браузери, крім IE <11, підтримують його.
CaspianRoach

9

Можна використовувати класи кнопок btn-linkі btn-xsз типом submit, який зробить маленьку невидиму кнопку з піктограмою всередині неї. Приклад:

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

5

Також можливо подібне

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

1

Якщо для декількох подань потрібне значення вибраного подання, це можна зробити досить легко. Просто створіть у формі приховане поле та змініть його значення залежно від того, яку кнопку натиснули. Наприклад, у формі, скажіть, у вас є:

<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>

Використання jQuery:

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

Потім ви можете отримати значення кнопки, натиснутої в змінній публікації "Клацання"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.