J'essaie d'insérer une icône d'utilisateur dans le champ de saisie du nom d'utilisateur.
J'ai essayé l'une des solutions de la question similaire en
sachant que la background-image
propriété ne fonctionnera pas puisque Font Awesome est une police.
Voici mon approche et je ne parviens pas à afficher l'icône.
.wrapper input[type="text"] {
position: relative;
}
.wrapper input[type="text"]:before {
font-family: 'FontAwesome';
position: absolute;
top: 0px;
left: -5px;
content: "\f007";
}
J'ai déclaré la police de caractères dans la police par défaut.
@font-face {
font-family: 'FontAwesome';
src: url('../Font/fontawesome-webfont.eot?v=3.2.1');
src: url('../Font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../Font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../Font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../Font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
}
html
css
fonts
font-awesome
Seong Lee
la source
la source
Réponses:
Vous avez raison. : avant et: après le pseudo contenu n'est pas destiné à fonctionner sur le contenu remplacé comme les éléments
img
etinput
. L'ajout d'un élément d'habillage et la déclaration d'une famille de polices est l'une des possibilités, tout comme l'utilisation d'une image d'arrière-plan. Ou peut-être qu'un texte d'espace réservé html5 répond à vos besoins:Les navigateurs qui ne prennent pas en charge l'attribut d'espace réservé l'ignoreront simplement.
METTRE À JOUR
Le contenu avant sélecteur sélectionne l'entrée:
input[type="text"]:before
. Vous devez sélectionner l'emballage:.wrapper:before
. Voir http://jsfiddle.net/allcaps/gA4rx/ . J'ai également ajouté la suggestion d'espace réservé où le wrapper est redondant.Se retirer
Font Awesome utilise la zone d'utilisation privée Unicode (PUA) pour stocker les icônes. Les autres caractères ne sont pas présents et reviennent à la valeur par défaut du navigateur. Cela devrait être le même que pour toute autre entrée. Si vous définissez une police sur les éléments d'entrée, fournissez la même police de secours pour les situations où nous utilisons une icône. Comme ça:
la source
input { font-family: 'FontAwesome' YourFont; }
. est-ce que cela aide? Vous pouvez toujours poser une nouvelle question.Production:
HTML:
CSS:
(Ou)
Production:
HTML:
CSS:
la source
z-index: 1
fera que l'entrée sous-jacente attrapera le focus lorsque vous cliquez sur l'icône - ce que vous voudrez peut-être par exemple lors de l'ajout d'un sélecteur de date.position: relative
(les marges négatives n'en ont pas besoin) niz-index
(dès que l'élément est rendu après l'entrée)Vous pouvez utiliser un wrapper. Dans le wrapper, ajoutez l'élément font awesome
i
et l'input
élément.puis définissez la position du wrapper sur relative:
puis définissez la
i
position de l' élément sur absolue, et définissez-lui l'emplacement correct:(C'est un hack, je sais, mais ça fait le travail.)
la source
Cette réponse fonctionnera pour vous si vous avez besoin des conditions suivantes remplies (aucune des réponses actuelles ne remplit ces conditions):
Je crois que 3 est le nombre minimal d'éléments HTML pour satisfaire ces conditions:
la source
Pas besoin de coder beaucoup ... il suffit de suivre les étapes suivantes:
vous pouvez trouver les liens vers l'Unicode ( fontawesome ) ici ...
FontAwesome Unicode pour les icônes
la source
la source
Après avoir lu différentes versions de cette question et effectué des recherches, j'ai trouvé une solution assez claire et sans js. C'est similaire à la solution @allcaps mais évite le problème de la modification de la police d'entrée par rapport à la police principale du document.
Utilisez l'
::input-placeholder
attribut pour styliser spécifiquement le texte de l'espace réservé. Cela vous permet d'utiliser votre police d'icônes comme police d'espace réservé et votre corps (ou autre police) comme texte d'entrée réel. Actuellement, vous devez spécifier des sélecteurs spécifiques au fournisseur.Cela fonctionne bien tant que vous n'avez pas besoin d'une combinaison d'icône et de texte dans votre élément d'entrée. Si vous le faites, vous devrez accepter que le texte de l'espace réservé soit la police par défaut du navigateur (empattement simple sur le mien) pour les mots.
Par exemple
HTML
CSS
Violon avec les sélecteurs préfixés du navigateur: http://jsfiddle.net/gA4rx/78/
Notez que vous devez définir chaque sélecteur spécifique au navigateur comme une règle distincte. Si vous les combinez, le navigateur l'ignorera.
la source
font-family
ce sélecteur pour le moment. Nous ne pouvons qu'espérer une acceptation plus généralisée à l'avenir.J'ai trouvé le moyen le plus simple d'utiliser bootstrap 4.
la source
J'ai réussi ça comme ça
Le résultat ressemble à ceci:
Note d'accompagnement
Veuillez noter que j'utilise Ruby on Rails, donc mon code résultant semble un peu explosé. Le code de vue dans slim est en fait très concis:
la source
Pour moi, un moyen simple d'avoir une icône "dans" une entrée de texte sans avoir à essayer d'utiliser des pseudo-éléments avec une police géniale unicode, etc., est d'avoir l'entrée de texte et l'icône dans un élément wrapper que nous positionnerons par rapport, puis positionnez à la fois l'entrée de recherche et l'icône de police géniale absolue.
De la même manière que nous le faisons avec les images d'arrière-plan et le texte, nous le ferions ici. Je pense que c'est également bon pour les débutants, car le positionnement css est quelque chose qu'un débutant devrait apprendre au début de son parcours de codage, de sorte que le code est facile à comprendre et à réutiliser.
la source
S'appuyant sur la suggestion allcaps. Voici la méthode d'arrière-plan géniale avec le moins de HTML:
la source
Faites une icône cliquable pour se concentrer à l'intérieur de l'élément d'entrée de texte.
CSS
HTML
Ajoutez simplement l'icône de votre choix à l'intérieur de la
<i>
balise, à partir de la bibliothèque Font Awesome et profitez des résultats.la source
la source
purement CSS
la source
Ma solution était d'avoir un conteneur relatif autour du
input
pour contenir l'icône. Ce conteneur externe a un::after
avec l'icône souhaitée, positionnéabsolute
à l'intérieur du conteneur.HTML:
Code SASS:
la source
Ma solution pour ajouter une icône de police géniale à l'intérieur de l'élément d'entrée. Voici un code simple pour ajouter une icône à l'intérieur de l'élément d'entrée. Copiez simplement le code ci-dessous et placez-le là où vous souhaitez l'ajouter. ou si vous voulez changer l'icône, mettez simplement votre code d'icône dans la
<i>
balise.la source
Parfois, l'icône n'apparaîtra pas en raison de la version Font Awesome. Pour la version 5, le css doit être
la source
Moyen simple, mais vous avez besoin de bootstrap
la source
la source
J'ai essayé les trucs ci-dessous et cela fonctionne vraiment bien HTML
la source
Pour travailler avec unicode ou fontawesome, vous devez ajouter un
span
avecclass
comme ci-dessous:En HTML:
En CSS:
la source
la source