Wie skaliere ich ein Bild automatisch so, dass es in einen Div-Container passt?
Wie Sie die automatische Größenanpassung ein großes Bild, so dass es passt in eine kleinere Breite div-container, während die Aufrechterhaltung es ist Breite:Höhe-Verhältnis?
Beispiel: stackoverflow.com - wenn ein Bild eingefügt wird in den editor-panel und das Bild ist zu groß, um auf die Seite, wird das Bild automatisch in der Größe angepasst.
InformationsquelleAutor der Frage 001 | 2010-06-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit
stellt sich heraus, es ist ein anderer Weg, dies zu tun.
wird die Arbeit zu tun. Es ist CSS3 Zeug.
Fiddle: http://jsfiddle.net/mbHB4/7364/
InformationsquelleAutor der Antwort Shih-Min Lee
Derzeit gibt es keine Möglichkeit, diese richtig zu tun, in einer deterministischen Art und Weise, mit der festen Größe von Bildern wie JPEG-oder PNG-Dateien.
Größe ändern, ein Bild proportional zu verändern, müssen Sie entweder die Höhe oder die Breite auf "100%", aber nicht beide. Wenn Sie beide auf "100%", wird Ihr Bild gestreckt werden.
Auswählen, ob Höhe oder Breite ist abhängig von Ihrem Bild und container Maße:
height="100%"
auf dem Bild.width="100%"
auf dem Bild.Wenn Ihr Bild ist ein SVG, das ist ein variable-sized-Vektor-Bild-format haben, können Sie die Erweiterung zu passen, die Behälter automatisch geschehen.
Den Sie gerade haben, um sicherzustellen, dass die SVG-Datei hat keine dieser Eigenschaften legen Sie in der
<svg>
tag:Meisten Vektor-Zeichenprogramm Programme gibt, werden diese Eigenschaften beim Export einer SVG-Datei, so müssen Sie manuell Bearbeiten Sie Ihre Datei jedes mal, wenn Sie exportieren oder ein Skript schreiben, um es zu tun.
InformationsquelleAutor der Antwort Neil
Hier ist eine Lösung, die sowohl vertikal als auch horizontal ausrichten, dass Ihre img innerhalb eines div-ohne Dehnung, auch wenn das Bild geliefert wird, ist zu klein oder zu groß, um fit in den div.
Html:
CSS:
Den JQuery:
Ich hoffe das hilft Euch
InformationsquelleAutor der Antwort Humble Rumble
Machen Sie es einfach!
Geben Sie dem container einen festen
height
und dann für dieimg
tag innerhalb eswidth
undmax-height
.Unterschied ist, daß Sie die
width
zu 100% nicht dermax-width
.InformationsquelleAutor der Antwort Mehdi Maghrooni
Überprüfen Sie heraus meine Lösung: http://codepen.io/petethepig/pen/dvFsA
Es ist geschrieben in reinem CSS, ohne JS-code.
Es kann Bilder von jeder Größe und jeder Ausrichtung.
Solche HTML:
CSS-code wäre:
InformationsquelleAutor der Antwort dmitry
Können Sie das Bild als hintergrund für ein div, dann verwenden Sie die css background-size-Eigenschaft
und es wird "Skalieren Sie das Hintergrundbild so groß wie möglich, so dass der hintergrund-Bereich ist komplett überdacht durch das Hintergrundbild. Einige Teile des hintergrund-Bild kann nicht im Hinblick auf die innerhalb der hintergrund-Positionierung-area" w3schools.com
InformationsquelleAutor der Antwort Chuck Dries
Ein schöner hack.
Haben Sie zwei Möglichkeiten, das Bild reagiert.
Ausführen hier
Aber sollte man
img
tag zu legen Bilder als es ist besser alsbackground-image
im Hinblick auf SEO wie Sie schreiben Stichwort in deralt
desimg
tag. So, hier ist Sie kann das Bild reagiert.Ausführen hier
InformationsquelleAutor der Antwort Siraj
Diese Lösung nicht Strecken Sie das Bild und füllt den gesamten container, sondern er schneidet einige der Bild.
html
CSS
InformationsquelleAutor der Antwort Miia Klingstedt
Ich gerade veröffentlichte ein jQuery-plugin, das genau das tun, was Sie müssen mit einer Menge von Optionen :
https://github.com/GestiXi/image-scale
Verwendung:
HTML
JS
InformationsquelleAutor der Antwort Nicolas BADIA
Die akzeptierte Antwort von Thorn007 funktioniert nicht, wenn das Bild ist zu klein.
Um dieses Problem zu lösen, habe ich ein scale-Faktor. Diese Art macht das Bild größer und es füllt den div-container.
Beispiel :
Hinweise:
1/für webkit, die Sie hinzufügen müssen -webkit-transform:scale(4); -webkit-transform-origin:Links oben; in der style.
2/mit einer Skalierung um den Faktor 4, Sie haben max-width = 400/4 = 100 und max-Höhe = 200/4 = 50
3/eine Alternative Lösung ist die Vergabe von max-width und max-height auf 25%, dann ist es umso einfacher
InformationsquelleAutor der Antwort user217447
Den code unten angepasst, von oben und getestet von mir mit einem Bild genannt storm.jpg
Das ist der komplette HTML-code für eine einfache Seite, zeigt das Bild. Das funktioniert perfekt und wurde getestet von mir mit http://www.resizemybrowser.com. Setzen der CSS-code am Anfang Ihres HTML-Codes ein, die sich unter Ihrem Kopf Abschnitt. Setzen Sie den Bild-code, wo Sie wollen das Bild.
InformationsquelleAutor der Antwort dan
Ich zentriert und proportional skaliert ein Bild in einem hyperlink sowohl horizontal als auch vertikal auf diese Weise:
Getestet in IE, Firefox, Safari.
Mehr info über das zentrieren ist hier.
InformationsquelleAutor der Antwort bancer
Geben Sie die Höhe und Breite, die Sie benötigen für das Bild in das div enthält den < img> tag.
vergessen Sie nicht, geben Sie die Höhe/Breite im richtigen Stil-Tags.
In der < img> tag, geben dem max-height und max-width 100%.
können Sie die details in den entsprechenden Klassen, nachdem Sie es richtig gemacht.
InformationsquelleAutor der Antwort AZD
InformationsquelleAutor der Antwort easd
Müssen Sie dem browser mitteilen, die Höhe, wo Sie sich platzieren es.
InformationsquelleAutor der Antwort Rick
Eine einfache Lösung ( 4-Schritt-fix !!) das scheint für mich zu arbeiten , ist unten. Hoffe, es hilft.Im Beispiel wird die Breite bestimmen Sie die Allgemeine Größe, aber Sie können auch flip zu verwenden, die Höhe, statt.
-verwenden Sie px ( oder andere ) für eine statische, oder legen dimension
beispielsweise
InformationsquelleAutor der Antwort young chisango
Als hier beantwortetkönnen Sie auch
vh
Einheiten stattmax-height: 100%
wenn es nicht funktioniert in Ihrem browser (wie Chrome):InformationsquelleAutor der Antwort gaborous
Alle zur Verfügung gestellten Antworten, einschließlich der akzeptiert, Arbeit nur unter der Annahme, dass die
div
wrapper ist eine Feste Größe. Also das ist, wie es zu tun was die Größe derdiv
wrapper ist und das ist sehr nützlich, wenn Sie entwickeln eine responsive Seite:Schreiben Sie diese Angaben in Ihre
DIV
selector:Dann legen Sie diese Angaben in Ihre
IMG
selector:SEHR WICHTIG:
Den Wert
maxHeight
muss die gleichen sowohl für dieDIV
undIMG
Selektoren.InformationsquelleAutor der Antwort Billal BEGUERADJ
Die Lösung ist einfach mit ein bisschen Mathematik...
Nur das Bild in ein div und dann in der html-Datei, geben Sie die Bild-legen Sie die width-und height-Werte in Prozent unter Verwendung der Pixelwerte des Bildes zu berechnen, das genaue Verhältnis von Breite zu Höhe.
Zum Beispiel, sagen, Sie haben ein Bild mit einer Breite von 200 Pixel und eine Höhe von 160 Pixel. Man kann sicher sagen, dass der Wert für die Breite von 100%, denn es ist der größere Wert. Dann berechnen die Höhe der Wert, den Sie teilen Sie einfach die Höhe durch die Breite, die gibt den Prozentwert von 80%. Im code wird wie folgt Aussehen...
InformationsquelleAutor der Antwort user2796283
check meine ans https://stackoverflow.com/a/36712112/2439715
InformationsquelleAutor der Antwort Abhishek Goel
Eine einfache Lösung ist die Verwendung von flex-box. Definieren Sie den container mit CSS:
Anpassen, dass das enthaltene Bild in der Breite auf 100% und sollte man sich ein schönes Bild zentriert in den Behälter mit den Abmessungen erhalten. Cheers.
InformationsquelleAutor der Antwort Mateo Marin
Einfachste Weg, dies zu tun ist
durch die Verwendung von Objekt-fit
Wenn Ihr mit bootstrap fügen Sie einfach den img-responsive-Klasse und wechselte an
InformationsquelleAutor der Antwort Joseph Lariosa
Oder nutzen Sie einfach:
Nun das Bild nehmen den Raum der div.
InformationsquelleAutor der Antwort Sharifur Robin
Folgende funktioniert perfekt für mich:
InformationsquelleAutor der Antwort Chong Lip Phang
Definieren div einfach
InformationsquelleAutor der Antwort user2522692