Nun, technisch gesehen ist es nicht möglich zu erhalten :before
und :after
Pseudoelemente arbeiten auf input
Elemente
Von W3C :
12.1 Die: vor und: nach Pseudoelementen
Autoren geben den Stil und die Position des generierten Inhalts mit den Pseudoelementen: before und: after an. Wie ihre Namen anzeigen, geben die Pseudoelemente: before und: after den Speicherort des Inhalts vor und nach dem Dokumentbauminhalt eines Elements an. Die Eigenschaft 'content' gibt in Verbindung mit diesen Pseudoelementen an, was eingefügt wird.
Ich hatte also ein Projekt, in dem ich Schaltflächen zum Senden in Form von input
Tags hatte, und aus irgendeinem Grund haben mich die anderen Entwickler darauf beschränkt, <button>
Tags anstelle der üblichen Schaltflächen zum Senden von Eingaben zu verwenden. Deshalb habe ich eine andere Lösung gefunden, die Schaltflächen in ein span
Set zu packen zu position: relative;
und dann das Symbol mit :after
Pseudo absolut positionieren .
Hinweis: Die Demo-Geige verwendet den Inhaltscode für FontAwesome 3.2.1, sodass Sie möglicherweise den Wert der content
Eigenschaft entsprechend ändern müssen .
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
Hier ist hier alles selbsterklärend, was eine Eigenschaft betrifft pointer-events: none;
, dh ich habe diese verwendet, da :after
Ihre Schaltfläche beim Bewegen des Mauszeigers über den pseudogenerierten Inhalt nicht klickt. Wenn Sie also den Wert von verwenden, none
wird die Klickaktion gezwungen, diesen Inhalt zu durchlaufen .
Aus dem Mozilla Developer Network :
Zusätzlich zu dem Hinweis, dass das Element nicht das Ziel von Mausereignissen ist, weist der Wert none das Mausereignis an, das Element "durchzugehen" und stattdessen auf das zu zielen, was sich "unter" diesem Element befindet.
Bewegen Sie den Mauszeiger über die Herzschrift Demound sehen Sie, was passiert, wenn Sie NICHT verwendenpointer-events: none;