Saya bertanya-tanya bagaimana saya bisa mengubah ukuran gambar bersama dengan jendela browser, inilah yang telah saya lakukan sejauh ini (atau unduh seluruh situs dalam ZIP ).
Ini berfungsi dengan baik di Firefox, tetapi ada masalah di Chrome: gambar tidak selalu diubah ukurannya, entah bagaimana tergantung pada ukuran jendela saat halaman dimuat.
Ini juga berfungsi dengan baik di Safari, tetapi terkadang gambar dimuat dengan lebar / tinggi minimum. Mungkin ini disebabkan oleh ukuran gambar, saya tidak yakin. (Jika dimuat dengan baik, coba segarkan beberapa kali untuk melihat bug.)
Ada ide tentang bagaimana saya bisa membuat ini lebih antipeluru? (Jika JavaScript diperlukan, saya juga dapat menerimanya, tetapi CSS lebih disukai.)
Jawaban:
Ini dapat dilakukan dengan CSS murni dan bahkan tidak memerlukan kueri media.
CSS:
Dan jika Anda ingin menerapkan lebar maksimum tetap gambar, cukup letakkan di dalam wadah, misalnya:
Contoh JSFiddle di sini . Tidak diperlukan JavaScript. Berfungsi di versi terbaru Chrome, Firefox, dan IE (yang sudah saya uji).
sumber
2018 dan solusi yang lebih baru:
Menggunakan unit viewport-relative akan membuat hidup Anda lebih mudah, mengingat kita memiliki gambar kucing:
Sekarang kami ingin kucing ini di dalam kode kami, dengan tetap menghormati rasio aspek:
Sejauh ini tidak terlalu menarik, tetapi bagaimana jika kita ingin mengubah lebar kucing menjadi maksimal 50% dari viewport?
Gambar yang sama, tapi sekarang dibatasi untuk lebar maksimum dari 50vw vw (= pandang lebar) berarti gambar akan X lebar viewport, tergantung pada digit yang disediakan. Ini juga berlaku untuk ketinggian:
Ini membatasi tinggi gambar hingga maksimum 20% dari viewport.
sumber
Dalam
onresize
acara IE diaktifkan pada setiap perubahan piksel (lebar atau tinggi) sehingga mungkin ada masalah kinerja. Tunda pengubahan ukuran gambar selama beberapa milidetik dengan menggunakan window.setTimeout () javascript.http://mbccs.blogspot.com/2007/11/fixing-window-resize-event-in-ie.html
sumber
Setel properti ubah ukuran ke keduanya. Kemudian Anda dapat mengubah lebar dan tinggi seperti ini:
sumber
Apakah Anda menggunakan jQuery?
Karena saya melakukan pencarian dengan cepat pada plugin jQuery dan mereka tampaknya memiliki beberapa plugin untuk melakukan ini, periksa yang ini, seharusnya berfungsi:
http://plugins.jquery.com/project/jquery-afterresize
EDIT:
Ini adalah solusi CSS, saya hanya menambahkan style = "width: 100%" , dan bekerja untuk saya setidaknya di chrome dan Safari. Saya tidak punya, jadi cukup uji di sana, dan beri tahu saya, ini kodenya:
sumber
s why I
bertanya kepadanya, apakah dia menggunakan jQuery karena jika dia melakukannya mungkin ide yang bagus, tambahkan saja pluginnya!Awalnya, saya menggunakan html / css berikut:
Lalu saya menambahkan
class="img"
ke<div>
seperti ini:Dan semuanya mulai bekerja dengan baik.
sumber
Anda dapat menggunakan
scale
properti CSS3 untuk mengubah ukuran gambar dengan css:Bacaan Lebih Lanjut :
sumber
Cukup gunakan kode ini. Yang paling sering dilupakan adalah menentukan lebar-maks sebagai lebar-maksimal gambar
Periksa demonstrasi ini http://shorturl.at/nBKVY
sumber
Mencoba
Hanya bekerja dengan blok tampilan dan blok sebaris, ini tidak berpengaruh pada item fleksibel karena saya baru saja menghabiskan waktu lama untuk mencari tahu.
sumber