Pertimbangkan cuplikan berikut:
.parent {
display: flex;
flex-direction: column;
width: 400px;
border: 1px solid red;
align-items: center;
}
.child {
border: 1px solid blue;
}
<div class="parent">
<div class="child">
Lorem Ipsum is simply dummy text of the printing and typesetting industry
</div>
<div class="child">
Lorem Ipsum is simply dummy text of the printing and typesetting industry
</div>
</div>
Di Chrome, teksnya sedang membungkus seperti yang diharapkan:
Tapi, di IE11, teks tidak membungkus :
Apakah ini bug yang dikenal di IE? (jika ya, sebuah pointer akan dihargai)
Apakah ada solusi yang diketahui?
Pertanyaan serupa ini tidak memiliki jawaban yang pasti dan petunjuk resmi.
css
internet-explorer
flexbox
internet-explorer-11
Misha Moroshko
sumber
sumber
align-items: center
dari elemen induk. Tampaknya itulah yang menyebabkannyaJawaban:
Tambahkan ini ke kode Anda:
Kita tahu bahwa anak tingkat blok seharusnya menempati lebar penuh orang tua.
Chrome mengerti ini.
IE11, untuk alasan apa pun, menginginkan permintaan eksplisit.
Menggunakan
flex-basis: 100%
atauflex: 1
juga bekerja.Tampilkan cuplikan kode
Catatan: Kadang-kadang perlu untuk memilah-milah berbagai tingkat struktur HTML untuk menentukan wadah mana yang mendapatkan
width: 100%
. Teks bungkus CSS tidak berfungsi di IEsumber
flex: 1 1 50%; display: flex; align-items: center;
Tidak mengherankan, IE gagal saat kata-membungkus teks panjang dalam sel. Pengaturanwidth:100%
berfungsi, tetapi pengaturanmin-width: 100%
tidak! Seharusnya, tetapi tidak t (seperti semua hal IE), jadi saya mencobamax-width: 99%
, dan mengejutkan, itu tidak bekerja saya pikir menggunakan.width:100%
mungkin lebih baik?flex-direction: column
orang tua agar ini berfungsi.Saya memiliki masalah yang sama dan intinya adalah bahwa elemen tersebut tidak menyesuaikan lebarnya dengan wadah.
Alih-alih menggunakan
width:100%
, konsistenlah (jangan mencampur model mengambang dan model fleksibel) dan gunakan fleksibel dengan menambahkan ini:Atau:
Ini berhasil untuk saya.
sumber
Seperti yang disarankan Tyler dalam salah satu komentar di sini, gunakan
pada anak dapat bekerja (bekerja untuk saya). Menggunakan
align-self: stretch
hanya berfungsi jika Anda tidak menggunakanalign-items: center
(yang saya lakukan).width: 100%
hanya berfungsi jika Anda tidak memiliki banyak anak di dalam flexbox yang ingin Anda tunjukkan berdampingan.sumber
Hai bagi saya, saya harus menerapkan lebar 100% ke elemen kakek-neneknya. Bukan elemen anaknya.
sumber
Entah bagaimana semua solusi ini tidak berhasil untuk saya. Jelas ada bug IE di
flex-direction:column
.Saya hanya membuatnya berfungsi setelah menghapus
flex-direction
:sumber
Solusi yang diajukan tidak membantu saya dengan ".child {width: 100%;}", karena saya memiliki markup yang lebih rumit. Namun, saya menemukan solusi - hapus "align-items: center;", dan itu berfungsi untuk kasus ini juga.
sumber
align-items: center
. Lihat stackoverflow.com/a/39365207/630170Satu-satunya cara saya 100% secara konsisten dapat menghindari bug kolom arah-fleksibel ini adalah dengan menggunakan kueri media min-width untuk menetapkan lebar-max ke elemen child pada layar berukuran desktop.
Anda perlu menyetel elemen anak inline secara alami (mis.
<span>
Atau<a>
) ke sesuatu selain inline (terutama tampilan: blokir atau tampilan: blok-inline) agar perbaikan berfungsi.sumber
Saya tidak menemukan solusi saya di sini, mungkin seseorang akan berguna:
Semoga berhasil!
sumber
Ini berhasil untuk saya.
sumber
Saya juga mengalami masalah ini.
Satu-satunya alternatif adalah menentukan lebar (atau maks-lebar) dalam elemen anak. IE 11 agak bodoh, dan saya, saya hanya menghabiskan 20 menit untuk mewujudkan solusi ini.
sumber
Saya memiliki masalah serupa dengan gambar yang meluap di pembungkus fleksibel.
Menambahkan salah satu
flex-basis: 100%;
atauflex: 1;
ke anak yang kelebihan tetap diperbaiki bekerja untuk saya.sumber
Mengapa menggunakan solusi yang rumit jika yang sederhana juga berfungsi?
sumber