Est-il possible d'utiliser Font Awesome Icon dans un espace réservé? J'ai lu où HTML n'est pas autorisé dans un espace réservé. Y at-il un travail autour?
placeholder="<i class='icon-search'></i>"
Vous ne pouvez pas ajouter d'icône ni de texte car vous ne pouvez pas appliquer une police différente à une partie d'un espace réservé. Toutefois, si vous êtes satisfait d'une icône, cela peut fonctionner. Les icônes FontAwesome sont juste des caractères avec une police personnalisée (vous pouvez regarder le FontAwesome.css pour le caractère Unicode échappé dans la règle content
. Dans le code source inférieur, il se trouve dans - variables.less Le défi consiste à permuter les polices lorsque l'entrée n'est pas vide. Combinez-le avec jQuery comme this .
<form role="form">
<div class="form-group">
<input type="text" class="form-control empty" id="iconified" placeholder=""/>
</div>
</form>
Avec ce CSS:
input.empty {
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
text-decoration: inherit;
}
Et ce (simple) jQuery
$('#iconified').on('keyup', function() {
var input = $(this);
if(input.val().length === 0) {
input.addClass('empty');
} else {
input.removeClass('empty');
}
});
La transition entre les polices ne sera toutefois pas fluide.
Si vous utilisez FontAwesome 4.7
cela devrait suffire:
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<input type="text" placeholder=" Search" style="font-family:Arial, FontAwesome" />
Une liste des codes hexadécimaux se trouve dans le aide-mémoire Font Awesome . Cependant, dans la dernière version de FontAwesome 5.0, cette méthode ne fonctionne pas (même si vous utilisez l'approche CSS combinée avec le font-family
mis à jour).
J'ai résolu avec cette méthode:
Dans le CSS, j'ai utilisé ce code pour la classe fontAwesome :
.fontAwesome {
font-family: 'Helvetica', FontAwesome, sans-serif;
}
Dans le code HTML, j'ai ajouté la classe fontawesome et le code de l'icône fontawesome à l'intérieur de l'espace réservé:
<input type="text" class="fontAwesome" name="emailAddress" placeholder=" insert email address ..." value="">
Vous pouvez voir dans CodePen .
Là où cela est supporté, vous pouvez utiliser le pseudosélecteur ::input-placeholder
associé à ::before
.
Voir un exemple à:
http://codepen.io/JonFabritius/pen/nHeJg
Je travaillais juste sur ceci et suis tombé sur cet article, à partir duquel j'ai modifié ceci:
J'utilise Ember (version 1.7.1) et je devais à la fois lier la valeur de l'entrée et disposer d'un espace réservé qui était une icône FontAwesome. La seule façon de lier la valeur dans Ember (à ma connaissance) consiste à utiliser l'aide intégrée. Mais cela provoque l'échappement de l'espace réservé, "& # xF002" apparaît juste comme ça, text.
Si vous utilisez Ember ou non, vous devez définir le CSS de l'espace réservé de l'entrée pour avoir une famille de polices de FontAwesome. C'est SCSS (en utilisant Bourbon pour le style d'espace réservé ):
input {
width:96%;
margin:5px 2%;
padding:0 8px;
border:1px solid #444;
border-radius: 14px;
background: #fff;
@include placeholder {
font-family: 'FontAwesome', $gotham;
}
}
Si vous utilisez simplement un guidon, comme cela a été mentionné précédemment, vous pouvez simplement définir l'entité html comme espace réservé:
<input id="listFilter" placeholder="" type="text">
Si vous utilisez Ember liez l’espace réservé à une propriété de contrôleur ayant la valeur unicode.
dans le modèle:
{{text-field
id="listFilter"
placeholder=listFilterPlaceholder
value=listFilter}}
sur le contrôleur:
listFilter: null,
listFilterPlaceholder: "\uf002"
Et la liaison de valeur fonctionne bien!
Utilisez placeholder=""
dans votre entrée. Vous pouvez trouver unicode dans la page FontAwesome http://fontawesome.io/icons/ . Mais vous devez vous assurer d’ajouter style="font-family: FontAwesome;"
dans votre saisie.
Si vous vous interrogez sur une implémentation de Font Awesome 5 :
Ne spécifiez pas une famille de polices générale "Font Awesome 5", vous devez spécifiquement terminer avec la branche d'icônes avec laquelle vous travaillez. Ici, j'utilise la branche "Marques" par exemple.
<input style="font-family:'Font Awesome 5 Brands' !important"
type="text" placeholder="">
Plus de détails Icône Font Awesome (5) dans le texte de l'espace réservé pour la saisie
Je fais cela en ajoutant fa-placeholder
class au texte saisi:
<input type="text" name="search" class="form-control" placeholder="" />
alors, dans css, ajoutez simplement ceci:
.fa-placholder { font-family: "FontAwesome"; }
Cela fonctionne bien pour moi.
Mise à jour:
Pour changer la police pendant que l'utilisateur tape dans votre saisie de texte, ajoutez simplement votre police après la police
.fa-placholder { font-family: "FontAwesome", "Source Sans Pro"; }
En ignorant jQuery, vous pouvez utiliser ::placeholder
d'un élément d'entrée.
<form role="form">
<div class="form-group">
<input type="text" class="form-control name" placeholder=""/>
</div>
</form>
La partie 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] }
LA MEILLEURE PARTIE: vous pouvez avoir différentes familles de polices pour les espaces réservés et le texte.
Je sais que cette question est très ancienne. Mais je n'ai pas vu de réponse simple comme je le faisais auparavant.
Il vous suffit d'ajouter la classe fas
à l'entrée et de placer un hex valide dans ce cas 
pour Font-Awesome glyphe comme ici <input type="text" class="fas" placeholder="" />
Vous pouvez trouver l'unicode de chaque glyphe dans le site officiel ici .
Ceci est un exemple simple, vous n'avez pas besoin de css ou javascript.
input {
padding: 5px;
}
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
<form role="form">
<div class="form-group">
<input type="text" class="fas" placeholder="" />
</div>
</form>
Si vous pouvez/voulez utiliser Bootstrap, la solution serait groupe d'entrée:
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-search"></i></span>
</div>
<input type="text" class="form-control" placeholder="-">
</div>
Cela ressemble à ceci: entrée avec text-prepend et symbole de recherche
Il y a quelques légers retards et jank à mesure que la police change dans la réponse fournie par Jason. L'utilisation de l'événement "change" au lieu de "keyup" résout ce problème.
$('#iconified').on('change', function() {
var input = $(this);
if(input.val().length === 0) {
input.addClass('empty');
} else {
input.removeClass('empty');
}
});
J'ai ajouté le texte et l'icône ensemble dans un espace réservé.
placeholder="Edit "
CSS:
font-family: FontAwesome,'Merriweather Sans', sans-serif;
La réponse de @ Elli peut fonctionner dans FontAwesome 5, mais elle nécessite l’utilisation du nom de police correct et du code CSS spécifique à la version de votre choix. Par exemple, lors de l'utilisation de FA5 Free, je ne pouvais pas le faire fonctionner si j'incluais all.css, mais cela fonctionnait bien si j'incluais le fichier solid.css:
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/solid.css">
<input type="text" placeholder=" Search" style="font-family: Arial, 'Font Awesome 5 Free'" />
Pour FA5 Pro, le nom de la police est "Font Awesome 5 Pro".
Teocci solution est aussi simple que possible. Vous n'avez donc pas besoin d'ajouter de CSS, ajoutez simplement class = "fas" pour Font Awesome 5, car il ajoute la déclaration de police CSS appropriée à l'élément.
Voici un exemple de zone de recherche dans Bootstrap navbar, avec une icône de recherche ajoutée à la fois au groupe d'entrée et à l'espace réservé (pour des raisons de démonstration, personne ne les utilisera en même temps). Image: https://i.imgur.com/v4kQJ77.png "> Code:
<form class="form-inline my-2 my-lg-0">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fas fa-search"></i></span>
</div>
<input type="text" class="form-control fas text-right" placeholder="" aria-label="Search string">
<div class="input-group-append">
<button class="btn btn-success input-group-text bg-success text-white border-0">Search</button>
</div>
</div>
</form>
J'ai résolu le problème un peu différemment et cela fonctionne avec n'importe quelle icône de FA via le code HTML. Au lieu de toutes ces difficultés avec placeholder, ma solution est la suivante:
HTML
<i class="fas fa-icon block__icon"></i>
<input type="text" name="name" class="block__input" placeholder="Some text">
CSS
.block__icon {
position: absolute;
margin: some-corrections;
}
.block__input {
padding: some-corrections;
}
HTML
<!-- For example add some spaces in placeholder, to make focused cursor stay before an icon -->
...placeholder=" Some text"...
CSS
.block__icon {
position: absolute;
margin: some-corrections;
/* The new line */
pointer-events: none;
}
HTML
<i class="fas fa-icon block__icon"></i>
<input type="text" name="name" class="block__input" placeholder=" Some text">
CSS
.block__icon {
position: absolute;
z-index: 2; /* New line */
margin: some-corrections;
}
.block__input {
position: relative; /* New line */
z-index: 2; /* New line */
padding: some-corrections;
}
/* New */
.block__input:placeholder-shown {
z-index: 1;
}
C'est plus difficile que je ne le pensais auparavant, mais j'espère avoir aidé quelqu'un avec ça.