Ambos .container
y .container-fluid
son 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-fluid
cambia 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 .container
hace. (De ahí el nombre: "fluido" en lugar de "digital", "discreto", "fragmentado" o "cuantificado").
.container
cambia 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 .container
es "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-fluid
tiene la propiedad CSS width: 100%;
, por lo que se reajusta continuamente en cada granularidad de ancho de pantalla.
.container-fluid {
width: 100%;
}
.container
tiene 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 .container
elementos, ya que las consultas de medios es exactamente cómo .container
se implementa mediante bootstrap en segundo plano (consulte la respuesta de JKillian para el código).