Рішення, розміщені за допомогою calc (100vw - 100%), знаходяться на правильному шляху, але з цим виникає проблема: у вас назавжди залишиться запас лівого розміру смуги прокрутки, навіть якщо ви зміните розмір вікна, щоб вміст заповнює весь вікно перегляду.
Якщо ви спробуєте обійти це за допомогою медіа-запиту, у вас виникне незручний момент оснащення, оскільки маржа не буде прогресивно зменшуватися, коли ви зміните розмір вікна.
Ось таке рішення, яке подолає це, і AFAIK не має недоліків:
Замість того, щоб використовувати margin: auto для центрування вашого вмісту, використовуйте це:
body {
margin-left: calc(50vw - 500px);
}
Замініть 500px на половину максимальної ширини вашого вмісту (тому в цьому прикладі максимальна ширина вмісту дорівнює 1000px). Тепер вміст залишатиметься в центрі, а поле буде поступово зменшуватися до кінця, поки вміст не заповнить вікно перегляду.
Для того, щоб запобігти відходженню поля відсутності, коли вікно перегляду менша за максимальну ширину, просто додайте медіа-запит, як-от так:
@media screen and (max-width:1000px) {
body {
margin-left: 0;
}
}
Et voilà!
overflow-y: overlay
цю тему?