Entrambi .container
e .container-fluid
sono 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").
.container
ridimensiona 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-fluid
ha la proprietà CSS width: 100%;
, quindi si adatta continuamente ad ogni granularità della larghezza dello schermo.
.container-fluid {
width: 100%;
}
.container
ha 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 .container
elementi, poiché le media query sono esattamente come .container
vengono implementate da bootstrap in background (vedere la risposta di JKillian per il codice).