Solusi yang diposting menggunakan calc (100vw - 100%) ada di jalur yang benar, tetapi ada masalah dengan ini: Anda akan selamanya memiliki margin di sebelah kiri ukuran scrollbar, bahkan jika Anda mengubah ukuran jendela sehingga konten mengisi seluruh viewport.
Jika Anda mencoba menyiasatinya dengan kueri media, Anda akan memiliki momen gertakan yang canggung karena margin tidak akan semakin kecil saat Anda mengubah ukuran jendela.
Inilah solusi yang mengatasi itu dan AFAIK tidak memiliki kekurangan:
Alih-alih menggunakan margin: otomatis untuk memusatkan konten Anda, gunakan ini:
body {
margin-left: calc(50vw - 500px);
}
Ganti 500px dengan setengah lebar maksimum konten Anda (jadi dalam contoh ini, lebar maksimum konten adalah 1000px). Konten sekarang akan tetap terpusat dan margin akan semakin berkurang sampai konten memenuhi viewport.
Untuk menghentikan margin agar tidak negatif ketika viewport lebih kecil dari max-width, tambahkan saja kueri media seperti ini:
@media screen and (max-width:1000px) {
body {
margin-left: 0;
}
}
Dan lagi!
overflow-y: overlay
di utas ini?