Cara vertikal pusat div untuk semua browser?
Saya ingin pusat div
secara vertikal dengan CSS. Saya don't tabel atau JavaScript, tapi hanya CSS murni. Saya menemukan beberapa solusi, tapi semua dari mereka yang hilang Internet Explorer 6 dukungan.
<body>
<div>Div to be aligned vertically</div>
</body>
Bagaimana saya bisa center div
vertikal di semua browser utama, termasuk Internet Explorer 6?
1305
44
Di bawah ini adalah yang terbaik all-around solusi yang saya bisa untuk membangun secara vertikal dan horizontal center fixed-width, fleksibel tinggi isi kotak. Itu diuji dan bekerja untuk versi terbaru dari Firefox, Opera, Chrome, dan Safari.
Lihat Contoh Kerja Dengan Konten Dinamis
Saya dibangun dalam beberapa konten dinamis untuk menguji fleksibilitas dan ingin tahu jika ada yang melihat masalah dengan itu. Ini harus bekerja dengan baik untuk berpusat overlay juga -- lightbox, pop-up, dll.
Satu lagi yang bisa saya't melihat pada daftar:
tinggi
harus dinyatakan (lihat Variabel Tinggi)overflow: auto
untuk mencegah konten spillover (lihat Overflow)Sumber: Absolute Centering Horisontal Dan Vertikal Dalam CSS
Cara paling sederhana akan menjadi sebagai berikut 3 CSS:
1) position: relative;
2) atas: 50%;
3) mengubah: translateY(-50%);
Berikut adalah CONTOH:
Sebenarnya anda memerlukan dua div's untuk centering vertikal. Div berisi konten harus memiliki lebar dan tinggi.
Berikut ini adalah [hasil][1]
Sekarang flexbox solusi adalah cara yang sangat mudah untuk browser modern, jadi saya merekomendasikan ini untuk anda:
Ini adalah metode yang paling sederhana yang saya temukan dan saya menggunakannya sepanjang waktu ([demo jsFiddle here][1])
Terima kasih Chris Coyier dari Trik CSS untuk artikel ini.
Dukungan ini dimulai dengan IE8.
Setelah banyak penelitian, saya akhirnya menemukan solusi utama. Ia bekerja bahkan untuk melayang elemen. Lihat Sumber
Untuk pusat div pada halaman, [cek biola link][1].
vh {
Pilihan lain adalah dengan menggunakan flex box, [cek biola link][2].
.vh { background-color: #ddd; height: 400px; align-item: center; tampilan: flex; } .vh > div { width: 100%; text-align: center; vertical-align: middle; }
Pilihan lain adalah dengan menggunakan CSS 3 transform:
vh {
Flexbox solusi
Catatan
Sayangnya — tapi tidak mengejutkan — solusi lebih rumit dari satu akan berharap untuk menjadi. Juga sayangnya, anda'll perlu menggunakan tambahan div sekitar div yang anda inginkan di tengah secara vertikal.
Untuk standar-compliant browser seperti Mozilla, Opera, Safari, dll. anda perlu mengatur outer div yang akan ditampilkan sebagai tabel dan dalam div yang akan ditampilkan sebagai table-cell — yang kemudian dapat di tengah secara vertikal. Untuk Internet Explorer, anda perlu posisi batin div benar-benar dalam outer div dan kemudian tentukan top sebagai 50%. Halaman berikut menjelaskan teknik ini dengan baik dan memberikan beberapa kode sampel terlalu:
Ada juga teknik untuk melakukan centering vertikal menggunakan JavaScript. Vertikal keselarasan konten dengan JavaScript & CSS menunjukkan hal itu.
Solusi termudah adalah di bawah ini:
Jika seseorang peduli untuk Internet Explorer 10 (dan kemudian) saja, gunakan
flexbox
:Flexbox dukungan: http://caniuse.com/flexbox
Cara modern untuk pusat elemen vertikal akan menggunakan
flexbox
.Anda memerlukan orang tua untuk menentukan ketinggian dan anak-anak ke pusat.
Contoh di bawah akan pusat div ke pusat dalam browser anda. Apa's penting (dalam contoh saya) adalah untuk mengatur
height: 100%
ketubuh
danhtml
dan kemudianmin-height: 100%
ke wadah.Berpusat hanya secara vertikal
Jika anda don't peduli tentang Internet Explorer 6 dan 7, anda dapat menggunakan teknik yang melibatkan dua kontainer.
Luar wadah:
display: tabel;
Dalam wadah:
display: table-cell;
vertical-align: middle;
Isi kotak:
display: inline-block;
Anda dapat menambahkan konten apapun yang anda ingin isi kotak tanpa peduli tentang ukuran lebar atau tinggi!
Demo:
Lihat juga [ini Biola][1]!
Berpusat horizontal dan vertikal
Jika anda ingin ke pusat baik secara horizontal maupun secara vertikal, anda juga perlu berikut.
Dalam wadah:
text-align: center;
Isi kotak:
text-align: left;
atautext-align: right;
, kecuali jika anda ingin teks yang akan berpusatDemo:
Lihat juga [ini Biola][2]!
Terkait: Center Image
Ini selalu di mana saya pergi ketika saya harus kembali ke masalah ini.
Bagi mereka yang don't ingin membuat lompatan:
position:relative
atauposisi:absolut
.posisi:absolut
dantop:50%
pada anak wadah untuk bergerak ke atas ke bawah ke tengah-tengah orang tua.Contoh dari hal ini dalam kode:
Saya hanya menulis ini CSS dan untuk mengetahui lebih lanjut, silakan pergi melalui: artikel Ini dengan menyelaraskan vertikal apa-apa dengan hanya 3 baris CSS.
Menggunakan flex properti CSS.
atau dengan menggunakan
display: flex;
danmargin: auto;
menampilkan teks center
Menggunakan persentase(%) tinggi dan lebar.
Jawaban dari Billbad hanya bekerja dengan tetap lebar
.batin
div. Solusi ini bekerja untuk lebar dinamis dengan menambahkan atributtext-align: center
untuk.luar
div.Link berikut menyajikan cara yang mudah untuk melakukan hal itu hanya dengan 3 baris di CSS anda:
Menyelaraskan vertikal apa-apa dengan hanya 3 baris CSS.
Aku tahu pertanyaan sudah menjawab namun aku melihat utilitas pada link untuk kesederhanaan.