Użyj ikony Font Awesome w symbolu zastępczym

Czy możliwe jest użycie ikony Font Awesome w symbolu zastępczym? Czytałem, gdzie HTML nie jest dozwolony w zastępstwie. Czy istnieje jakieś obejście?

placeholder="<i class='icon-search'></i>"
Author: L84, 2013-10-14

11 answers

Nie możesz dodać ikony i tekstu, ponieważ nie możesz zastosować innej czcionki do części elementu zastępczego, jednak jeśli jesteś zadowolony z tylko ikony, może to działać. Ikony FontAwesome to tylko znaki z niestandardową czcionką (możesz spojrzeć na FontAwesome.css dla unikodowego znaku w regule content. W kodzie źródłowym less znajduje się w zmiennych .mniej wyzwaniem będzie wymiana czcionek, gdy wejście nie jest puste. Połącz z jQuery jak to .

<form role="form">
  <div class="form-group">
    <input type="text" class="form-control empty" id="iconified" placeholder="&#xF002;"/>
  </div>
</form>

Z tym CSS:

input.empty {
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    text-decoration: inherit;
}

I to (proste) jQuery

$('#iconified').on('keyup', function() {
    var input = $(this);
    if(input.val().length === 0) {
        input.addClass('empty');
    } else {
        input.removeClass('empty');
    }
});

Przejście między czcionkami nie będzie jednak płynne.

 40
Author: Jason Sperske,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-07 16:57:53

Jeśli używasz FontAwesome 4.7 to powinno wystarczyć:

<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>

<input type="text" placeholder="&#xF002; Search" style="font-family:Arial, FontAwesome" />

Listę kodów szesnastkowych można znaleźć w Font Awesome cheatsheet . Jednak w ostatnim FontAwesome 5.0 ta metoda nie działa (nawet jeśli używasz podejścia CSS połączonego ze zaktualizowaną font-family).

 179
Author: Elli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-10 18:32:34

Rozwiązałem tą metodą:

W CSS użyłem tego kodu dla fontAwesome class :

.fontAwesome {
  font-family: 'Helvetica', FontAwesome, sans-serif;
}

W kodzie HTML dodałem FontAwesome class oraz fontawesome icon code wewnątrz elementu zastępczego:

<input type="text" class="fontAwesome" name="emailAddress" placeholder="&#xf0e0;  insert email address ..." value="">

Możesz zobaczyć w CodePen.

 9
Author: huckbit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-29 14:43:37

Tam, gdzie jest obsługiwana, można użyć pseudoselektora ::input-placeholder w połączeniu z ::before.

Zobacz przykład na stronie:

Http://codepen.io/JonFabritius/pen/nHeJg

Właśnie nad tym pracowałem i natknąłem się na ten artykuł, z którego zmodyfikowałem to:

Http://davidwalsh.name/html5-placeholder-css

 8
Author: Jon Fabritius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-20 21:29:33

Używam Ember (Wersja 1.7.1) i musiałem zarówno powiązać wartość wejściową, jak i mieć symbol zastępczy, który był ikoną FontAwesome. Jedynym sposobem wiązania wartości w Ember (o którym wiem) jest użycie wbudowanego helpera. Ale to powoduje, że Element Zastępczy jest unikalny, "" pojawia się właśnie tak, tekst.

Jeśli używasz Embera lub nie, musisz ustawić CSS elementu zastępczego wejścia, aby miał rodzinę czcionek FontAwesome. To jest SCSS (using Bourbon for the stylizacja zastępcza):

    input {
      width:96%;
      margin:5px 2%;
      padding:0 8px;
      border:1px solid #444;
      border-radius: 14px;
      background: #fff;
      @include placeholder {
        font-family: 'FontAwesome', $gotham;
      }
    }

Jeśli używasz tylko kierownicy, jak wspomniano wcześniej, możesz po prostu ustawić encję html jako symbol zastępczy:

<input id="listFilter" placeholder="&#xF002;" type="text">

Jeśli używasz Ember, powiązaj symbol zastępczy z właściwością kontrolera, która ma wartość unicode.

W szablonie:

{{text-field
  id="listFilter"
  placeholder=listFilterPlaceholder
  value=listFilter}}

Na kontrolerze:

listFilter: null,
listFilterPlaceholder: "\uf002"

A Wiązanie wartości działa dobrze!

przykład zastępczy

placeholder gif

 6
Author: RustyToms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-21 19:35:26

Robię to dodając fa-placeholder klasę do tekstu wejściowego:

<input type="text" name="search" class="form-control" placeholder="&#xF002;" />

Więc w css po prostu dodaj to:

.fa-placholder { font-family: "FontAwesome"; }

Dla mnie działa dobrze.

Aktualizacja:

Aby zmienić czcionkę podczas wpisywania tekstu przez użytkownika, wystarczy dodać czcionkę po font awesome

.fa-placholder { font-family: "FontAwesome", "Source Sans Pro"; }

 4
Author: filosofikode,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-08 04:09:26

Użyj placeholder="&#xF002;" w swoim wejściu. Możesz znaleźć unicode w FontAwesome page http://fontawesome.io/icons /. Ale musisz upewnić się, że dodasz style="font-family: FontAwesome;" do swojego wejścia.

 4
Author: Junkkung HangHeng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-29 10:06:45

Ktoś zastanawia się nad Font Awesome 5 implementacja:

Nie określaj ogólnej rodziny czcionek "Font Awesome 5", musisz konkretnie zakończyć z gałęzią ikon, z którymi pracujesz. Tutaj używam na przykład gałęzi "marki".

<input style="font-family:'Font Awesome 5 Brands' !important" 
       type="text" placeholder="&#xf167">

Więcej Szczegółów Użyj ikony Font Awesome (5) w tekście zastępczym

 2
Author: Thomas Lindauer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-28 13:17:49

Jest małe opóźnienie i jank, ponieważ czcionka zmienia się w odpowiedzi udzielonej przez Jasona. Użycie zdarzenia" change "zamiast" keyup " rozwiązuje ten problem.

$('#iconified').on('change', function() {
    var input = $(this);
    if(input.val().length === 0) {
        input.addClass('empty');
    } else {
        input.removeClass('empty');
    }
});
 1
Author: Neil VanLandingham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-06 21:55:29

Ignorowanie jQuery można to zrobić używając ::placeholder elementu wejściowego.

<form role="form">
  <div class="form-group">
    <input type="text" class="form-control name" placeholder="&#xF002;"/>
  </div>
</form>

Część css

input.name::placeholder{ font-family:fontAwesome; font-size:[size needed]; color:[placeholder color needed] }

input.name{ font-family:[font family you want to specify] }

THE BEST PART: Możesz mieć inną rodzinę czcionek dla elementu zastępczego i tekstu

 1
Author: Veey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-02 13:53:29

Dodałem zarówno tekst, jak i ikonę w zastępstwie.

placeholder="Edit &nbsp; &#xf040;"

CSS:

font-family: FontAwesome,'Merriweather Sans', sans-serif;
 1
Author: user8351493,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-20 21:17:32