<input type="image">
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
<input>
-Elemente des Typs image
werden verwendet, um grafische Absende-Buttons zu erstellen, d.h. Absende-Buttons, die die Form eines Bildes annehmen, anstatt eines Textes.
Probieren Sie es aus
<p>Sign in to your account:</p>
<div>
<label for="userId">User ID</label>
<input type="text" id="userId" name="userId" />
</div>
<input
type="image"
id="image"
alt="Login"
src="/shared-assets/images/examples/login-button.png" />
label {
font-size: 0.8rem;
}
label,
input[type="image"] {
margin-top: 1rem;
}
input[type="image"] {
width: 80px;
}
Wert
<input type="image">
-Elemente akzeptieren keine value
-Attribute. Der Pfad zum darzustellenden Bild wird im src
-Attribut angegeben.
Zusätzliche Attribute
Zusätzlich zu den von allen <input>
-Elementen geteilten Attributen unterstützen image
-Button-Inputs die folgenden Attribute.
alt
Das alt
-Attribut bietet einen alternativen Text, der als Button-Beschriftung verwendet wird, falls das Bild nicht angezeigt werden kann (aufgrund eines Fehlers, eines User-Agents, der Bilder nicht anzeigen kann oder so konfiguriert ist, dass er keine Bilder zeigt, oder wenn der Benutzer ein Bildschirmlesegerät benutzt). Wenn angegeben, muss es sich um einen nicht leeren String handeln, der als Beschriftung für den Button geeignet ist.
Beispielsweise sollten Sie, wenn Sie einen grafischen Button mit einem Icon oder Bildtext "Jetzt anmelden" haben, auch das alt
-Attribut auf etwas wie Jetzt anmelden
setzen.
Hinweis:
Obwohl das alt
-Attribut technisch optional ist, sollten Sie immer eines angeben, um die Benutzerfreundlichkeit Ihres Inhalts zu maximieren.
Funktional funktioniert das alt
-Attribut des <input type="image">
-Elements genauso wie das alt
-Attribut bei <img>
-Elementen.
formaction
Ein String, der die URL angibt, an die die Daten gesendet werden sollen. Dies hat Vorrang vor dem action
-Attribut des die <input>
besitzenden Formulars.
Dieses Attribut ist auch bei <input type="submit">
und <button>
-Elementen verfügbar.
formenctype
Ein String, der die Kodierungsmethode identifiziert, die beim Senden der Formulardaten an den Server verwendet werden soll. Es gibt drei zulässige Werte:
application/x-www-form-urlencoded
-
Dies, der Standardwert, sendet die Formulardaten als String, nachdem der Text unter Verwendung eines Algorithmus wie
encodeURI()
prozent-codiert wurde. multipart/form-data
-
Verwendet die
FormData
-API zur Verwaltung der Daten und ermöglicht das Senden von Dateien an den Server. Sie müssen diesen Kodierungstyp verwenden, wenn Ihre Formularelemente vomtype
file
(<input type="file">
) enthalten. text/plain
-
Klartext; hauptsächlich nur für das Debugging nützlich, damit Sie die zu übermittelnden Daten leicht sehen können.
Wenn angegeben, überschreibt der Wert des formenctype
-Attributs das action
-Attribut des besitzenden Formulars.
Dieses Attribut ist auch bei <input type="submit">
und <button>
-Elementen verfügbar.
formmethod
Ein String, der die HTTP-Methode angibt, die beim Senden der Formulardaten verwendet werden soll; dieser Wert überschreibt das method
-Attribut des besitzenden Formulars. Zulässige Werte sind:
get
-
Eine URL wird erstellt, indem mit der URL begonnen wird, die vom
formaction
- oderaction
-Attribut angegeben ist, ein Fragezeichen ("?")-Zeichen angehängt und dann die Formulardaten, codiert wie durchformenctype
oder dasenctype
-Attribut des Formulars beschrieben, angehängt werden. Diese URL wird dann unter Verwendung einer HTTP-get
-Anfrage an den Server gesendet. Diese Methode funktioniert gut für Formulare, die nur ASCII-Zeichen enthalten und keine Nebenwirkungen haben. Dies ist der Standardwert. post
-
Die Formulardaten sind im Körper der Anforderung enthalten, die an die vom
formaction
- oderaction
-Attribut angegebene URL gesendet wird, unter Verwendung einer HTTP-post
-Anfrage. Diese Methode unterstützt komplexe Daten und Dateianhänge. dialog
-
Diese Methode wird verwendet, um anzuzeigen, dass der Button den Dialog schließt, mit dem die Eingabe verknüpft ist, und übermittelt die Formulardaten überhaupt nicht.
Dieses Attribut ist auch bei <input type="submit">
und <button>
-Elementen verfügbar.
formnovalidate
Ein boolesches Attribut, das, wenn vorhanden, angibt, dass das Formular vor dem Senden an den Server nicht validiert werden soll. Dies überschreibt das novalidate
-Attribut des besitzenden Formulars.
Dieses Attribut ist auch bei <input type="submit">
und <button>
-Elementen verfügbar.
formtarget
Ein String, der einen Namen oder ein Schlüsselwort angibt, welches anzeigt, wo die Antwort angezeigt werden soll, die nach dem Absenden des Formulars empfangen wurde. Der String muss der Name eines Browsing-Kontexts sein (d.h. ein Tab, Fenster oder <iframe>
). Ein hier angegebener Wert überschreibt jedes Ziel, das durch das target
-Attribut des das Eingabeelement besitzenden <form>
-Elements angegeben ist.
Zusätzlich zu den tatsächlichen Namen von Tabs, Fenstern oder Inline-Frames gibt es einige spezielle Schlüsselwörter, die verwendet werden können:
_self
-
Lädt die Antwort in den gleichen Browsing-Kontext wie den, der das Formular enthält. Dies ersetzt das aktuelle Dokument mit den empfangenen Daten. Dies ist der Standardwert, der verwendet wird, wenn keiner angegeben ist.
_blank
-
Lädt die Antwort in einen neuen, unbenannten Browsing-Kontext. Dies ist normalerweise ein neuer Tab im selben Fenster wie das aktuelle Dokument, kann jedoch je nach Konfiguration des User-Agents unterschiedlich sein.
_parent
-
Lädt die Antwort in den übergeordneten Browsing-Kontext des aktuellen. Wenn es keinen übergeordneten Kontext gibt, verhält sich dies genauso wie
_self
. _top
-
Lädt die Antwort in den obersten Browsing-Kontext; das ist der Browsing-Kontext, der der oberste Vorfahr des aktuellen Kontexts ist. Wenn der aktuelle Kontext der oberste Kontext ist, verhält sich dies genauso wie
_self
.
Dieses Attribut ist auch bei <input type="submit">
und <button>
-Elementen verfügbar.
height
Eine Zahl, die die Höhe in CSS-Pixeln angibt, in der das durch das src
-Attribut angegebene Bild gezeichnet werden soll.
src
Ein String, der die URL der anzzeigenden Bilddatei angibt, um den grafischen Absende-Button darzustellen. Wenn der Benutzer mit dem Bild interagiert, wird die Eingabe wie bei jedem anderen Button-Input behandelt.
width
Eine Zahl, die die Breite angibt, in der das Bild in CSS-Pixeln gezeichnet werden soll.
Veraltete Attribute
Das folgende Attribut wurde von HTML 4 für image
-Inputs definiert, aber nicht von allen Browsern implementiert und ist mittlerweile veraltet.
usemap
Verwendung von Bild-Inputs
Das <input type="image">
-Element ist ein ersetztes Element (ein Element, dessen Inhalt nicht von der CSS-Schicht generiert oder direkt verwaltet wird) und verhält sich ähnlich wie ein reguläres <img>
-Element, aber mit den Fähigkeiten eines Absende-Buttons.
Wesentliche Funktionen von Bild-Inputs
Betrachten wir ein einfaches Beispiel, das alle wesentlichen Funktionen enthält, die Sie verwenden müssten (diese funktionieren genauso wie beim <img>
-Element):
<input
id="image"
type="image"
width="100"
height="30"
alt="Login"
src="https://raw.githubusercontent.com/mdn/learning-area/master/html/forms/image-type-example/login.png" />
- Das
src
-Attribut wird verwendet, um den Pfad zum Bild anzugeben, das im Button angezeigt werden soll. - Das
alt
-Attribut bietet alternativen Text für das Bild, damit Bildschirmlesegeräte einen besseren Eindruck davon bekommen, wofür der Button verwendet wird. Es wird auch angezeigt, wenn das Bild aus irgendeinem Grund nicht angezeigt werden kann (zum Beispiel, wenn der Pfad falsch geschrieben ist). Wenn möglich, verwenden Sie Text, der mit dem Label übereinstimmt, das Sie verwenden würden, wenn Sie einen Standard-Absende-Button verwenden würden. - Die
width
- undheight
-Attribute werden verwendet, um die Breite und Höhe anzugeben, in der das Bild angezeigt werden soll, in Pixeln. Der Button ist genauso groß wie das Bild; wenn Sie die Schlagfläche des Buttons größer als das Bild benötigen, müssen Sie CSS verwenden (z.B.padding
). Wenn Sie nur eine Dimension angeben, wird die andere automatisch angepasst, sodass das Bild sein ursprüngliches Seitenverhältnis beibehält.
Überschreibung von Standardformularverhalten
<input type="image">
-Elemente — wie reguläre Absende-Buttons — können eine Reihe von Attributen akzeptieren, die das Standardformularverhalten überschreiben:
formaction
-
Die URI eines Programms, das die vom Eingabeelement übermittelten Informationen verarbeitet; überschreibt das
action
-Attribut des Formularbesitzers. formenctype
-
Gibt den Inhaltstyp an, der verwendet wird, um das Formular an den Server zu senden. Mögliche Werte sind:
application/x-www-form-urlencoded
: Der Standardwert, wenn das Attribut nicht angegeben ist.text/plain
.
Wenn dieses Attribut angegeben ist, überschreibt es das
enctype
-Attribut des Formularbesitzers. formmethod
-
Gibt die HTTP-Methode an, die der Browser verwendet, um das Formular zu senden. Mögliche Werte sind:
post
: Die Daten des Formulars sind im Körper des Formulars enthalten und werden an den Server gesendet.get
: Die Daten des Formulars werden an dieform
-Attribut-URI angehängt, mit einem '?' als Trennzeichen, und die resultierende URI wird an den Server gesendet. Verwenden Sie diese Methode, wenn das Formular keine Nebeneffekte hat und nur ASCII-Zeichen enthält.
Wenn angegeben, überschreibt dieses Attribut das
method
-Attribut des Formularbesitzers. formnovalidate
-
Ein boolesches Attribut, das angibt, dass das Formular nicht validiert werden soll, wenn es übermittelt wird. Wenn dieses Attribut angegeben ist, überschreibt es das
novalidate
-Attribut des Formularbesitzers. formtarget
-
Ein Name oder Schlüsselwort, das angibt, wo die nach dem Absenden des Formulars empfangene Antwort angezeigt werden soll. Dies ist ein Name oder ein Schlüsselwort für einen Browsing-Kontext (zum Beispiel Tab, Fenster oder Inline-Frame). Wenn dieses Attribut angegeben ist, überschreibt es das
target
-Attribut des Formularbesitzers. Die folgenden Schlüsselwörter haben eine besondere Bedeutung:_self
: Laden Sie die Antwort in denselben Browsing-Kontext wie den aktuellen. Wenn das Attribut nicht angegeben ist, ist dies der Standardwert._blank
: Laden Sie die Antwort in einen neuen unbenannten Browsing-Kontext._parent
: Laden Sie die Antwort in den übergeordneten Browsing-Kontext des aktuellen. Wenn es keinen übergeordneten Kontext gibt, verhält sich diese Option genauso wie_self
._top
: Laden Sie die Antwort in den obersten Browsing-Kontext (das heißt, der Browsing-Kontext, der ein Vorfahre des aktuellen ist und keinen übergeordneten hat). Wenn es keinen übergeordneten gibt, verhält sich diese Option genauso wie_self
.
Verwendung der x- und y-Datenpunkte
Wenn Sie ein Formular mit einem Button erstellen, der mit <input type="image">
erstellt wurde, werden automatisch zwei zusätzliche Datenpunkte von der Browser an den Server übermittelt — x
und y
. Sie können dies in unserem X Y Koordinaten-Beispiel sehen.
Wenn Sie auf das Bild klicken, um das Formular zu senden, sehen Sie die Daten als Parameter an die URL angehängt, zum Beispiel ?x=52&y=55
. Wenn das Bild-Input ein name
-Attribut hat, beachten Sie, dass der angegebene Name jedem Attribut vorangestellt wird; wenn der name
position
ist, wären die zurückgegebenen Koordinaten in der URL als ?position.x=52&position.y=55
formatiert. Dies gilt natürlich auch für alle anderen Attribute.
Dies sind die X- und Y-Koordinaten des Bildes, auf das die Maus geklickt hat, um das Formular zu übermitteln, wobei (0,0) die obere linke Ecke des Bildes ist und der Standard, falls die Übermittlung ohne Klick auf das Bild erfolgt. Diese können verwendet werden, wenn der Punkt, auf den das Bild geklickt wurde, von Bedeutung ist; beispielsweise könnten Sie eine Karte haben, die beim Klicken die Koordinaten an den Server sendet. Der serverseitige Code ermittelt dann, welcher Ort angeklickt wurde, und gibt Informationen über nahegelegene Orte zurück.
In unserem obigen Beispiel könnten wir serverseitige Programmierung schreiben, die ermittelt, welche Farbe durch die übermittelten Koordinaten angeklickt wurde, und eine Zählung über die bevorzugten Farben führen, für die die Leute gestimmt haben.
Anpassung der Position und Skalierung des Bildes
Sie können die object-position
-Eigenschaft verwenden, um die Positionierung des Bildes innerhalb des <input>
-Elementrahmens anzupassen, und die object-fit
-Eigenschaft, um zu steuern, wie die Bildgröße angepasst wird, um in den Rahmen zu passen. Damit können Sie einen Rahmen für das Bild festlegen, indem Sie die width
- und height
-Attribute verwenden, um Platz im Layout zu reservieren, und dann anpassen, wo im zugewiesenen Platz das Bild platziert wird und wie (oder ob) es skaliert wird, um diesen Platz zu füllen.
Beispiele
Ein Login-Formular
Im folgenden Beispiel wird derselbe Button wie zuvor gezeigt, jedoch im Kontext eines typischen Login-Formulars.
HTML
<form>
<p>Login to your account</p>
<div>
<label for="userId">User ID</label>
<input type="text" id="userId" name="userId" />
</div>
<div>
<label for="pwd">Password</label>
<input type="password" id="pwd" name="pwd" />
</div>
<div>
<input
id="image"
type="image"
src="https://raw.githubusercontent.com/mdn/learning-area/master/html/forms/image-type-example/login.png"
alt="Login"
width="100" />
</div>
</form>
CSS
Und jetzt etwas CSS, um die grundlegenden Elemente ordentlicher anzuordnen:
div {
margin-bottom: 10px;
}
label {
display: inline-block;
width: 70px;
text-align: right;
padding-right: 10px;
}
Anpassung der Bildposition und Skalierung
In diesem Beispiel passen wir das vorherige Beispiel an, um mehr Platz für das Bild zu reservieren und die tatsächliche Bildgröße und -positionierung mit object-fit
und object-position
anzupassen.
HTML
<form>
<p>Login to your account</p>
<div>
<label for="userId">User ID</label>
<input type="text" id="userId" name="userId" />
</div>
<div>
<label for="pwd">Password</label>
<input type="password" id="pwd" name="pwd" />
</div>
<div>
<input
id="image"
type="image"
src="https://raw.githubusercontent.com/mdn/learning-area/master/html/forms/image-type-example/login.png"
alt="Login"
width="200"
height="100" />
</div>
</form>
CSS
div {
margin-bottom: 10px;
}
label {
display: inline-block;
width: 70px;
text-align: right;
padding-right: 10px;
}
#image {
object-position: right top;
object-fit: contain;
background-color: #ddd;
}
Hier ist object-position
so konfiguriert, dass das Bild in der oberen rechten Ecke des Elements gezeichnet wird, während object-fit
auf contain
eingestellt ist, was bedeutet, dass das Bild in der größten Größe gezeichnet werden soll, die innerhalb des Elementrahmens passt, ohne sein Seitenverhältnis zu ändern. Beachten Sie den sichtbaren grauen Hintergrund des Elements, der noch im Bereich sichtbar ist, der nicht vom Bild bedeckt ist.
Technische Zusammenfassung
Wert | Keiner — das value -Attribut sollte nicht angegeben werden. |
Ereignisse | Keine. |
Unterstützte gemeinsame Attribute |
alt ,
src ,
width ,
height ,
formaction ,
formenctype ,
formmethod ,
formnovalidate ,
formtarget
|
IDL-Attribute | Keine. |
DOM-Schnittstelle | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Methoden | Keine. |
Implizierte ARIA-Rolle | button |
Spezifikationen
Specification |
---|
HTML # image-button-state-(type=image) |
Browser-Kompatibilität
Siehe auch
<input>
und dieHTMLInputElement
-Schnittstelle, die es implementiert.- Das HTML-
<img>
-Element - Positionierung und Größenänderung des Bildes innerhalb des
<input>
-Elementrahmens:object-position
undobject-fit