Eh bien, techniquement, il n'est pas possible d'obtenir :beforeet les :afterpseudo-éléments fonctionnent sur les inputéléments
Depuis le W3C :
12.1 Les pseudo-éléments: avant et: après
Les auteurs spécifient le style et l'emplacement du contenu généré avec les pseudo-éléments: avant et: après. Comme leurs noms l'indiquent, les pseudo-éléments: avant et: après spécifient l'emplacement du contenu avant et après le contenu de l'arborescence de documents d'un élément. La propriété 'content', en conjonction avec ces pseudo-éléments, spécifie ce qui est inséré.
J'ai donc eu un projet où j'avais des boutons de soumission sous forme de inputbalises et pour une raison quelconque, les autres développeurs m'ont restreint à utiliser des <button>balises au lieu des boutons de soumission d'entrée habituels, alors j'ai trouvé une autre solution, d'envelopper les boutons dans un spanensemble à position: relative;puis absolument positionner l'icône en utilisant :afterpseudo.
Remarque: Le violon de démonstration utilise le code de contenu de FontAwesome 3.2.1, vous devrez donc peut-être modifier la valeur de la contentproprié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;
}
Demo
Maintenant, ici, tout est explicite ici, à propos d'une propriété, c'est-à pointer-events: none;- dire que je l'ai utilisée parce que lorsque vous survolez le :aftercontenu généré par pseudo, votre bouton ne cliquera pas, donc l'utilisation de la valeur de noneforcera l'action de clic à passer à travers ce contenu .
De Mozilla Developer Network :
En plus d'indiquer que l'élément n'est pas la cible des événements de souris, la valeur none indique à l'événement de souris de passer "à travers" l'élément et de cibler tout ce qui est "en dessous" de cet élément à la place.
Survolez la police / l'icône du cœur Demoet voyez ce qui se passe si vous N'utilisez PASpointer-events: none;