Beide .container
und .container-fluid
sind responsive (d. h. sie ändern das Layout basierend auf der Bildschirmbreite), aber auf unterschiedliche Weise (ich weiß, die Benennung lässt das nicht vermuten).
Kurze Antwort:
.container
ändert sich ruckartig, und
.container-fluid
ändert sich kontinuierlich bei einer Breite von 100%.
Aus funktionaler Sicht:
.container-fluid
passt sich kontinuierlich an, wenn Sie die Breite Ihres Fensters/Browsers beliebig ändern, ohne jemals zusätzlichen leeren Platz an den Seiten zu hinterlassen, im Gegensatz zu .container
. (Daher die Benennung: "fluid" im Gegensatz zu "digital", "diskret", "segmentiert" oder "quantisiert").
.container
ändert sich in Schritten bei verschiedenen festgelegten Breiten. Mit anderen Worten, es gibt verschiedene bestimmte bzw. "feste" Breiten für verschiedene Bereich von Bildschirmbreiten.
Semantik: "feste Breite"
Man kann sehen, wie Verwirrung bei der Benennung entstehen kann. Technisch gesehen kann man sagen, dass .container
eine "feste Breite" hat, aber sie ist nur in dem Sinne festgelegt, dass sie sich nicht bei jeder granularen Breite ändert. Tatsächlich ist sie nicht "fest" im Sinne von immer bei einer bestimmten Pixelbreite bleibt, da sie tatsächlich die Größe ändern kann.
Aus grundlegender Perspektive:
.container-fluid
hat die CSS-Eigenschaft width: 100%;
, so dass sie sich kontinuierlich bei jeder Bildschirmbreite anpasst.
.container-fluid {
width: 100%;
}
.container
hat etwas wie "width = 800px" (oder em, rem usw.), einen bestimmten Pixelwert bei verschiedenen Bildschirmbreiten. Dies führt natürlich dazu, dass die Elementbreite abrupt auf eine andere Breite springt, wenn die Bildschirmbreite einen bestimmten Schwellenwert überschreitet. Und dieser Schwellenwert wird durch CSS3 Media Queries gesteuert, die es ermöglichen, verschiedene Stile für verschiedene Bedingungen anzuwenden, z. B. Bildschirmbreitenbereiche.
@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;
}
}
Darüber hinaus
Sie können jedes Element mit fester Breite über Media Queries responsiv machen, nicht nur .container
Elemente, da Media Queries genau die Methode sind, wie .container
im Hintergrund von Bootstrap implementiert wird (siehe Antwort von JKillian für den Code).