Ich verwende ein img-Tag von HTML, um ein Foto in unserer Anwendung anzuzeigen. Ich habe sowohl das Höhen- als auch das Breitenattribut auf 64 festgelegt. Ich muss jede Bildauflösung (z. B. 256 x 256, 1024 x 768, 500 x 400, 205 x 246 usw.) als 64 x 64 anzeigen. Wenn Sie jedoch die Höhen- und Breitenattribute eines img-Tags auf 64 setzen, wird das Seitenverhältnis nicht beibehalten, sodass das Bild verzerrt aussieht.
Als Referenz lautet mein genauer Code:
<img src="Runtime Path to photo" border="1" height="64" width="64">
Antworten:
Stellen Sie nicht Höhe UND Breite ein. Verwenden Sie das eine oder andere und das richtige Seitenverhältnis wird beibehalten.
quelle
Hier ist das Beispiel
quelle
Setze
width
undheight
der Bilder aufauto
, aber beschränke beidemax-width
undmax-height
:Geige
Wenn Sie Bilder beliebiger Größe in den 64 x 64 Pixel großen "Frames" anzeigen möchten, können Sie Inline-Block-Wrapper verwenden und diese wie in dieser Geige positionieren .
quelle
quelle
width
undheight
zuauto
.Keine der aufgeführten Methoden skaliert das Bild auf die größtmögliche Größe, die in eine Box passt, während das gewünschte Seitenverhältnis beibehalten wird.
Dies ist mit dem IMG-Tag nicht möglich (zumindest nicht ohne ein bisschen JavaScript), kann aber wie folgt geschehen:
quelle
style="background: url('_'); background-size: cover width:_px height:_px"
für das<img>
Tag.cover
nichtcontain
, um die Bildgröße auf das größtmögliche zu maximieren.contain
führt zu "Letterboxing".Verwenden Sie das
object-fit: contain
Attribut in in CSS von HTMLimg
.quelle
Wickeln Sie das Bild in ein Bild
div
mit den Abmessungen 64x64 und stellen Sie eswidth: inherit
auf das Bild ein:quelle
Warum verwenden Sie keine separate CSS-Datei, um die Höhe und Breite des anzuzeigenden Bildes beizubehalten? Auf diese Weise können Sie die erforderliche Breite und Höhe angeben.
z.B:
quelle
Versuche dies:
Durch Hinzufügen von object-fit = "cover" wird das Bild gezwungen, den Platz einzunehmen, ohne das Seitenverhältnis zu verlieren.
quelle