Eh bien, techniquement, il n'est pas possible d'obtenir de l' :before
et :after
pseudo éléments de travail sur input
éléments
À partir du W3C:
12.1 Le :before et :after pseudo-éléments
Les auteurs de spécifier le style et l'emplacement, du contenu généré par les
:before et :after pseudo-éléments. Comme leurs noms l'indiquent, la
:before et :after pseudo-éléments de spécifier l'emplacement du contenu
avant et après un élément de l'arborescence du document contenu. Le "contenu"
bien, en conjonction avec ces pseudo-éléments, spécifie ce qui est
inséré.
J'ai donc eu un projet où j'ai eu des boutons de soumission sous la forme d' input
balises et pour une raison quelconque, les autres développeurs restreint moi d'utiliser <button>
balises au lieu de l'habituel entrée soumettre des boutons, alors je suis venu avec une autre solution, les boutons d'habillage intérieur d'un span
ensemble de position: relative;
puis absolument le positionnement de l'icône à l'aide de :after
pseudo.
Remarque: La démo de violon utilise le code de contenu pour FontAwesome 3.2.1 donc
vous devrez peut-être modifier la valeur de content
de la propriété en conséquence.
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;
}
Démo
Maintenant, ici, tout est auto-explicatif ici, sur une propriété que je.e pointer-events: none;
, je l'ai utilisé que parce que, sur le planant au-dessus de l' :after
pseudo du contenu généré par votre bouton ne cliquent pas, donc, en utilisant la valeur de none
force de l'action du clic à faire passer à travers ce contenu.
À Partir De Mozilla Developer Network :
En outre, indiquant que l'élément n'est pas la cible de la souris
les événements, la valeur none indique à l'événement de la souris pour aller "à travers" l'
l'élément cible et tout ce qui est "en dessous" de cet élément à la place.
Placez le cœur de police/icône de Démonstration et de voir ce qui se passe si vous N'utilisez PAS pointer-events: none;