Zarówno .container
i .container-fluid
reagują (tzn zmienić układ w oparciu o szerokości ekranu), ale na różne sposoby (wiem, nazewnictwo nie sprawiają, że dźwięk ten sposób).
Krótka odpowiedź:
.container
to przeskakiwanie / niepewne zmiany rozmiaru, oraz
.container-fluid
jest ciągła / dokładna zmiana rozmiaru przy szerokości: 100%.
Z perspektywy funkcjonalności:
.container-fluid
stale zmienia rozmiar, zmieniając szerokość okna / przeglądarki o dowolną wartość, nie pozostawiając żadnych dodatkowych pustych miejsc po bokach, w przeciwieństwie do tego, jak to .container
robi. (Stąd nazwa: „płyn” w przeciwieństwie do „cyfrowej”, „dyskretnej”, „fragmentowanej” lub „skwantowanej”).
.container
zmienia rozmiar na kawałki przy kilku określonych szerokościach. Innymi słowy, będą to różne określone aka „stałe” szerokości, różne zakresy szerokości ekranu.
Semantyka: „stała szerokość”
Możesz zobaczyć, jak mogą powstać pomyłki w nazewnictwie. Technicznie można powiedzieć, że .container
jest „stała szerokość”, ale jest ustalona tylko w tym sensie, że nie zmienia rozmiaru przy każdej szerokości granulek. W rzeczywistości nie jest „ustalony” w tym sensie, że zawsze pozostaje na określonej szerokości piksela, ponieważ w rzeczywistości może zmieniać rozmiar.
Z fundamentalnej perspektywy:
.container-fluid
ma właściwość CSS width: 100%;
, więc stale dostosowuje się przy każdym stopniu szczegółowości ekranu.
.container-fluid {
width: 100%;
}
.container
ma coś w rodzaju „szerokość = 800px” (lub em, rem itp.), określoną wartość szerokości piksela przy różnych szerokościach ekranu. To oczywiście powoduje, że szerokość elementu gwałtownie przeskakuje na inną szerokość, gdy szerokość ekranu przekracza próg szerokości ekranu. Próg ten jest regulowany przez zapytania CSS3 o media, które pozwalają na zastosowanie różnych stylów dla różnych warunków, takich jak zakresy szerokości ekranu.
@media screen and (max-width: 400px){
.container {
width: 123px;
}
}
@media screen and (min-width: 401px) and (max-width: 800px){
.container {
width: 456px;
}
}
@media screen and (min-width: 801px){
.container {
width: 789px;
}
}
Poza
Możesz sprawić, by dowolny element o stałej szerokości odpowiadał za pomocą zapytań o media, a nie tylko .container
elementów, ponieważ zapytania o media są dokładnie .container
realizowane przez bootstrap w tle (zobacz kod JKillian za odpowiedź).