Wie füge ich ein SVG-Symbol in einer Eingabe hinzu?
Lesezeit: 4 Minuten
Bitweise
Ich muss Symbole in den Eingaben platzieren, um einen neuen Benutzer zu erstellen. Es ist wahrscheinlich eine wirklich einfache Aufgabe für jemanden, der sich mit Front-End-Code auskennt. Ich jedoch nicht. Hier ist das Wireframe und dann zeige ich meinen Code.
DRAHTRAHMEN
Wie du sehen kannst. Auf der linken Seite der Eingänge befinden sich Symbole. Im Moment habe ich die SVGs in meinem Verzeichnis und kann loslegen. Ich muss nur wissen, wie ich sie in der Eingabe platzieren kann. Hier ist der Code für das Formular
Ich habe also den Platzhalter mit einer Zeichenfolge, die derzeit nur diese Zeichenfolge druckt. Ich muss die Symbole einfügen, die ich denke? Hier ist das CSS, das ich für die Symbole habe.
Gibt es eine Möglichkeit, diese Klassen innerhalb des Platzhalters zu platzieren?
Wenn Sie es in den Platzhalter einfügen, verschwindet das Symbol, wenn der Benutzer mit der Eingabe beginnt. Wenn Sie sich Ihr CSS ansehen, möchten Sie es wahrscheinlich der Klasse jeder Eingabe hinzufügen? zB <%= f.text_field :name, placeholder: "Name", class: "form-labels icon-email" %>
– Paul Thomas
25. November 2016 um 15:58 Uhr
Ihr CSS sieht auch falsch aus. Sollte Hintergrundbild sein: url(’email-field.svg’); ? (URL nicht Bild-URL)
– Paul Thomas
25. November 2016 um 16:00 Uhr
Aufkleber
Sie können ein Pseudo-Element in hinzufügen <label> Tag, und verwenden Sie einige position und padding Tricks für das Visuelle. Die Verwendung eines SVG als Hintergrund ist genauso wie die Verwendung eines Bildes.
Nun zu Ihrer Frage. Ich sehe ein paar Probleme mit Ihrem Setup.
Welchen Rahmen verwendest du dafür? Ich kann nicht konkret identifizieren, wie die <%= %> Syntax ist ziemlich universell. Normalerweise werden Eingabeelemente mit erstellt <input> Stichworte. Wenn Sie das Framework kennen, können Sie eventuelle Besonderheiten bei der Implementierung von Eingabeelementen erkennen.
Ihr CSS sucht class="icon-email" und class="icon-name" Attribute in Ihrem HTML, aber ich sehe keine solchen Attribute. Auch dies kann etwas sein, das das Framework handhabt und an anderer Stelle definiert wird.
Ich glaube, Sie versuchen, dies auf die falsche Weise zu tun, indem Sie a verwenden <label> anstatt dies mit CSS direkt auf der Eingabe selbst zu behandeln. Wenn Sie die oben genannten Informationen bereitstellen können, kann ich Ihnen eine geeignetere Lösung anbieten.
Ich verwende Schienen
– Bitweise
25. November 2016 um 16:10 Uhr
Ich werde meine Antwort auf die @Pangloss-Lösung zugeben. Seine Lösung könnte entweder hinzugefügt werden label oder der input selbst, und beide sollten wie erwartet funktionieren.
– Aaron St. Clair
25. November 2016 um 16:21 Uhr
TPLMedia24
Hier ist ein Beispiel mit Fontawesome Symbolsatz innerhalb des Platzhalterattributs.
Wenn Sie es in den Platzhalter einfügen, verschwindet das Symbol, wenn der Benutzer mit der Eingabe beginnt. Wenn Sie sich Ihr CSS ansehen, möchten Sie es wahrscheinlich der Klasse jeder Eingabe hinzufügen? zB <%= f.text_field :name, placeholder: "Name", class: "form-labels icon-email" %>
– Paul Thomas
25. November 2016 um 15:58 Uhr
Ihr CSS sieht auch falsch aus. Sollte Hintergrundbild sein: url(’email-field.svg’); ? (URL nicht Bild-URL)
– Paul Thomas
25. November 2016 um 16:00 Uhr