Positionieren eines Bildes in einem text-Eingabe-Feld
Wollte ich ein Bild innerhalb eines text-input-Feld und versucht, die Stellung der Bild durch Verschachtelung der Bild-tag innerhalb des input-Tags und die Verwendung relativer position für die Eingabe und die absolute Positionierung für das image und die Einstellung der Bilder 'rechts' und 'oben' Wert auf 0. Ich dachte, das würde das Bild auf der rechten Seite das Textfeld ein. Stattdessen platziert das Bild auf der rechten Seite der Webseite. Ich bin mir nicht sicher, warum das so ist, ich fand eine Lösung durch die änderung der 'top' und 'richtigen' Werte zu positionieren, wo ich wollte, aber es schien nur so wie der erste Weg sollte gearbeitet haben, konnte jeder erklären, warum es nicht?
Dies ist der HTML-Code für die Texteingabe und Bild.
<input = "text" id="searchbar">
<a href="#voice"> <img src ="microphone.png" id="voicebutton"/> </a>
</input>
Dies ist der CSS-obwohl ich arbeiten würde.
#searchbar{
border: 0.6px solid #dbdbdb;
display:block;
margin-left:auto;
margin-right:auto;
width:600px;
height:37.5px;
position:relative;
}
#voicebutton{
width:16px;
height:23px;
position:absolute;
right:0;
top:0;
}
Dies ist die CSS, die funktioniert.
#searchbar{
border: 0.6px solid #dbdbdb;
display:block;
margin-left:auto;
margin-right:auto;
width:600px;
height:37.5px;
position:relative;
}
#voicebutton{
width:16px;
height:23px;
position:absolute;
right:395;
top:207;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Drei Möglichkeiten, es zu tun:
1- Nutzen Sie die Eigenschaften
background-size
undbackground-position
Ihrebackground-image
innerhalb der input-box. Beispiel:CSS:
HTML:
2- Verwenden Sie einen negativen margin um das Bild über Sie (Sie können das Bild zu einem link). Beispiel:
CSS:
HTML:
3- Lassen Sie beide inputbox und Bild in einem container, in dem container
position: relative
und das Bildposition: absolute
(Sie können das Bild zu einem link). Beispiel:CSS:
HTML:
Zuerst von allen, können Sie nicht haben, Dezimalzahlen in Pixel, wie
height: 37.5px;
. Das wird nicht funktionieren. Auchright: 395;
funktioniert nicht, weil es nicht angeben, was die Nutzung: Pixel, ems, Prozentsatz? Dieinput="text"
ist falsch, es sollteinput type="text"
wie dies kann z.B.email
oderradio
.Sagte, dass, um zu erreichen, was Sie möchten, Sie können hinzufügen, ein wrapper um Ihre input-Feld (wie
.box-wrapper
) und geben eine relative Positionierung mit der gleichen Größe wie das Eingabefeld. Diese schließen zum Beispiel.CSS:
HTML:
Input-tag hat kein End-tag in HTML haben, sollten Sie entfernen Sie das schließende tag aus Ihrem HTML-code, außerdem können Sie positionieren Sie das element über das input-Feld ändern Sie Ihre CSS etwas wie dies (CSS war fast richtig, das problem ist das HTML) :
In HTML-input-tag hat kein end-tag (im Gegensatz zu XHTML), so dass Ihr einen tag außerhalb Ihres input-tag.