Rozwiązania opublikowane przy użyciu funkcji calc (100vw - 100%) są na dobrej drodze, ale jest z tym problem: na zawsze będziesz mieć margines po lewej stronie rozmiaru paska przewijania, nawet jeśli zmienisz rozmiar okna, aby zawartość wypełnia całą rzutnię.
Jeśli spróbujesz obejść ten problem za pomocą zapytania o media, będziesz miał niezręczny moment przyciągania, ponieważ margines nie będzie stopniowo zmniejszał się podczas zmiany rozmiaru okna.
Oto rozwiązanie, które obejdzie ten problem, a AFAIK nie ma wad:
Zamiast używać marginesu: auto do centrowania treści, użyj tego:
body {
margin-left: calc(50vw - 500px);
}
Zamień 500px na połowę maksymalnej szerokości treści (więc w tym przykładzie maksymalna szerokość treści to 1000px). Zawartość pozostanie wyśrodkowana, a margines będzie stopniowo zmniejszał się do końca, aż zawartość wypełni obszar ekranu.
Aby zatrzymać margines przed ujemnym, gdy rzutnia jest mniejsza niż maksymalna szerokość, po prostu dodaj zapytanie medialne:
@media screen and (max-width:1000px) {
body {
margin-left: 0;
}
}
Zrobione!
overflow-y: overlay
w tym wątku?