Flexbox memiliki perilaku ini saat membentang gambar hingga ketinggian alami. Dengan kata lain, jika saya memiliki wadah flexbox dengan gambar anak, dan saya mengubah ukuran lebar gambar itu, tingginya tidak mengubah ukuran sama sekali dan gambar menjadi melebar.
div {
display: flex;
flex-wrap: wrap;
}
img{
width: 50%
}
<div>
<img src="https://loremflickr.com/400/300" >
<h4>Appify</h4>
<p> some text </p>
</div>
Apa yang menyebabkan ini?
Saya menambahkan CodePen ini untuk menunjukkan apa yang saya maksud.
align-self:flex-start
di gambar. Saya tidak tahu mengapa, mungkin nilai default di chrome adalah stretch.align-items: stretch
/align-self: stretch
. Jika Anda menambahkan perbatasan di sekitar setiap item dan menghapuswrap
, Anda akan melihat semua item membentang di semua browser: codepen.io/anon/pen/oLXBVx?editors=1100Jawaban:
Itu membentang karena
align-self
nilai defaultstretch
. Setelalign-self
kecenter
.Lihat dokumentasi di sini: luruskan sendiri
sumber
align-self: start;
mungkin jawaban yang lebih kuat karena gambar harus secara vertikal sejajar dengan TOP wadah mereka (bukan pusat) seperti gambar tanpa gaya (tidak ada css) akan. Either way, kedua jawaban memperbaiki peregangan. Jadi itu tergantung pada apa yang diinginkan OP tentu saja - hanya saja tidak mendapatkan kesan 'terpusat secara vertikal' dari pos OP.align-self: [flex-start, center...others]
akan mencegah gambar mengambil 100% dari lebar wadah fleksibel.align-self:center
memperbaikinya tentu saja, tetapi jika Anda ingin gambar Anda mulai dari awal atau akhir penggunaan wadahalign-items: flex-start or flex-end
align-items: center
(atau apa pun penyelarasan yang sesuai dengan kebutuhan Anda) pada induknya.Atribut kuncinya adalah
align-self: center
:sumber
Saya menghadapi masalah yang sama dengan menu Foundation.
align-self: center;
tidak bekerja untuk saya.Solusi saya adalah membungkus gambar dengan a
<div style="display: inline-table;">...</div>
sumber
Menambahkan
margin
untuk menyelaraskan gambar:Karena kita ingin
image
menjadileft-aligned
, kami menambahkan:Demikian pula untuk
image
menjadiright-aligned
, kita bisa menambahkanmargin-right: auto;
. Cuplikan memperlihatkan demo untuk kedua jenis perataan.Semoga berhasil...
sumber
Peregangan karena nilai default align-self adalah peregangan. ada dua solusi untuk kasus ini: 1. atur img align-self: center ATAU 2. atur parent align-items: center
ATAU
sumber