Saya memiliki di halaman saya sebuah tombol yang ketika diklik menampilkan div
(gaya popup) di tengah layar saya.
Saya menggunakan CSS berikut untuk memusatkan div
di tengah layar:
.PopupPanel
{
border: solid 1px black;
position: absolute;
left: 50%;
top: 50%;
background-color: white;
z-index: 100;
height: 400px;
margin-top: -200px;
width: 600px;
margin-left: -300px;
}
CSS ini berfungsi dengan baik selama halaman tidak di-scroll ke bawah.
Namun, jika saya menempatkan tombol di bagian bawah halaman saya, ketika diklik, div
akan ditampilkan di bagian atas, dan pengguna harus menggulir ke atas untuk melihat konten div
.
Saya ingin tahu bagaimana menampilkan div
di tengah layar, bahkan ketika halaman telah di-scroll.
left: 50%; top: 50%
bergerak yang pojok kiri atas dari.PopupPanel
ke tengah layar. Kami kemudian memindahkannya setengah dari lebar dan tinggi kembali ke tengahnya. Lihat Centering di css-tricks.comJawaban:
Ubah
position
atribut menjadi,fixed
bukanabsolute
.sumber
Ganti
position:absolute;
keposition:fixed;
sumber
Perubahan
Untuk
Spesifikasi W3C untuk
position: absolute
dan untukposition: fixed
.sumber
Saya baru saja menemukan trik baru untuk memusatkan kotak di tengah layar meskipun Anda tidak memiliki dimensi tetap. Katakanlah Anda menginginkan kotak dengan lebar 60% / tinggi 60%. Cara membuatnya terpusat adalah dengan membuat 2 kotak: kotak "container" yang posisinya kiri: 50% atas: 50%, dan kotak "teks" di dalam dengan posisi terbalik kiri: -50%; atas: -50%;
Ini berfungsi dan kompatibel lintas browser.
Lihat kode di bawah ini, Anda mungkin mendapatkan penjelasan yang lebih baik:
sumber
Metode yang Benar adalah
sumber