Entrambi .containere .container-fluidsono reattivi (cioè cambiano il layout in base alla larghezza dello schermo), ma in diversi modi (lo so, la denominazione non la fa sembrare così).
Risposta breve:
.container è ridimensionamento instabile / discontinuo e
.container-fluid è ridimensionamento continuo / fine in larghezza: 100%.
Dal punto di vista della funzionalità:
.container-fluid si ridimensiona continuamente quando si modifica la larghezza della finestra / del browser di qualsiasi importo, senza lasciare spazio extra sui lati, a differenza di come .container funziona. (Da qui la denominazione: "fluido" in contrapposizione a "digitale", "discreto", "frammentato" o "quantizzato").
.containerridimensiona in blocchi a diverse larghezze determinate. In altre parole, si tratterà di specifiche larghezze "fisse", differenti intervalli di larghezza dello schermo.
Semantica: "larghezza fissa"
Puoi vedere come può sorgere la confusione nei nomi. Tecnicamente, possiamo dire che .containerè "larghezza fissa", ma è fissa solo nel senso che non si ridimensiona ad ogni larghezza granulare. In realtà non è "riparato", nel senso che rimane sempre a una larghezza di pixel specifica, dal momento che in realtà può cambiare dimensione.
Da una prospettiva fondamentale:
.container-fluidha la proprietà CSS width: 100%;, quindi si adatta continuamente ad ogni granularità della larghezza dello schermo.
.container-fluid {
width: 100%;
}
.containerha qualcosa come "larghezza = 800 px" (o em, rem ecc.), un valore di larghezza pixel specifico a diverse larghezze dello schermo. Questo ovviamente è ciò che fa sì che la larghezza dell'elemento salti bruscamente a una larghezza diversa quando la larghezza dello schermo attraversa una soglia della larghezza dello schermo. E tale soglia è regolata da query multimediali CSS3, che consentono di applicare stili diversi per condizioni diverse, ad esempio intervalli di larghezza dello schermo.
@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;
}
}
Al di là
È possibile rendere reattivo qualsiasi elemento a larghezze fisse tramite media query, non solo .containerelementi, poiché le media query sono esattamente come .containervengono implementate da bootstrap in background (vedere la risposta di JKillian per il codice).