#menu {
position: fixed;
width: 800px;
background: rgb(255, 255, 255); /* The Fallback */
background: rgba(255, 255, 255, 0.8);
margin-top: 30px;
}
Saya tahu pertanyaan ini jutaan kali di luar sana, namun saya tidak dapat menemukan solusi untuk kasus saya. Saya punya div, yang harus diperbaiki di layar, bahkan jika halaman tersebut digulirkan harus selalu BERDIRI di tengah layar!
Div harus memiliki 500px
lebar, harus 30px
jauh dari atas (margin-top), harus dipusatkan secara horizontal di tengah halaman untuk semua ukuran browser dan tidak boleh bergerak ketika menggulir sisa halaman.
Apakah itu mungkin?
Jawaban:
sumber
-400
disebabkan oleh lebar div yang diatur ke800
.Jawaban di sini sudah usang. Sekarang Anda dapat dengan mudah menggunakan transformasi CSS3 tanpa hardcoding margin . Ini berfungsi pada semua elemen, termasuk elemen tanpa lebar atau lebar dinamis.
Pusat horisontal:
Pusat vertikal:
Baik horisontal maupun vertikal:
Kompatibilitas bukan masalah: http://caniuse.com/#feat=transforms2d
sumber
Jika menggunakan inline-blok adalah opsi, saya akan merekomendasikan pendekatan ini:
Saya menulis posting singkat tentang ini di sini: http://salomvary.github.com/position-fixed-horizontally-centered.html
sumber
width
menuliskan kode angka apa pun untuk atau sesuatu - tidak seperti @Quentins jawabSunting September 2016: Meskipun menyenangkan untuk mendapatkan pemungutan suara sesekali untuk ini, karena dunia telah berubah, sekarang saya akan menjawab dengan jawaban yang menggunakan transform (dan yang memiliki banyak suara positif). Saya tidak akan melakukannya dengan cara ini lagi.
Cara lain untuk tidak harus menghitung margin atau membutuhkan sub-kontainer:
sumber
bottom:0
akan memastikan menu selalu berpusat vertikal, tapi saya melihat sekarang bukan itu yang diminta OP. :)Dimungkinkan untuk memusatkan div dengan cara ini:
html:
css:
Dengan menggunakan cara ini Anda akan selalu memusatkan blok batin Anda, selain itu dapat dengan mudah diubah menjadi responsif sejati (dalam contoh itu akan hanya cair pada layar yang lebih kecil), oleh karena itu tidak ada batasan seperti pada contoh pertanyaan dan dalam jawaban yang dipilih .
sumber
... atau Anda dapat membungkus menu Anda dengan yang lain:
sumber
Berikut solusi dua-div lainnya. Mencoba untuk membuatnya singkat dan tidak dikodekan. Pertama, html yang diharapkan:
Prinsip di balik css berikut ini adalah memposisikan beberapa sisi "luar", kemudian gunakan fakta bahwa ia mengasumsikan ukuran "dalam" untuk secara relatif menggeser yang terakhir.
Pendekatan ini mirip dengan Quentin, tetapi bagian dalam bisa dari ukuran variabel.
sumber
Inilah solusi flexbox saat menggunakan div pembungkus layar penuh. justify-content centre itu child div secara horizontal dan sejajarkan-pusat item itu secara vertikal.
sumber