Diberikan gambar sewenang-wenang, saya ingin memotong persegi dari pusat gambar dan menampilkannya di dalam persegi yang diberikan.
Pertanyaan ini mirip dengan ini: CSS Menampilkan Gambar yang Diubah Ukurannya dan Dipotong , tapi saya tidak tahu ukuran gambarnya sehingga saya tidak bisa menggunakan set margin.
Jawaban:
Salah satu solusinya adalah menggunakan gambar latar belakang yang dipusatkan di dalam elemen berukuran ke dimensi yang dipotong.
Contoh dasar
Contoh dengan
img
tagVersi ini mempertahankan
img
tag agar kami tidak kehilangan kemampuan untuk menyeret atau mengklik kanan untuk menyimpan gambar. Kredit untuk Parker Bennett untuk trik opacity.object-fit
/-position
Lihat browser yang didukung .
The CSS3 Images spesifikasi mendefinisikan
object-fit
danobject-position
sifat yang bersama-sama memungkinkan untuk kontrol lebih besar atas skala dan posisi konten gambar dari suatuimg
elemen. Dengan ini, akan mungkin untuk mencapai efek yang diinginkan:sumber
background-size: cover;
untuk membuat gambar menyusut atau mengisi div dengan tepat sambil mempertahankan rasio aspek asli.img
'salt
semuttitle
atribut akan hilang untuk SEO Anda.object-fit: cover;
langsung pada tag img yang terasa sedikit lebih semantik.Saya sedang mencari solusi CSS murni menggunakan
img
tag (bukan cara gambar latar belakang).Saya menemukan cara yang brilian ini untuk mencapai tujuan pada memotong thumbnail dengan css :
Ini mirip dengan jawaban @Nathan Redblur tetapi juga memungkinkan untuk gambar potret.
Bekerja seperti pesona bagi saya. Satu-satunya hal yang perlu Anda ketahui tentang gambar adalah apakah itu potret atau lansekap untuk mengatur
.portrait
kelas jadi saya harus menggunakan sedikit Javascript untuk bagian ini.sumber
Coba ini: Tetapkan dimensi pemangkasan gambar Anda dan gunakan baris ini di CSS Anda:
sumber
Contoh dengan
img
tag tetapi tanpabackground-image
Solusi ini mempertahankan
img
tag sehingga kami tidak kehilangan kemampuan untuk menyeret atau mengklik kanan untuk menyimpan gambar tetapi tanpabackground-image
hanya tengah dan memotong dengan css.Pertahankan rasio aspek baik-baik saja kecuali dalam gambar yang sangat tinggi. (periksa tautan)
(lihat beraksi)
Markup
CSS
sumber
Saya membuat arahan sudut menggunakan jawaban @russ dan @ Alex
Bisa jadi menarik di tahun 2014 dan selanjutnya: P
html
js
tautan biola
sumber
Coba ini:
Ingatlah itu
width
danheight
hanya akan berfungsi jika elemen DOM Anda memiliki tata letak (blok yang ditampilkan elemen, seperti adiv
atau aimg
). Jika tidak (rentang, misalnya), tambahkandisplay: block;
ke aturan CSS. Jika Anda tidak memiliki akses ke file CSS, jatuhkan style inline dalam elemen.sumber
Ada cara lain Anda dapat memotong gambar terpusat:
Satu-satunya hal yang Anda perlukan adalah menambahkan kelas "vertikal" ke gambar vertikal, Anda dapat melakukannya dengan kode ini:
Catatan: "! Penting" digunakan untuk menimpa kemungkinan lebar, atribut tinggi pada tag img.
sumber