Ich versuche, ein Benutzersymbol in das Eingabefeld für den Benutzernamen einzufügen.
Ich habe eine der Lösungen aus der ähnlichen Frage ausprobiert ,
weil ich das wusstebackground-image
Eigenschaft nicht funktioniert, da Font Awesome eine Schriftart ist.
Das Folgende ist mein Ansatz und ich kann die Symbolanzeige nicht erhalten.
.wrapper input[type="text"] {
position: relative;
}
.wrapper input[type="text"]:before {
font-family: 'FontAwesome';
position: absolute;
top: 0px;
left: -5px;
content: "\f007";
}
Ich habe Schriftarten in der Standardschrift CSS deklariert, daher war ich mir nicht sicher, ob das Hinzufügen der obigen Schriftfamilie der richtige Ansatz war.
@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
quelle
quelle
Antworten:
Du hast recht. : vor und: nach Pseudo-Inhalten ist nicht dazu gedacht, ersetzte Inhalte wie
img
undinput
Elemente zu bearbeiten . Das Hinzufügen eines Umbruchelements und das Deklarieren einer Schriftfamilie ist eine der Möglichkeiten, ebenso wie die Verwendung eines Hintergrundbilds. Oder vielleicht passt ein HTML5-Platzhaltertext zu Ihren Anforderungen:Browser, die das Platzhalterattribut nicht unterstützen, ignorieren es einfach.
AKTUALISIEREN
Die Vorinhaltsauswahl wählt die Eingabe aus :
input[type="text"]:before
. Sie sollten den Wrapper auswählen :.wrapper:before
. Siehe http://jsfiddle.net/allcaps/gA4rx/ . Ich habe auch den Platzhaltervorschlag hinzugefügt, bei dem der Wrapper redundant ist.Zurückfallen
Font Awesome verwendet den Unicode Private Use Area (PUA) zum Speichern von Symbolen. Andere Zeichen sind nicht vorhanden und greifen auf die Standardeinstellung des Browsers zurück. Das sollte mit jeder anderen Eingabe identisch sein. Wenn Sie eine Schriftart für Eingabeelemente definieren, geben Sie dieselbe Schriftart wie Fallback für Situationen an, in denen wir ein Symbol verwenden. So was:
quelle
input { font-family: 'FontAwesome' YourFont; }
. Hilft das? Sie können jederzeit eine neue Frage stellen.Ausgabe:
HTML:
CSS:
(Oder)
Ausgabe:
HTML:
CSS:
quelle
z-index: 1
wird die zugrunde liegende Eingabe beim Klicken auf das Symbol in den Fokus gerückt - etwas, das Sie beispielsweise beim Hinzufügen eines Datepickers wünschen.position: relative
(negative Ränder brauchen es nicht) nochz-index
(sobald das Element nach der Eingabe gerendert wird)Sie könnten einen Wrapper verwenden. Fügen Sie im Wrapper
i
dasinput
Element font awesome und das Element hinzu.Setzen Sie dann die Position des Wrappers auf relativ:
und setzen Sie dann die
i
Position des Elements auf absolut und stellen Sie die richtige Stelle dafür ein:(Es ist ein Hack, ich weiß, aber es erledigt den Job.)
quelle
Diese Antwort funktioniert für Sie, wenn die folgenden Bedingungen erfüllt sein müssen (keine der aktuellen Antworten erfüllt diese Bedingungen):
Ich glaube, dass 3 die minimale Anzahl von HTML-Elementen ist, um diese Bedingungen zu erfüllen:
quelle
Sie müssen nicht viel codieren. Befolgen Sie einfach die folgenden Schritte:
Sie finden die Links zum Unicode ( fontawesome) ) finden Sie hier ...
FontAwesome Unicode für Symbole
quelle
quelle
Nachdem ich verschiedene Versionen dieser Frage gelesen und mich umgesehen habe, habe ich eine ziemlich saubere, js-freie Lösung gefunden. Es ähnelt der @ allcaps-Lösung, vermeidet jedoch das Problem, dass die Eingabeschrift von der Hauptdokumentschrift geändert wird.
Verwenden Sie das
::input-placeholder
Attribut , um den Platzhaltertext spezifisch zu gestalten. Auf diese Weise können Sie Ihre Symbolschrift als Platzhalterschrift und Ihren Textkörper (oder eine andere Schriftart) als eigentlichen Eingabetext verwenden. Derzeit müssen Sie herstellerspezifische Selektoren angeben.Dies funktioniert gut, solange Sie keine Kombination aus Symbol und Text in Ihrem Eingabeelement benötigen. Wenn Sie dies tun, müssen Sie sich damit abfinden, dass der Platzhaltertext die Standardbrowser-Schriftart (einfache Serife bei mir) für Wörter ist.
ZB
HTML
CSS
Spielen Sie mit ausgewählten Browsern mit Browserpräfix: http://jsfiddle.net/gA4rx/78/
Beachten Sie, dass Sie jeden browserspezifischen Selektor als separate Regel definieren müssen. Wenn Sie sie kombinieren, wird sie vom Browser ignoriert.
quelle
font-family
diesen Selektor akzeptieren . Wir können nur auf eine breitere Akzeptanz in der Zukunft hoffen.Ich habe den einfachsten Weg mit Bootstrap 4 gefunden.
quelle
Ich habe das so erreicht
Das Ergebnis sieht folgendermaßen aus:
Randnotiz
Bitte beachten Sie, dass ich Ruby on Rails verwende, damit mein resultierender Code etwas in die Luft gesprengt aussieht. Der Ansichtscode in schlank ist eigentlich sehr prägnant:
quelle
Für mich ist es eine einfache Möglichkeit, ein Symbol "innerhalb" einer Texteingabe zu haben, ohne versuchen zu müssen, Pseudoelemente mit einem fantastischen Unicode usw. zu verwenden, die Texteingabe und das Symbol in einem Wrapper-Element zu haben, das wir relativ positionieren. und positionieren Sie dann sowohl die Sucheingabe als auch das Symbol für das fantastische Schriftzeichen absolut.
Genauso wie wir es mit Hintergrundbildern und Text machen, würden wir es hier tun. Ich bin der Meinung, dass dies auch für Anfänger gut ist, da CSS-Positionierung etwas ist, das Anfänger zu Beginn ihrer Codierungsreise lernen sollten, damit der Code leicht zu verstehen und wiederzuverwenden ist.
quelle
Aufbauend auf allcaps Vorschlag. Hier ist die font-awesome Hintergrundmethode mit der geringsten Menge an HTML:
quelle
Erstellen Sie ein anklickbares Symbol, um innerhalb des Texteingabeelements zu fokussieren.
CSS
HTML
Fügen Sie einfach das gewünschte Symbol
<i>
aus der Font Awesome-Bibliothek in das Tag ein und genießen Sie die Ergebnisse.quelle
quelle
reines CSS
quelle
Meine Lösung bestand darin, einen relativen Container um
input
das Symbol zu haben. Dieser äußere Container hat ein::after
Symbol mit dem gewünschten Symbolabsolute
innerhalb des Containers.HTML:
SASS-Code:
quelle
Meine Lösung zum Hinzufügen eines Schriftart-Symbols innerhalb des Eingabeelements. Hier ist ein einfacher Code zum Hinzufügen eines Symbols innerhalb des Eingabeelements. Kopieren Sie einfach den folgenden Code und platzieren Sie ihn dort, wo Sie ihn hinzufügen möchten. Wenn Sie das Symbol ändern möchten, geben Sie einfach Ihren Symbolcode in das
<i>
Tag ein.quelle
Manchmal wird das Symbol aufgrund der Font Awesome-Version nicht angezeigt. Für Version 5 sollte das CSS sein
quelle
Einfacher Weg, aber Sie brauchen Bootstrap
quelle
quelle
Ich habe die folgenden Sachen ausprobiert und es funktioniert wirklich gut HTML
quelle
Um dies mit Unicode oder Fontawesome zu tun, sollten Sie ein
span
mit dem folgenden Namen hinzufügenclass
:In HTML:
In CSS:
quelle
quelle