Ich habe irgendwo gelesen, dass sich dieses <img>
Element wie beides verhält. Wenn ja, könnte jemand dies bitte anhand von Beispielen erklären?
163
Es ist wahr, sie sind beide - oder genauer gesagt, sie sind "Inline-Block" -Elemente. Dies bedeutet, dass sie wie Text inline fließen, aber auch eine Breite und Höhe wie Blockelemente haben.
In CSS können Sie ein Element auf festlegen display: inline-block
, damit es das Verhalten von Bildern * repliziert.
Bilder und Objekte werden auch als "ersetzte" Elemente bezeichnet, da sie an sich keinen Inhalt haben, wird das Element im Wesentlichen durch Binärdaten ersetzt.
* Beachten Sie, dass Browser technisch verwenden display: inline
(wie in den Entwicklertools zu sehen), Bilder jedoch besonders behandeln. Sie folgen immer noch allen Merkmalen von inline-block
.
img
Elemente keine,inline-block
sondern tatsächlicheinline
Elemente. Sie können dies in einem modernen Browser überprüfen, indem Sie mit der rechten Maustaste auf ein Bild klicken, auf "Element überprüfen" klicken und dann den berechneten Stil anzeigen, der angezeigt wirddisplay: inline
. Innerhalb des Tags findet kein Blockkontext statt, daher ist es nicht korrekt, ihn aufzurufeninline-block
. Weitere Informationen zu ersetzten Inline-Elementen finden Sie in der Antwort von Quentin und in diesem MDN-Artikel .img
Elemente inline sind. Die Google Chrome-Entwicklungstools zeigenimg
Elemente als inline an. Dieser Beitrag ist der einzige Ort, den ich bisher gefunden habe, der besagt, dass sieinline-block
stattdessen sind. Interessanterweise habe ich keine Autorität gefunden, die besagt, dass dies auch derinline
Fall ist. Ist die Behandlung des Tags möglicherweise abhängig von der Implementierung?display:inline-block
.Ein
img
Element ist ein ersetztes Inline-Element .Es verhält sich wie ein Inline-Element (weil es so ist), aber einige Verallgemeinerungen über Inline-Elemente gelten nicht für
img
Elemente.z.B
Verallgemeinerung: "Breite gilt nicht für Inline-Elemente"
Was die Spezifikation tatsächlich sagt : "Gilt für: alle Elemente außer nicht ersetzten Inline-Elementen, Tabellenzeilen und Zeilengruppen"
Da ein Bild ein ersetztes Inline-Element ist, gilt es.
quelle
IMG-Elemente sind inline, dh, wenn sie nicht schwebend sind, fließen sie horizontal mit Text und anderen Inline-Elementen.
Sie sind "Block" -Elemente, da sie eine Breite und eine Höhe haben. Aber sie verhalten sich in dieser Hinsicht eher wie "Inline-Block".
quelle
Stellen Sie sie sich für fast alle Zwecke als Inline-Element mit einer festgelegten Breite vor. Grundsätzlich können Sie frei bestimmen, wie Bilder mit CSS angezeigt werden sollen. Im Allgemeinen habe ich einige Bildklassen wie folgt festgelegt:
quelle
Wann immer Sie ein Bild einfügen, nimmt es nur die Breite an, die das Bild ursprünglich hat. Sie können jedes andere HTML-Element daneben hinzufügen, und Sie werden sehen, dass es dies zulässt. Das macht das Bild zu einem "Inline" -Element.
quelle
Es ist wahr, sie sind beide - oder genauer gesagt, sie sind "Inline-Block" -Elemente. Dies bedeutet, dass sie wie Text inline fließen, aber auch eine Breite und Höhe wie Blockelemente haben.
quelle