Po poznaniu tej sztuczki czy raczej swego rodzaju wzorca i bezwzględnym przestrzeganiu go już nigdy nie zdarzy się nam dość częsta na różnych stronach sytuacja, w której mamy responsywność względem do pierwotnej wielkości okna, ale w momencie, gdy zaczynamy je zwężać i rozsuwać rzeczy blokują się nam na jakimś widoku i nie chcą wracać.

Zrobimy rzecz prostą – na małych ekranach kolor tła czerwony, na większych żółty, na jeszcze większych niebieski, na bardzo wielkich zielony. Zaczynamy mobile-first, czyli od widoku dla najmniejszych:

body {
 height: 100vh;
 background-color: tomato;
 }

Teraz będziemy stackować od najmniejszego do największego breakpointa nasze media queries:

@media screen and (min-width: 992px) {
  body {
   background-color: gold;
}
}

Okej, teraz następny breakpoint pod poprzednim, pamiętając o kaskadowości CSS:

@media screen and (min-width: 1200px) {
   body {
    background-color: blue;
  }
}

Na sam dół dajemy największy breakpoint (dla minimalnej szerokości):

@media screen and (min-width: 1400px) {
   body {
    background-color: green;
     }
 }

Teraz możemy zmniejszać i zwiększać okno dowoli, otworzyć stronę na dowolnie małym oknie, rozszerzyć (albo odwrotnie) – i nigdzie nam się nie zablokuje.

Niby proste, ale wiele stron ma z tym problem i jest dostosowanych tylko do pierwotnego rozmiaru okna, co sprawa, że jak otworzysz ją klikając na jakiś link, a mając zmniejszone okno na komputerze (z jakichkolwiek powodów) to rozszerzając okno jesteś zablokowany na widoku mobilnym i musisz odświeżyć już na rozciągniętym oknie, aby poprawnie wyświetlić widok na twój rozmiar ekranu.

Korzystając z tej porady i stosując ten wzorzec pracy z media queries nigdy nic nam się nie zablokuje. Blokuje się wtedy, gdy piszemy bałaganiarski kod, mieszamy min-width z max-width, mieszamy kolejność queries, nie mamy jasno określonego podejścia do pracy, np. zaczynamy pierwotnie od widoku mobilnego i stopniowo z każdym kolejnym media query dostosowujemy do rosnącego ekranu.