Eu geralmente estou familiarizado com a técnica de liberar um rodapé usando css.
Mas estou com alguns problemas para fazer com que essa abordagem funcione para o bootstrap do Twitter, provavelmente devido ao fato de o bootstrap do Twitter ser de natureza responsiva. Usando o bootstrap do Twitter, não consigo colocar o rodapé na parte inferior da página usando a abordagem descrita na postagem do blog acima.
css
twitter-bootstrap
footer
Calvin Cheng
fonte
fonte
Respostas:
Os trechos aqui funcionam muito bem para o bootstrap
Html:
CSS:
fonte
Agora isso está incluído no Bootstrap 2.2.1.
Bootstrap 3.x
Use o componente navbar e adicione a
.navbar-fixed-bottom
classe:Bootstrap 4.x
Não se esqueça de adicionar
body { padding-bottom: 70px; }
ou, caso contrário, o conteúdo da página poderá ser coberto.Documentos: http://getbootstrap.com/components/#navbar-fixed-bottom
fonte
navbar-static-bottom
.Um exemplo de trabalho para o Twitter bootstrap NOT STICKY FOOTER
Versão que sempre é atualizada caso o usuário abra devtools ou redimensione a janela.
Você precisa de pelo menos um elemento com um
#footer
Quando não desejar a barra de rolagem, se o conteúdo couber na tela, altere o valor de 10 para 0.
A barra de rolagem será exibida se o conteúdo não couber na tela.
fonte
$('#footer').height();
com$('#footer').outerHeight();
$(window).resize(function() {//main code goes here});
e chamar$(window).resize();
para defini-lo quando a página for carregada.Veja como implementar isso na página oficial:
http://getbootstrap.com/2.3.2/examples/sticky-footer.html
Acabei de testar agora e funciona muito bem! :)
HTML
O código CSS relevante é este:
fonte
Para Rodapé fixo , usamos dois
DIV's
no HTML para o efeito básico do rodapé fixo. Escreva assim:HTML
CSS
fonte
Exemplo oficial muito mais simples: http://getbootstrap.com/examples/sticky-footer-navbar/
fonte
Bem, eu encontrei mistura de
navbar-inner
enavbar-fixed-bottom
Parece bom e funciona para mim
Veja exemplo em Fiddle
fonte
Na versão mais recente do bootstrap 4.3, isso pode ser feito usando a
.fixed-bottom
classeAqui está como eu o uso com o rodapé:
Você pode encontrar mais informações na documentação da posição aqui .
fonte
A resposta de HenryW é boa, embora eu precisasse de alguns ajustes para fazê-lo funcionar como queria. Em particular, o seguinte também trata:
Aqui está o que funcionou para mim com esses ajustes:
HTML:
CSS:
JavaScript:
fonte
Isso funcionou para mim perfeitamente.
Adicione esta classe navbar-fixed-bottom ao seu rodapé.
Eu usei assim:
E define para baixo ao longo de toda a largura.
Editar: Isso definirá o rodapé para sempre visível, é algo que você precisa levar em consideração.
fonte
Você precisa agrupar sua
.container-fluid
div para que seu rodapé fixo funcione, mas também faltam algumas propriedades em sua.wrapper
classe. Tente o seguinte:Remova o
padding-top:70px
da suabody
tag e inclua-o no seu.container-fluid
lugar, da seguinte maneira:Temos que fazer isso porque pressionar a
body
barra para baixo para acomodar a barra de navegação acaba empurrando o rodapé um pouco mais (70px mais) além da janela de visualização, para obter uma barra de rolagem. Nós obtemos melhores resultados pressionando a.container-fluid
div.Em seguida, temos que remover a
.wrapper
classe fora de sua.container-fluid
div e envolvê-#main
la com ela, da seguinte forma:Seu rodapé, é claro, deve estar fora da
.wrapper
div, remova-o da div `.wrapper e coloque-o do lado de fora, da seguinte forma:Depois que tudo estiver pronto, empurre o rodapé adequadamente para mais perto da sua
.wrapper
classe usando uma margem negativa, da seguinte forma:E isso deve funcionar, embora você provavelmente precise modificar algumas outras coisas para fazê-lo funcionar quando a tela for redimensionada, como redefinir a altura da
.wrapper
classe, assim:fonte
Esta é a maneira correta de fazer isso com o Twitter Bootstrap e a nova classe navbar-Fixed-bottom: (você não tem idéia de quanto tempo eu passei procurando isso)
CSS:
HTML:
fonte
Use os utilitários flex embutidos no Bootstrap 4! Aqui está o que eu desenvolvi usando principalmente os utilitários do Bootstrap 4.
.d-flex
fazer da div principal um container flexível.flex-column
na div principal para organizar seus itens flexíveis em uma colunamin-height: 100vh
para a div principal, com um atributo de estilo ou em seu CSS, para preencher a janela de exibição verticalmente.flex-grow-1
no contêiner, elemento para que o contêiner de conteúdo principal ocupe todo o espaço restante na altura da janela de exibição.fonte
min-height: 100vh
damin-vh-100
classe de Bootstrap pode ser usado.Use o componente navbar e adicione a classe .navbar-Fixed-bottom:
adicionar corpo
fonte
para lidar com layouts de restrição de largura, use o seguinte para não obter cantos arredondados e para que sua barra de navegação fique nivelada nas laterais do aplicativo
então você pode usar css para substituir as classes de autoinicialização para ajustar altura, fonte e cor
fonte
Você pode usar o jQuery para lidar com isso:
fonte
O único que funcionou para mim !:
fonte
A técnica mais simples é provavelmente usar o Bootstrap
navbar-static-bottom
em conjunto com a configuração da div principal do contêinerheight: 100vh
(nova porcentagem da porta de exibição CSS3 ). Isso liberará o rodapé para o fundo.fonte
Testado com
Bootstrap 3.6.6
.HTML
CSS
fonte
A altura do rodapé corresponde ao tamanho do recuo inferior do elemento de quebra.
fonte
Aqui está uma solução para a versão mais recente do Bootstrap (4.3 no momento da escrita) usando o Flexbox.
HTML:
CSS:
E um exemplo de codepen: https://codepen.io/tillytoby/pen/QPdomR
fonte
De acordo com o exemplo do Bootstrap 4.3 , caso você esteja perdendo a sanidade como eu, é assim que realmente funciona:
height: 100%
(h-100
classe)display: flex
(d-flex
classe)margin-top: auto
(mt-auto
classe)O problema é que, nas estruturas modernas de front-end, geralmente temos invólucros adicionais em torno desses elementos.
Por exemplo, no meu caso, com Angular, compus a visualização de uma raiz de aplicativo separada, componente principal de aplicativo e componente de rodapé - todos os quais adicionaram seu elemento personalizado ao DOM.
Portanto, para fazer funcionar, eu tive que adicionar classes a esses elementos do wrapper: um adicional
h-100
, movendo od-flex
nível para baixo e movendo omt-auto
nível para cima do rodapé (para que na verdade não esteja mais na classe de rodapé, mas no meu<app-footer>
costume) elemento).fonte
class="h-100"
a<html>
etiqueta também.Use este pedaço de código no bootstrap que funciona
fonte
Solução Bootstrap v4 +
Aqui está uma solução que não requer repensar a estrutura HTML ou qualquer truque adicional de CSS envolvendo preenchimento:
Observe que esta solução permite rodapés com alturas flexíveis, o que é particularmente útil ao projetar páginas para vários tamanhos de tela com quebra de conteúdo quando reduzidas.
Por que isso funciona
style="height:100%;"
faz com que a<html>
marca ocupe todo o espaço do documento.d-flex
conjuntos de classesdisplay:flex
para nossa<body>
tag.flex-column
conjuntos de classesflex-direction:column
para nossa<body>
tag. Seus filhos (<header>
,<main>
,<footer>
e qualquer outra criança direta) estão agora alinhados verticalmente.h-100
conjuntos de classesheight:100%
para a nossa<body>
tag, o que significa que cobrirá a tela inteira verticalmente.flex-grow-1
setsflex-grow:1
a nossa<main>
, instruindo-o de forma eficaz para preencher qualquer espaço vertical restante, totalizando, assim, para a altura vertical de 100% nos propusemos antes na nossa<body>
tag.Demonstração de trabalho aqui: https://codepen.io/maxencemaire/pen/VwvyRQB
Consulte https://css-tricks.com/snippets/css/a-guide-to-flexbox/ para obter mais informações sobre o flexbox.
fonte
h-100
classe não funciona corretamente, é melhor usarmin-vh-100
.h-100
classe sempre depende da altura dos elementos pai e pode não funcionar corretamente em alguns casos. Como queremos rodapé na parte inferior da viewport, seria uma boa prática usar a altura da viewport.min-width
. É por isso que aHTML
tag possuiheight
100% no código. O exemplo funciona e não vejo por que não deu o suporte entre navegadores para aheight
propriedade CSS , que é basicamente o que o snippet do Bootstrap traduz.HTML
tag. No meu caso, sua solução não funcionou, pois eu não prefiro usar o estilo naHTML
tag. E eu não quero que abody
tag dependa de outro pai, mas da viewport. Você não precisa colocarstyle="height:100%;"
eh-100
ao mesmo tempo. Colocarmin-vh-100
no corpo simplesmente faz o trabalho e menos código.Parece que a
height:100%
'cadeia' está sendo quebradadiv#main
. Tente adicionarheight:100%
a ele e isso poderá aproximá-lo de seu objetivo.fonte
Aqui você encontrará a abordagem em HAML ( http://haml.info ) com a barra de navegação na parte superior e o rodapé na parte inferior da página:
fonte
Mantenha simples.
Pode ser necessário também compensar a altura do rodapé adicionando um
margin-bottom
equivalente à altura do rodapé nobody
.fonte
Aqui está um exemplo usando css3:
CSS:
HTML:
violino
fonte
É assim que o bootstrap faz isso:
http://getbootstrap.com/2.3.2/examples/sticky-footer.html
Basta usar a fonte da página e você poderá ver. Não esqueça
<div id="wrap">
o topo.fonte
outra solução possível, apenas usando consultas de mídia
fonte