Skalieren Sie das Bild so, dass es in eine Bounding Box passt
Gibt es eine css-Lösung zu skalieren wird ein Bild in eine bounding-box (Aspekt-Verhältnis)? Dies funktioniert, wenn das Bild größer ist als der container:
img {
max-width: 100%;
max-height: 100%;
}
Beispiel:
- Use case 1 (funktioniert): http://jsfiddle.net/Jp5AQ/2/
- Use case 2 (Werke): http://jsfiddle.net/Jp5AQ/3/
Aber ich möchte zu skalieren, bis das Bild, bis eine dimension ist zu 100% von der container.
- Use case 3 (funktioniert nicht): http://jsfiddle.net/Jp5AQ/4/
Kommentar zu dem Problem
Meinst du wie height: 100% und width: 100% ? haben Sie die gewünschte dimension, die Sie erreichen möchten? ansonsten könnte man auch das Bild dehnen und Kraft, um zu erreichen, diese Dimensionen zu.
@mikevoermans Blick auf meine beiden ersten Beispiele: ich möchte Dehnung das Bild, bis eine der Dimensionen ist 100% und der andere ist <=100%
@jacktheripper die Erhaltung Aspekt-Verhältnis natürlich...
@gryzzly Der Beispiele spricht für sich selbst! Wenn Sie ausgesehen hatte an dem Beispiele, das war offensichtlich.
InformationsquelleAutor der Frage Thomas Guillory | 2012-04-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dank CSS3 gibt es eine Lösung !
Die Lösung ist, um das Bild als
background-image
und legen Sie dann diebackground-size
zucontain
.HTML
CSS
Test gibt es hier: http://www.w3schools.com/cssref/playit.asp?filename=playcss_background-size&preval=enthalten
Volle Kompatibilität mit den neuesten Browsern: http://caniuse.com/background-img-opts
Ausrichten, das div in der Mitte, können Sie mit dieser Variante:
InformationsquelleAutor der Antwort Thomas Guillory
Hier ein hackish Lösung, die ich entdeckt:
Dies vergrößert das Bild um das Zehnfache, aber es beschränken auf 10% seiner endgültigen Größe - so bounding Sie auf den container.
Im Gegensatz zu den
background-image
Lösung, das funktioniert auch mit<video>
Elemente.InformationsquelleAutor der Antwort Vladimir Panteleev
Heute nur sagen, object-fit: enthalten. Unterstützung ist alles, aber IE: http://caniuse.com/#feat=object-fit
InformationsquelleAutor der Antwort Glenn Maynard
Suchen Sie die Skala nach oben aber nicht nach unten?
Diese jedoch nicht an die lock aspect-ratio.
InformationsquelleAutor der Antwort ericosg
Andere Lösung ohne Hintergrundbild und ohne die Notwendigkeit für einen Behälter (obwohl die max Größe der bounding box bekannt sein muss):
Wenn ein container die Nutzung erforderlich ist, dann ist die max-width und max-height kann auf 100% gesetzt werden:
Für dieses Sie hätte so etwas wie:
InformationsquelleAutor der Antwort xerxeArt
Habe ich verwendet, die Tabelle zu zentrieren, Bild in der box. Es hält Seitenverhältnis und Skalen Bild in einer Weise, die Total in der box. Wenn das Bild kleiner ist als die box, dann ist es gezeigt, wie es ist in der Mitte. Folgenden code verwendet 40px Breite und 40px Höhe-Feld. (Nicht ganz sicher wie gut es funktioniert, weil ich entfernt es aus anderen komplexeren code und vereinfacht es etwas)
CSS:
HTML:
InformationsquelleAutor der Antwort Antti
Diesem Beispiel um das Bild zu Strecken proportional zu passen, das gesamte Fenster.
Eine improvisation über richtige code hinzufügen
$( window ).resize(function(){});
Gibt es zwei if-Bedingungen. Die erste hält man überprüfen, ob die Höhe des Bildes ist kleiner als das div und gilt
.fillheight
Klasse, während die nächsten Prüfungen für die Breite und gilt.fillwidth
Klasse.In beiden Fällen ist die andere Klasse ist entfernt mit
.removeClass()
Hier ist der CSS -
Können Sie ersetzen
100vh
durch100%
wenn Sie wollen, Strecken das Bild in eine div. In diesem Beispiel des Bildes proportional zu passen, das gesamte Fenster.InformationsquelleAutor der Antwort Mr. JCRP
Ist die sauberste und einfachste Weg, dies zu tun:
Zunächst einige CSS:
HTML:
Dies sollte den trick tun!
InformationsquelleAutor der Antwort Robert Eetheart
Dies hat mir geholfen:
Dann auf das element (Sie können die Nutzung von javascript oder media queries hinzufügen Reaktionsfähigkeit):
Hoffe, das hilft!
InformationsquelleAutor der Antwort bman93
html:
css:
InformationsquelleAutor der Antwort Deke
Bin ich Editier meine Antwort weiter zu erklären, meine Lösung, als ich habe einen down-vote.
Mit den Formatvorlagen einstellen, wie oben gezeigt, in css nun folgenden html-div wird das Bild immer passen Breite Weise und passen Sie Höhe-Seitenverhältnis auf Breite. Also Bild wird passend skalieren eine bounding box als gefragt, in Frage stellen.
InformationsquelleAutor der Antwort zeeawan