Estou tentando criar um layout de altura total de duas colunas com o twitter bootstrap 3. Parece que o twitter bootstrap 3 não suporta layouts de altura total. O que eu quero fazer:
+-------------------------------------------------+
| Header |
+------------+------------------------------------+
| | |
| | |
|Navigation | Content |
| | |
| | |
| | |
| | |
| | |
| | |
+------------+------------------------------------+
Se o conteúdo crescer, a navegação também deve aumentar.
- A altura 100% para todos os pais não funciona porque existe o caso em que o conteúdo é uma linha.
- posição absoluta parece estar no caminho errado
display: table
edisplay:table-cell
resolver o problema, mas não é elegante
html:
<div class="container">
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-9"></div>
</div>
</div>
Existe maneira de fazê-lo com o twitter bootstrap padrão 3 classes?
html
css
twitter-bootstrap
uladzimir
fonte
fonte
Respostas:
Edit: No Bootstrap 4 , as classes nativas podem produzir colunas de altura total ( DEMO ) porque alteraram seu sistema de grade para flexbox. (Leia sobre o Bootstrap 3)
As classes nativas do Bootstrap 3.0 não suportam o layout que você descreve, no entanto, podemos integrar alguns CSS personalizados que usam tabelas css para conseguir isso.
Demonstração Bootply / Codepen
Marcação:
CSS (relevante)
O código acima alcançará colunas de altura total (devido às propriedades personalizadas da tabela css que adicionamos) e com proporção 1: 3 (Navegação: Conteúdo) para larguras médias da tela e acima - (devido às classes padrão do bootstrap: col-md -3 e col-md-9)
NB:
1) Para não atrapalhar as classes de colunas nativas do bootstrap, adicionamos outra classe, como
no-float
na marcação e apenas definimosdisplay:table-cell
efloat:none
nesta classe (ao contrário das próprias classes de coluna).2) Se quisermos usar apenas o código da tabela css para um ponto de interrupção específico (digamos, larguras de tela médias e acima), mas para telas móveis, queremos voltar ao comportamento usual de autoinicialização, podemos envolver nosso CSS personalizado dentro de um consulta de mídia, diga:
Codepen demo
Agora, para telas menores, as colunas se comportarão como colunas de autoinicialização padrão (cada uma obtendo largura total).
3) Se a proporção de 1: 3 for necessária para todas as larguras de tela - provavelmente será melhor remover as classes col-md- * do bootstrap da marcação, porque não é assim que elas devem ser usadas.
Codepen demo
fonte
Você pode conseguir o que deseja com o
padding-bottom: 100%; margin-bottom: -100%;
truque, como pode ver neste violino.Eu mudo seu HTML um pouco, mas você pode obter o mesmo resultado com seu próprio HTML com o seguinte código
fonte
Solução CSS pura
Violino de trabalho
Usando apenas CSS2.1, trabalhe com todos os navegadores (IE8 +), sem especificar nenhuma altura ou largura.
Isso significa que, se o cabeçalho aumentar repentinamente ou a navegação esquerda precisar aumentar, você não precisará consertar nada no CSS.
Totalmente responsivo, simples, claro e muito fácil de gerenciar.
Explicação: O contêiner
div
ocupa 100% da altura do corpo e é dividido em 2 seções. A seção do cabeçalho abrangerá a altura necessária eHeightTaker
o restante será suportado. Como é conseguido? flutuando um elemento vazio ao longo do lado do contêiner com 100% de altura (usando:before
) e dando aoHeightTaker
elemento vazio no final a regra clara (usando:after
). esse elemento não pode estar na mesma linha do elemento flutuante, então ele é empurrado até o fim. que é exatamente 100% do documento.Com isso, tornamos o
HeightTaker
intervalo o restante da altura do contêiner, sem declarar qualquer altura / margem específica.dentro disso
HeightTaker
, construímos um layout flutuante normal (para obter a coluna como uma tela) com uma pequena alteração. temos umWrapper
elemento necessário para que a100%
altura funcione.Atualizar
Aqui está a demonstração com as classes Bootstrap. (Acabei de adicionar uma div ao seu layout)
fonte
Pensei em uma mudança sutil, que não altera o comportamento padrão da inicialização. E só posso usá-lo quando preciso:
para que eu possa usá-lo assim:
fonte
Que eu saiba, você pode usar até 5 métodos para fazer isso:
Bootstrap: Não tenho muita experiência com isso, mas acho que eles não fornecem estilos para isso.
fonte
Solução moderna e muito simples:
HTML:
CSS:
fonte
Uma solução CSS pura é bastante fácil e funciona como um navegador cruzado de charme.
Você simplesmente adiciona um preenchimento grande e uma margem negativa igualmente grande às colunas de navegação e conteúdo e, em seguida, agrupa sua linha em uma classe com o estouro oculto.
Visualização ao vivo
Editar visualização
HTML
CSS
Boa sorte!
fonte
A solução pode ser alcançada de duas maneiras
As classes usadas para obter a solução acima não são fornecidas no bootstrap 3. display: table e display: table-cell são fornecidas, mas apenas ao usar tabelas em HTML. margem negativa e classes de preenchimento também não estão lá.
Portanto, temos que usar css personalizado para conseguir isso.
A seguir está a primeira solução
Código HTML:
o css correspondente:
A seguir está a segunda solução
Código HTML:
o css correspondente:
fonte
Ok, eu consegui a mesma coisa usando o Bootstrap 3.0
Exemplo com a última inicialização
http://jsfiddle.net/HDNQS/1/
O HTML:
O SCSS:
fonte
content:none
e outras pequenas coisas). Eu queria para deixar um 'drop-in' de substituição que eu posso copypasta aswellPortanto, parece que sua melhor opção é ir
padding-bottom
contra amargin-bottom
estratégia negativa .Eu fiz dois exemplos. Um com
<header>
dentro.container
e outro com fora .Ambas as versões devem funcionar corretamente. Observe o uso da
@media
consulta a seguir para remover o preenchimento extra em telas menores ...Fora isso, esses exemplos devem resolver o seu problema.
fonte
existe uma maneira muito mais fácil de fazer isso, se você só se preocupa em definir a cor.
Coloque isso primeiro ou último na sua etiqueta corporal
e isso no seu css
você está apenas criando uma forma, fixando-a atrás da página e esticando-a até a altura máxima. Ao usar as classes de inicialização existentes, você obterá a largura certa e ela permanecerá responsiva.
Existem algumas limitações com esse método ofc, mas se for para a estrutura raiz da página, é a melhor resposta.
fonte
position: absolute
entãoposition: fixed
?.container-fluid
. Eu gostaria de usar.container
. Ideias?.container
ou.container-fluid
não tem nenhuma relevância para isso. os.col.col-md-2
conjuntos a largura usando inicialização. Meu CSS acima força a div a toda a altura, com z-index negativo suficiente para garantir que esteja por trás de tudo. Como dito acima, ele deve ser o primeiro ou o último elemento em seu<body>
tagEu escrevi um CSS simples compatível com o Bootstrap para criar tabelas completas de largura e altura:
Fiddle: https://jsfiddle.net/uasbfc5e/4/
O princípio é:
O HTML:
O CSS:
fonte
0%;
para o0;
que é totalmente diferente. Se isso acontecer, você pode usar1%;
.experimentar
css para a classe .fill está abaixo
Para sua referência, basta olhar para o violino.
fonte
span
paracol-md-
e vamos ver o que acontece<div class="container"> <div class="row"> <div class="col-md-12">header section</div> </div> <div class="row"> <div class="col-md-4">Navigation</div> <div class="col-md-8">Content</div> </div> </div>
tente isso
Visite http://www.sitepoint.com/building-responsive-websites-using-twitter-bootstrap/
Graças a Syed
fonte
Se não houver conteúdo após a linha (a altura da tela inteira será usada), o truque com o uso
position: fixed; height: 100%
do.col:before
elemento poderá funcionar bem:fonte
Isso não foi mencionado aqui com a compensação.
Você pode usar absoluto para posicionar a barra lateral esquerda.
CSS
HTML
fonte
Tente isto
Isso usa o Bootstrap 3, portanto não há necessidade de CSS extra, etc ...
fonte
Você já viu o afix do bootstrap na seção JAvascript ???
Eu acho que seria a melhor e mais fácil solução cara.
Dê uma olhada lá: http://getbootstrap.com/javascript/#affix
fonte
Após experimentar o código fornecido aqui: Tutorial do Bootstrap
Aqui está outra alternativa usando o mais recente Bootstrap v3.0.2:
Marcação:
CSS adicional:
Amostra JSFiddle
Espero que isso ajude qualquer pessoa interessada.
fonte