Ambos .containery .container-fluidson receptivos (es decir, cambian el diseño en función del ancho de la pantalla), pero de diferentes maneras (lo sé, el nombre no lo hace sonar de esa manera).
Respuesta corta:
.container es un cambio de tamaño entrecortado y entrecortado, y
.container-fluid es continuo / cambio de tamaño fino en ancho: 100%.
Desde una perspectiva de funcionalidad:
.container-fluidcambia constantemente de tamaño a medida que cambia el ancho de su ventana / navegador en cualquier cantidad, sin dejar espacio vacío adicional en los lados, a diferencia de cómo lo .containerhace. (De ahí el nombre: "fluido" en lugar de "digital", "discreto", "fragmentado" o "cuantificado").
.containercambia de tamaño en trozos en varios anchos determinados. En otras palabras, serán diferentes anchos específicos, también conocidos como "fijos", diferentes rangos de anchos de pantalla.
Semántica: "ancho fijo"
Puedes ver cómo puede surgir la confusión de nombres. Técnicamente, podemos decir que .containeres "ancho fijo", pero se fija solo en el sentido de que no cambia el tamaño en cada ancho granular. En realidad, no está "fijo" en el sentido de que siempre se mantiene en un ancho de píxel específico, ya que en realidad puede cambiar el tamaño.
Desde una perspectiva fundamental:
.container-fluidtiene la propiedad CSS width: 100%;, por lo que se reajusta continuamente en cada granularidad de ancho de pantalla.
.container-fluid {
width: 100%;
}
.containertiene algo como "ancho = 800px" (o em, rem, etc.), un valor de ancho de píxel específico en diferentes anchos de pantalla. Esto, por supuesto, es lo que hace que el ancho del elemento salte abruptamente a un ancho diferente cuando el ancho de la pantalla cruza un umbral de ancho de pantalla. Y ese umbral se rige por las consultas de medios CSS3, que le permiten aplicar diferentes estilos para diferentes condiciones, como los rangos de ancho de pantalla.
@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;
}
}
Más allá
Puede hacer que cualquier elemento de ancho fijo responda mediante consultas de medios, no solo .containerelementos, ya que las consultas de medios es exactamente cómo .containerse implementa mediante bootstrap en segundo plano (consulte la respuesta de JKillian para el código).