Saya memiliki halaman web sederhana dengan beberapa konten Lipsum yang berada di tengah halaman. Halaman ini berfungsi dengan baik di Chrome dan Firefox. Jika saya mengurangi ukuran jendela, konten mengisi jendela sampai tidak bisa dan kemudian menambahkan bilah gulir dan mengisi konten dari layar, ke arah bawah.
Namun, halaman tersebut tidak berada di tengah IE11. Saya bisa mendapatkan halaman ke tengah di IE dengan meregangkan tubuh, tetapi jika saya melakukannya, maka konten mulai keluar dari layar ke arah atas dan memotong bagian atas konten.
Di bawah ini adalah dua skenario. Lihat Fiddles terkait. Jika masalah tidak langsung terlihat, kurangi ukuran jendela hasil sehingga dipaksa untuk membuat bilah gulir.
Catatan: Aplikasi ini hanya menargetkan versi terbaru Firefox, Chrome dan IE (IE11), yang semuanya memiliki dukungan untuk Rekomendasi Kandidat Flexbox , jadi kompatibilitas fitur seharusnya tidak menjadi masalah (secara teori).
Edit : Saat menggunakan API Layar Penuh untuk menampilkan div luar layar penuh, semua browser berada di tengah dengan benar menggunakan CSS asli. Namun, setelah keluar dari mode layar penuh, IE kembali ke tengah horizontal dan rata atas secara vertikal.
Sunting : IE11 menggunakan implementasi khusus non-vendor dari Flexbox. Pembaruan tata letak kotak fleksibel ("Flexbox")
Menengahkan dan Mengubah Ukuran dengan Benar di Chrome / FF, Tidak Menengahkan Tetapi Mengubah Ukuran dengan Benar di IE11
Biola: http://jsfiddle.net/Dragonseer/3D6vw/
html, body
{
height: 100%;
width: 100%;
}
body
{
margin: 0;
}
.outer
{
min-width: 100%;
min-height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.inner
{
width: 80%;
}
Pusat dengan Benar di Mana Saja, Memotong Bagian Atas Saat Ukurannya Bawah
Biola: http://jsfiddle.net/Dragonseer/5CxAy/
html, body
{
height: 100%;
width: 100%;
}
body
{
margin: 0;
display: flex;
}
.outer
{
min-width: 100%;
min-height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.inner
{
width: 80%;
}
sumber
-ms-flexbox
untuk IE ..Jawaban:
Saya menemukan bahwa browser memiliki masalah untuk menyelaraskan secara vertikal wadah dalam, ketika hanya gaya min-height yang disetel atau ketika gaya ketinggian hilang sama sekali. Apa yang saya lakukan adalah menambahkan gaya ketinggian dengan beberapa nilai dan itu memperbaiki masalah bagi saya.
sebagai contoh :
Jadi sekarang kita memiliki gaya tinggi, tetapi min-height akan menimpanya. Dengan cara itu yaitu senang dan kita masih bisa menggunakan min-height.
Semoga ini bermanfaat bagi seseorang.
sumber
-ms-flex-align:center;
untuk IE10. Dukungan untukalign-items
ditambahkan hanya di IE11 .min-height
memang menimpaheight
aturan, tetapi jika konten melebihimin-height
itu hanya akan melampaui batas. The jawaban dengan @ericodes memecahkan masalah ini dan solusi bekerja pada semua browser yang mendukung fleksibel.Coba gabungkan div apa pun yang Anda gunakan untuk flexboxed
flex-direction: column
dalam wadah yang juga flexboxed.Saya baru saja menguji ini di IE11 dan berhasil. Perbaikan yang aneh, tetapi sampai Microsoft membuat perbaikan bug internal mereka secara eksternal ... itu harus dilakukan!
HTML:
CSS:
2 contoh untuk Anda uji di IE11: http://codepen.io/philipwalton/pen/JdvdJE http://codepen.io/chriswrightdesign/pen/emQNGZ/
sumber
min-height
alih - alihheight
aturan keras , sambil tetap memusatkan secara vertikal pada semua browser yang mendukung penggunaandisplay: flex
.display:flex
diperlukan pada pembungkusnya, dan mungkin salah satunya pada anak:width: 100%
flex-basis:100%
flex-grow:1
tergantung pada konten / gaya Anda.align-items
disetel. Anda harus membungkus flexbox asli dengan flexbox tanpa properti ini.align-items
properti (FlexContainerWrapper)?Inilah solusi kerja saya (SCSS):
sumber
Untuk berjaga-jaga jika seseorang sampai di sini dengan masalah yang sama dengan yang saya alami, yang tidak secara khusus dibahas dalam komentar sebelumnya.
Saya memiliki
margin: auto
elemen dalam yang menyebabkannya menempel ke bagian bawah induknya (atau elemen luar). Yang memperbaikinya bagi saya adalah mengubah margin menjadimargin: 0 auto;
.sumber
Ini adalah bug yang diketahui yang tampaknya telah diperbaiki secara internal di Microsoft.
https://connect.microsoft.com/IE/feedback/details/802625/min-height-and-flexbox-flex-direction-column-dont-work-together-in-ie-10-11-preview
sumber
Jawaban asli dari https://github.com/philipwalton/flexbugs/issues/231#issuecomment-362790042
sumber
saya telah memperbarui kedua biola. Saya berharap ini akan membuat pekerjaan Anda selesai.
keterpusatan
pusat dan gulir
sumber
Saya tidak memiliki banyak pengalaman
Flexbox
tetapi menurut saya ketinggian yang dipaksakan pada taghtml
danbody
menyebabkan teks menghilang di atas ketika diubah ukurannya - Saya tidak dapat menguji di IE tetapi saya menemukan efek yang sama di Chrome.Aku memotong biolamu dan menghapus deklarasi
height
danwidth
.Sepertinya
flex
pengaturan tersebut juga harus diterapkan padaflex
elemen lain . Namun, menerapkandisplay: flex
ke.inner
masalah yang disebabkan jadi saya secara eksplisit mengatur.inner
kedisplay: block
dan mengatur.outer
keflex
untuk pemosisian.Saya mengatur
.outer
ketinggian minimum untuk mengisi viewportdisplay: flex
, dan mengatur perataan horizontal dan vertikal:Aku mengatur
.inner
untukdisplay: block
secara eksplisit. Di Chrome, sepertinya ini diwarisiflex
dari.outer
. Saya juga mengatur lebarnya:Ini memperbaiki masalah di Chrome, semoga itu mungkin melakukan hal yang sama di IE11. Ini biola versi saya: http://jsfiddle.net/ToddT/5CxAy/21/
sumber
Menemukan solusi yang baik apa yang berhasil untuk saya, periksa tautan ini https://codepen.io/chriswrightdesign/pen/emQNGZ/?editors=1100 Pertama, kami menambahkan div induk, kedua kami mengubah min-height: 100% menjadi min- tinggi: 100vh. Ini bekerja seperti pesona.
sumber
Jika Anda dapat menentukan lebar dan tinggi induk, ada cara yang lebih sederhana untuk memusatkan gambar tanpa harus membuat wadah untuk itu.
Untuk beberapa alasan, jika Anda menentukan min-width, IE akan mengenali max-width juga.
Solusi ini berfungsi untuk IE10 +, Firefox dan Chrome.
https://jsfiddle.net/HumbertoMendes/t13dzsmn/
sumber