372 votes

Mettre une icône dans l'élément de saisie d'un formulaire

Comment placer une icône dans l'élément de saisie d'un formulaire ?

Screenshot of a web form with three inputs which have icons in them

Version live à : Thème Tidal Force

2 votes

@IvanSokalskiy C'est en supposant que quelqu'un utilise Bootstrap. Toutes les personnes qui rencontrent ce problème n'utilisent pas Bootstrap !

0 votes

0 votes

Cela répond-il à votre question ? geeksforgeeks.org/

489voto

Daniel Lew Points 39063

Le site dont vous avez donné le lien utilise une combinaison d'astuces CSS pour y parvenir. Tout d'abord, il utilise une image d'arrière-plan pour la balise <input> élément. Ensuite, pour faire passer le curseur, il utilise la méthode suivante padding-left .

En d'autres termes, ils ont ces deux règles CSS :

background: url(images/comment-author.gif) no-repeat scroll 7px 7px;
padding-left:30px;

3 votes

Pourriez-vous décrire plus en détail les paramètres top et left (7px 7 px) et les autres attributs ? Cela doit être utile.

0 votes

Le site padding-left est ignoré par Internet Explorer 8. Enfin, pas vraiment ignoré, mais dès que je tape une longue entrée, l'entrée commence à apparaître devant l'icône.

375 votes

Conseil : cessez d'utiliser et de soutenir IE 8.

78voto

harpo Points 17399

Les solutions CSS publiées par d'autres sont la meilleure façon d'y parvenir.

Si cela vous pose problème (lire IE6), vous pouvez également utiliser une entrée sans bordure à l'intérieur d'un div.

<div style="border: 1px solid #DDD;">
    <img src="icon.png"/>
    <input style="border: none;"/>
</div>

Pas aussi "propre", mais devrait fonctionner sur les anciens navigateurs.

2 votes

Une bonne addition à cette réponse. parfois ie donne des problèmes et c'est une bonne façon de résoudre l'un d'entre eux. cela a fonctionné pour moi bien qu'avec un span à la place.

0 votes

Une bonne façon d'ajouter des structures plus complexes dans les entrées !

1 votes

@jonhue, je ne le recommanderais pas à moins que vous viviez encore dans la décennie précédente et que vous ayez besoin de supporter IE6. Même dans ce cas, je ne dirais pas que c'est "propre".

40voto

Alan Haggai Alavi Points 34260

Vous pouvez essayer ceci :

input[type='text'] {
    background-image: url(images/comment-author.gif);
    background-position: 7px 7px;
    background-repeat: no-repeat;
}

8voto

M.Rafi Haidari Points 1
.icon{
background: url(1.jpg) no-repeat;
padding-left:25px;
}

ajoutez les balises ci-dessus dans votre fichier CSS et utilisez la classe spécifiée.

4voto

Dan Walker Points 3466

Il suffit d'utiliser la propriété background dans votre CSS.

<input id="foo" type="text" />

#foo
{
    background: url(/img/foo.png);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X