Решения, опубликованные с использованием calc (100vw - 100%), находятся на правильном пути, но есть проблема с этим: у вас навсегда останется поле слева от размера полосы прокрутки, даже если вы измените размер окна так, чтобы содержимое заполняет весь видовой экран.
Если вы попытаетесь обойти это с помощью медиа-запроса, у вас будет неловкий момент щелчка, потому что поле не будет постепенно уменьшаться при изменении размера окна.
Вот решение, которое обходит это, и у AFAIK нет недостатков:
Вместо того чтобы использовать margin: auto для центрирования вашего контента, используйте это:
body {
margin-left: calc(50vw - 500px);
}
Замените 500 пикселей на половину максимальной ширины вашего контента (поэтому в этом примере максимальная ширина контента составляет 1000 пикселей). Контент теперь будет оставаться в центре, а поле будет постепенно уменьшаться до тех пор, пока контент не заполнит область просмотра.
Чтобы препятствовать тому, чтобы отступ становился отрицательным, когда область просмотра меньше, чем max-width, просто добавьте медиа-запрос следующим образом:
@media screen and (max-width:1000px) {
body {
margin-left: 0;
}
}
И вуаля!
overflow-y: overlay
в этой теме?