Ich frage mich, wie ich die Größe eines Bildes zusammen mit dem Browserfenster ändern kann. Hier ist, was ich bisher getan habe (oder die gesamte Site in einer ZIP-Datei herunterladen ).
Dies funktioniert in Firefox einwandfrei, hat jedoch Probleme in Chrome: Die Größe des Bilds wird nicht immer geändert, es hängt irgendwie von der Größe des Fensters ab, in dem die Seite geladen wurde.
Dies funktioniert auch in Safari einwandfrei, aber manchmal wird das Bild mit seiner minimalen Breite / Höhe geladen. Vielleicht liegt das an der Bildgröße, ich bin mir nicht sicher. (Wenn es in Ordnung geladen wird, versuchen Sie mehrmals zu aktualisieren, um den Fehler zu sehen.)
Irgendwelche Ideen, wie ich das kugelsicherer machen könnte? (Wenn JavaScript benötigt wird, kann ich auch damit leben, aber CSS ist vorzuziehen.)
Antworten:
Dies kann mit reinem CSS erfolgen und erfordert nicht einmal Medienabfragen.
CSS:
Wenn Sie eine feste maximale Breite des Bildes erzwingen möchten, platzieren Sie es einfach in einem Container, zum Beispiel:
JSFiddle Beispiel hier . Kein JavaScript erforderlich. Funktioniert in den neuesten Versionen von Chrome, Firefox und IE (das ist alles, was ich getestet habe).
quelle
2018 und spätere Lösung:
Die Verwendung von Einheiten in Bezug auf Ansichtsfenster sollte Ihnen das Leben erleichtern, da wir das Bild einer Katze haben:
Jetzt wollen wir diese Katze in unserem Code haben und dabei die Seitenverhältnisse berücksichtigen:
Bisher nicht wirklich interessant, aber was ist, wenn wir die Katzenbreite auf maximal 50% des Ansichtsfensters ändern möchten?
Das gleiche Bild, das jetzt jedoch auf eine maximale Breite von 50 vw vw (= Breite des Ansichtsfensters) beschränkt ist, bedeutet, dass das Bild abhängig von der bereitgestellten Ziffer die X-Breite des Ansichtsfensters aufweist. Dies funktioniert auch für die Höhe:
Dadurch wird die Höhe des Bilds auf maximal 20% des Ansichtsfensters beschränkt.
quelle
Im IE wird das
onresize
Ereignis bei jeder Pixeländerung (Breite oder Höhe) ausgelöst, sodass Leistungsprobleme auftreten können. Verzögern Sie die Größenänderung von Bildern um einige Millisekunden, indem Sie das window.setTimeout () von Javascript verwenden.http://mbccs.blogspot.com/2007/11/fixing-window-resize-event-in-ie.html
quelle
Setzen Sie die Eigenschaft resize auf beide. Dann können Sie Breite und Höhe folgendermaßen ändern:
quelle
Verwenden Sie jQuery?
Da ich schnell nach den jQuery-Plugings gesucht habe und sie anscheinend ein Plugin dafür haben, überprüfen Sie dieses, sollte funktionieren:
http://plugins.jquery.com/project/jquery-afterresize
BEARBEITEN:
Dies ist die CSS-Lösung, ich füge nur einen style = "width: 100%" hinzu und funktioniert für mich zumindest in Chrome und Safari. Ich habe dh nicht, also testen Sie einfach dort und lassen Sie mich wissen, hier ist der Code:
quelle
s why I
ich ihn frage, ob er jQuery verwendet, denn wenn dies der Fall ist, fügen Sie einfach das Plugin hinzu!Anfangs habe ich folgendes HTML / CSS verwendet:
Dann habe ich
class="img"
auf das<div>
wie folgt aus :Und alles begann gut zu funktionieren.
quelle
Sie können die CSS3-
scale
Eigenschaft verwenden, um die Bildgröße mit CSS zu ändern:Weiterführende Literatur :
quelle
Verwenden Sie einfach diesen Code. Was die meisten vergessen, ist die Angabe der maximalen Breite als maximale Breite des Bildes
Überprüfen Sie diese Demonstration http://shorturl.at/nBKVY
quelle
Versuchen
Funktioniert nur mit Anzeigeblock und Inline-Block. Dies hat keine Auswirkungen auf Flex-Elemente, da ich gerade lange versucht habe, dies herauszufinden.
quelle