Saya mencoba mendapatkan div yang memiliki rata position:fixed
tengah di halaman saya.
Saya selalu bisa melakukannya dengan div yang benar-benar diposisikan menggunakan "retasan" ini
left: 50%; width: 400px; margin-left:-200px
... di mana nilai margin-left adalah setengah dari lebar div.
Ini tampaknya tidak berfungsi untuk div posisi tetap, melainkan hanya menempatkannya dengan sudut paling kiri pada 50% dan mengabaikan deklarasi margin-kiri.
Adakah ide tentang cara memperbaikinya sehingga saya dapat menyelaraskan tengah elemen posisi tetap?
Dan saya akan memberikan bonus M&M jika Anda dapat memberi tahu saya cara yang lebih baik untuk memusatkan elemen yang diposisikan secara absolut daripada cara yang saya uraikan di atas.
Jawaban:
Jawaban Koen tidak persis memusatkan elemen.
Cara yang tepat adalah dengan menggunakan
CCS3 transform
properti. Meskipun tidak didukung di beberapa browser lama . Dan kita bahkan tidak perlu menetapkan tetap atau kerabatwidth
.Bekerja perbandingan jsfiddle di sini .
sumber
left: 50%
memindahkan div ke 50% halaman. Tetapi Anda harus ingat bahwa itu memindahkannya mulai dari sisi kiri div, oleh karena itu div belum berada di tengah.translate(-50%, 0)
yang pada dasarnyatranslateX(-50%)
mempertimbangkan lebar div saat ini dan memindahkannya sebesar -50% dari lebarnya ke sisi kiri dari tempat sebenarnya.Untuk yang mengalami masalah yang sama, tetapi dengan desain yang responsif, Anda juga dapat menggunakan:
Melakukan ini akan selalu membuat Anda tetap
div
terpusat di layar, bahkan dengan desain yang responsif.sumber
-(75/2)
dalam kasus ini)Anda juga bisa menggunakan flexbox untuk ini.
sumber
<center>
yang tidak digunakan lagi dan dengan menggunakan teknik modern sepertidisplay: flex
dan beberapa properti terkait.Dari postingan di atas, menurut saya cara terbaik adalah
width: 100%
margin-left: auto
danmargin-right: auto
, atau untuk tabel membuatnyaalign="center"
.Semoga ini bisa membantu.
sumber
max-width
s untuk elemen posisi tetap. Anda ingin sidebar tetap yang secara responsif mengambil 30% darimax-width: 1200px
halaman web Anda ? Ini akan membawamu ke sana.Div normal harus menggunakan
margin-left: auto
danmargin-right: auto
, tetapi itu tidak berfungsi untuk div tetap. Cara menyiasatinya mirip dengan jawaban Andrew , tetapi tidak menggunakan<center>
hal yang sudah usang . Pada dasarnya, berikan div tetap sebuah pembungkus.Ini akan memusatkan div tetap di dalam div sambil memungkinkan div bereaksi dengan browser. yaitu div akan berada di tengah jika ada cukup ruang, tetapi akan bertabrakan dengan tepi browser jika tidak ada; mirip dengan reaksi div terpusat biasa.
sumber
Jika Anda ingin meratakan tengah div posisi tetap baik secara vertikal maupun horizontal gunakan ini
sumber
Ini harus melakukan hal yang sama.
sumber
Jika Anda tahu lebarnya 400px ini akan menjadi cara termudah untuk melakukannya, saya kira.
sumber
Ini berfungsi jika Anda ingin elemen menjangkau seluruh halaman seperti bilah navigasi lainnya.
width: calc (width: 100% - width apa pun yang tidak berada di tengah)
Misalnya jika bilah navigasi samping Anda adalah 200 piksel:
lebar: kalk (100% - 200 piksel);
sumber
Cukup mudah menggunakan lebar: 70%; kiri: 15%;
Setel lebar elemen menjadi 70% jendela dan menyisakan 15% di kedua sisi
sumber
Saya menggunakan yang berikut ini dengan Twitter Bootstrap (v3)
Yaitu membuat elemen lebar penuh yang posisinya tetap, dan hanya mendorong wadah di dalamnya, wadah itu berada di tengah relatif terhadap lebar penuh. Harus bersikap baik secara responsif juga.
sumber
Sebuah solusi dengan menggunakan kotak fleksibel; sepenuhnya responsif:
sumber
jika Anda tidak ingin menggunakan metode pembungkus. maka Anda bisa melakukan ini:
sumber