Estou aprendendo a usar o Bootstrap. Atualmente, estou percorrendo meus layouts. Enquanto o Bootstrap é bem legal, tudo o que vejo parece datado. Para a minha vida, tenho o que penso ser um layout básico que não consigo entender. Meu layout é semelhante ao seguinte:
---------------------------------------------------------------------------
| | | |
| | | |
| 240px | 160px | All Remaining Width of the Window |
| | | |
| | | |
--------------------------------------------------------------------------|
Essa grade precisa ocupar toda a altura da janela. Pelo meu entendimento, preciso misturar larguras fixas e fluidas. No entanto, o Bootstrap 3.0 parece não ter mais a classe fluida. Mesmo assim, parece que não consigo descobrir como misturar tamanhos de coluna fluidos e fixos. Alguém sabe como fazer isso no Bootstrap 3.0?
twitter-bootstrap
twitter-bootstrap-3
Node Newbie
fonte
fonte
Respostas:
Não há realmente nenhuma maneira fácil de misturar larguras fluidas e fixas com o Bootstrap 3. É para ser assim, pois o sistema de grade foi projetado para ser uma coisa fluida e responsiva. Você pode tentar hackear alguma coisa, mas isso vai contra o que o sistema de grade responsiva está tentando fazer, cuja intenção é fazer esse layout fluir entre diferentes tipos de dispositivos.
Se você precisa seguir esse layout, considere colocar sua página com CSS personalizado e não usar a grade.
fonte
edit: Como muitas pessoas parecem querer fazer isso, escrevi um pequeno guia com um caso de uso mais geral aqui https://www.atlascode.com/bootstrap-fixed-width-sidebars/ . Espero que ajude.
O sistema de grade bootstrap3 suporta aninhamento de linhas, o que permite ajustar a linha raiz para permitir menus laterais com largura fixa.
Você precisa colocar um preenchimento à esquerda na linha raiz e, em seguida, ter uma linha filha que contenha seus elementos normais de layout de grade.
Aqui está como eu costumo fazer isso http://jsfiddle.net/u9gjjebj/
html
css
fonte
position: fixed
significa que, ao rolar o conteúdo dessa coluna, flutua acima do restante da página. No meu caso, eu o consertei usandoposition: absolute
.ou use a propriedade display com célula de tabela;
css
html
http://jsfiddle.net/DnGDz/
fonte
, becouse
display: table-cell` se tornadisplay:block
...Eu tive um problema um pouco diferente:
Como resultado, recorri às
float
colunas esquerda e direita e, em seguida, pude usar o Bootstraprow
para fazer as colunas fluidas no meio.fonte
margin
epadding
na minha linha no meio, mas isso deve ser um problema solucionável. Quais são as consequências não intencionais de adotar essa abordagem?Atualizado 2018
Na IMO, a melhor maneira de abordar isso no Bootstrap 3 seria usando consultas de mídia alinhadas com os pontos de interrupção do Bootstrap, para que você use apenas as colunas de largura fixa, sejam telas maiores e, em seguida, deixe o layout empilhar responsivamente em telas menores. Dessa forma, você mantém a capacidade de resposta ...
Working Bootstrap Fixed-Fluid Demo
O Bootstrap 4 possui flexbox, portanto, layouts como esse serão muito mais fáceis: http://www.codeply.com/go/eAYKvDkiGw
fonte
OK, minha resposta é super legal:
jsfiddle playground
se você quiser suporte para todos os navegadores, use https://github.com/10up/flexibility
fonte
ATUALIZAÇÃO 14/11/2014: A solução abaixo é muito antiga, eu recomendo o uso do método de layout da caixa flexível. Aqui está uma visão geral: http://learnlayout.com/flexbox.html
Minha solução
html
scss
Sem modificar muito o código do layout de auto-inicialização.
Atualização (não do OP): adicionando o trecho de código abaixo para facilitar o entendimento desta resposta. Mas isso não parece funcionar como esperado.
Mostrar snippet de código
fonte
Por que não definir as duas colunas da esquerda como fixas em seu próprio CSS e criar um novo layout de grade das 12 colunas completas para o restante do conteúdo?
fonte