Ambos .container
e .container-fluid
são responsivos (ou seja, eles mudam o layout com base na largura da tela), mas de maneiras diferentes (eu sei, a nomeação não soa dessa maneira).
Resposta curta:
.container
é redimensionamento irregular / irregular e
.container-fluid
é redimensionamento contínuo / fino na largura: 100%.
Do ponto de vista da funcionalidade:
.container-fluid
redimensiona continuamente à medida que você altera a largura da janela / navegador em qualquer quantidade, não deixando mais espaço vazio nas laterais, ao contrário de como .container
faz. (Daí a nomeação: "fluido" em oposição a "digital", "discreto", "fragmentado" ou "quantizado").
.container
redimensiona em pedaços com várias larguras determinadas. Em outras palavras, serão diferentes específicos, também conhecidos como larguras "fixas", diferentes faixas de larguras da tela.
Semântica: "largura fixa"
Você pode ver como a confusão de nomes pode surgir. Tecnicamente, podemos dizer que .container
é "largura fixa", mas é fixada apenas no sentido de que não é redimensionada a cada largura granular. Na verdade, não é "fixo" no sentido de que sempre fica em uma largura de pixel específica, pois na verdade pode alterar o tamanho.
De uma perspectiva fundamental:
.container-fluid
possui a propriedade CSS width: 100%;
, portanto, é reajustado continuamente a cada granularidade da largura da tela.
.container-fluid {
width: 100%;
}
.container
tem algo como "width = 800px" (ou em, rem etc.), um valor específico de largura de pixel em diferentes larguras de tela. É claro que é isso que faz com que a largura do elemento salte abruptamente para uma largura diferente quando a largura da tela ultrapassa um limite de largura da tela. E esse limite é regido pelas consultas de mídia CSS3, que permitem aplicar estilos diferentes para diferentes condições, como intervalos de largura da tela.
@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ém
Você pode fazer com que qualquer elemento de largura fixa seja responsivo por meio de consultas de mídia, não apenas de .container
elementos, pois as consultas de mídia são exatamente como as .container
implementadas pelo bootstrap em segundo plano (consulte a resposta de JKillian para o código).