Saya ingin membuat position: fixed;
kotak popup yang berada di tengah layar dengan lebar dan tinggi yang dinamis. Saya menggunakan margin: 5% auto;
ini. Tanpa position: fixed;
itu pusat baik-baik saja secara horizontal, tetapi tidak secara vertikal. Setelah menambahkan position: fixed;
, itu bahkan tidak memusatkan secara horizontal.
Inilah set lengkap:
.jqbox_innerhtml {
position: fixed;
width: 500px;
height: 200px;
margin: 5% auto;
padding: 10px;
border: 5px solid #ccc;
background-color: #fff;
}
<div class="jqbox_innerhtml">
This should be inside a horizontally
and vertically centered box.
</div>
Bagaimana cara memusatkan kotak ini di layar dengan CSS?
sumber
Berikut adalah pendekatan modern untuk memusatkan elemen secara horizontal dengan lebar dinamis - ini bekerja di semua browser modern; dukungan dapat dilihat di sini .
Contoh yang Diperbarui
Untuk pemusatan vertikal dan horizontal Anda dapat menggunakan yang berikut:
Contoh yang Diperbarui
Anda mungkin ingin menambahkan lebih banyak properti awalan vendor juga (lihat contoh).
sumber
Atau cukup tambahkan
left: 0
danright: 0
ke CSS asli Anda, yang membuatnya berperilaku mirip dengan elemen tidak tetap reguler dan teknik margin otomatis biasa berfungsi:Perhatikan bahwa Anda perlu menggunakan HTML (X) yang valid
DOCTYPE
agar berperilaku dengan benar di IE (yang tentu saja harus Anda miliki ..!)sumber
right
properti jikaleft
juga diatur! ( msdn.microsoft.com/en-us/library/... mencatat ituleft
danright
hanya memiliki dukungan "parsial" di IE7). OK, saya mengakui solusi ini tidak baik jika dukungan IE7 penting, tetapi trik yang bagus untuk diingat untuk masa depan :)Tambahkan wadah seperti:
Kemudian masukkan kotak Anda ke div ini akan melakukan pekerjaan.
sumber
display: inline-block
ini berfungsi. (Beberapa nilai tampilan lain mungkin juga berfungsi, sepertitable
.)margin:auto;
dan mengubah lebar kewidth:50%
atauwidth:400px
. maka isinya bisa berupa teks lurus, elemen blok, atau elemen inline.Cukup tambahkan:
sumber
position: fixed
, yang menjadi pertanyaan adalah pertanyaannya. Jika saya salah, harap edit jawaban Anda untuk menyertakan cuplikan kode yang dapat dijalankan.position: fixed
, asalkan mengaturmax-width
atauwidth
ke elemen.di dalamnya bisa berupa elemen dengan lebar diffenet, tinggi atau tanpa. semua terpusat.
sumber
Solusi ini tidak mengharuskan Anda untuk menentukan lebar dan tinggi untuk div popup Anda.
http://jsfiddle.net/4Ly4B/33/
Dan alih-alih menghitung ukuran popup, dan minus setengah ke atas, javascript mengubah ukuran popupContainer untuk mengisi seluruh layar ...
(Tinggi 100%, tidak berfungsi saat menggunakan tampilan: table-cell; (yang diperlukan untuk memusatkan sesuatu secara vertikal)) ...
Pokoknya itu bekerja :)
sumber
Tidak bekerja di bawah IE7.
Diubah menjadi
Mulai bekerja tetapi di peramban lainnya berhenti berfungsi! Jadi gunakan cara ini untuk IE7 di bawah ini
sumber
Anda pada dasarnya dapat membungkusnya menjadi lain
div
dan setposition
kefixed
.sumber
Saya menggunakan
vw
(lebar viewport) danvh
(tinggi viewport). viewport adalah seluruh layar Anda.100vw
adalah total lebar layar Anda dan100vh
total tinggi.sumber
Untuk memperbaiki posisi gunakan ini:
sumber
Satu jawaban yang mungkin :
sumber
Coba gunakan ini untuk elemen horisontal yang tidak akan memusat dengan benar.
lebar: calc (lebar: 100% - lebar apa pun yang tidak terpusat itu )
Misalnya jika bilah navigasi sisi Anda berukuran 200px:
sumber
Saya hanya menggunakan sesuatu seperti ini:
Ini memusatkan kotak dialog baik secara horizontal dan vertikal untuk saya, dan saya dapat menggunakan lebar dan tinggi yang berbeda untuk menyesuaikan resolusi layar yang berbeda untuk membuatnya responsif, dengan pertanyaan media.
Bukan opsi jika Anda masih perlu memberikan dukungan untuk peramban tempat properti khusus CSS atau
calc()
tidak didukung (periksa di caniuse.)sumber
Yang ini bekerja paling baik untuk saya:
sumber
Satu-satunya solusi sangat mudah adalah dengan menggunakan tabel align = center seperti pada:
Saya tidak percaya orang di seluruh dunia menyia-nyiakan jumlah yang berlebihan ini untuk waktu yang konyol untuk menyelesaikan masalah mendasar seperti memusatkan div. solusi css tidak berfungsi untuk semua browser, solusi jquery adalah solusi komputasi perangkat lunak dan bukan opsi untuk alasan lain.
Saya telah membuang waktu terlalu banyak untuk menghindari menggunakan meja, tetapi pengalaman mengatakan kepada saya untuk berhenti melawannya. Gunakan tabel untuk div centering. Bekerja setiap saat di semua browser! Jangan khawatir lagi.
sumber
position:fixed
.