Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,estou tendo problema para deixar o footer no rodapé da página.
Quando é uma página estática,eu uso Position:absolute e ele fica embaixo fixo.Porém tem algumas páginas dinâmicas e isso faz com que o footer fique encima do conteúdo.
O problema é que eu poderia colocar relative nas páginas estáticas,mas elas não ocupam a parte de baixo e sim até a ultima parte do conteúdo.
Exemplo:
Posição Absolute,funciona normalmente em desktop,mas em celulares fica assim:
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/VgsgyXR.png&key=fbb10e483d8ac4484a6202139b170bee3e07d7e4a94cfdfe9eef61941b14b361" alt="VgsgyXR.png" />
Porém,se eu colocar Relative,ele não fica em baixo.
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/O9F2Vjz.png&key=1cf7c2b361dfb1a2031be5634c40b2d473d30ee09421797701ec98846fe9c2a5" alt="O9F2Vjz.png" />
Espero que tenham entendido,obrigado desde já !
Oi L.Henrique,obrigado pela ajuda !
Acesse esta página:
http://bigioinc.com.br/produtos.php
Na versão desktop ela está funcionando normalmente,porém da um resize e você verá que o footer está sobre os produtos.
Quando diminuir o tamanho,coloque a propriedade Relative,então ela se ajusta.porém voltando ao tamanho desktop,ela já não fica mais embaixo.
Opa! Tudo tranquilo?
Então, isso não seria uma questão de media queries?
Ex.:
footer {
position: absolute;
bottom: 0;
}
@media screen and (min-width: 768px) {
footer {
position: relative;
}
}Sim sim,porém isso não seria uma gambiarra ?
Pensei que poderia haver um jeito para todos os tipos de resoluções.
Outro problema é que quando não tem produto para ser mostrado,o footer com o RELATIVE fica assim:
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/H5gX4L4.png&key=3f9a484470e96ba41a1534ecd477327c889918a65267f5944c4f6f4db1d0ca4c" alt="H5gX4L4.png" />
Se eu colocar Absolute,ele desce lá pra baixo,porém o usuário vai pra outra categoria que tem produtos,e ele fica no meio da página.
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/W0qOzZv.png&key=16e1ed356ee9590306b4e72037e8399c0f076970118c95aa3b90f0239275eaca" alt="W0qOzZv.png" />
**/ Resposta da Questão 1 /**
De forma alguma. Usar media queries é a melhor das soluções (já que evita de você ter que apelar pros inlines no HTML ou até mesmo JS). Você só precisa colocar ele nos media já prontos do bootstrap, sem ter que criar mais alguns com resoluções aleatórias.
**/ Resposta da Questão 2 /**
Esse caso é bem comum e o HTML/CSS estão exercendo seu papel naturalmente quando não existem produtos. Vamos pensar como se isso fosse LEGO, certo? Se você não tem peças abaixo, você não consegue estruturar a parte de cima e é isso que o HTML faz. Se ele entende que não existem elementos, ele pega o mais próximo pra encaixar (position: relative padrão).
Pra resolver isso, você pode inserir funções JavaScript como:
function addElement() {
// Você pode fazer com .getElementById se preferir
var produtos = document.getElementByClassName('classe_da_div').length;
if ( produtos == 0 ) {
produtos.style.height = "800px";
}
}
Ou se preferir você pode tentar uma solução em jQuery (mais prático):
$('.classe_da_div:not(:has(div))').addClass('aumentar-altura');
Nesse caso ele só puxa a div e diz: Caso ele não tenha outra div dentro, recebe a classe X.
>
**/ Resposta da Questão 1 /**
De forma alguma. Usar media queries é a melhor das soluções (já que evita de você ter que apelar pros inlines no HTML ou até mesmo JS). Você só precisa colocar ele nos media já prontos do bootstrap, sem ter que criar mais alguns com resoluções aleatórias.
**/ Resposta da Questão 2 /**
Esse caso é bem comum e o HTML/CSS estão exercendo seu papel naturalmente quando não existem produtos. Vamos pensar como se isso fosse LEGO, certo? Se você não tem peças abaixo, você não consegue estruturar a parte de cima e é isso que o HTML faz. Se ele entende que não existem elementos, ele pega o mais próximo pra encaixar (position: relative padrão).
Pra resolver isso, você pode inserir funções JavaScript como:
function addElement() {
// Você pode fazer com .getElementById se preferir
var produtos = document.getElementByClassName('classe_da_div').length;
if ( produtos == 0 ) {
produtos.style.height = "800px";
}
}
Ou se preferir você pode tentar uma solução em jQuery (mais prático):
$('.classe_da_div:not(:has(div))').addClass('aumentar-altura');
Nesse caso ele só puxa a div e diz: Caso ele não tenha outra div dentro, recebe a classe X.
gênio!
Obrigado!
Saidmrn, entendi uns 70% da sua dúvida pra ser sincero... hahahahahaha
Mas vamos lá... Como você está usando o bootstrap (ou independente disso) sempre que você estrutura da seguinte forma:
A ideia é que o rodapé fique ao fim da página (e os itens nem precisam ter position: relative; o próprio HTML entende a ordem dos elementos).
Provavelmente existe uma estrutura em HTML que esteja errada (fechamento de div, construção de colunas, ordens, etc...) ou menos provavelmente alguma classe e/ou media query está influenciando na exibição do mobile.
Poste o código no JSFiddle e faça um teste.
Abraços!