3
respostas

Footer sobe e desce com o "hover" acionado

Coloquei uma animação no hover das caixas de produtos e o footer se mexe quando elas são acionadas. Sabem como deixar ele estático? Obrigada!!

HTML

<!DOCTYPE html>
<html>
    <head>
         <meta charset="UTF-8">
         <title>Produtos - Barbearia Alura</title>

         <link rel="stylesheet" href="reset.css">
         <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet'>
         <link rel="stylesheet" href="produtos.css">
         <style>
            body {
                font-family: 'Montserrat';
            }
            </style>
    </head>
    <body>
        <header>
            <div class="caixa">
                <h1><img src="logo.png"></h1>

                <nav>
                    <ul>
                        <li><a href="index.html">Home</a></li>
                        <li><a href="produtos.html">Produtos</a></li>
                        <li><a href="contato.html">Contato</a></li>
                    </ul>
                </nav>
            </div>
        </header>

        <main>
            <ul class="produtos">
                <li>
                    <h2>Cabelo</h2>
                    <img src="cabelo.jpg">
                    <p class="produto-descricao">Na tesoura ou na máquina, como o cliente preferir</p>
                    <p class="produto-preco">R$ 25,00</p>
                </li>
                <li>
                    <h2>Barba</h2>
                    <img src="barba.jpg">
                    <p class="produto-descricao">Corte e desenho profissional de barba</p>
                    <p class="produto-preco">R$ 18,00</p>
                </li>
                <li>
                    <h2>Cabelo + Barba</h2>
                    <img src="cabelo+barba.jpg">
                    <p class="produto-descricao">Pacote completo de cabelo e barba</p>
                    <p class="produto-preco">R$ 35,00</p>
                </li>
            </ul>
        </main>

        <footer>
            <img src="logo-branco.png">
            <p class="copyright">&copy; Copyright Barbearia Alura - 2019</p>
        </footer>
    </body>
</html>

CSS

header {
    background: #BBBBBB;
    padding: 20px 0;
}

.caixa {
    position: relative;
    width: 980px;
    max-width: 90%;
    margin: 0 auto;
}

nav {
    position: absolute;
    top: 110px;
    right: 0
}

nav li {
    display: inline;
    margin: 0 0 0 15px;
}

nav a {
    text-transform: uppercase;
    color: #000000;
    font-weight: bold;
    font-size: 22px;
    text-decoration: none;
}

nav a:hover {
    color: #C78C19;
}

.produtos {
    width: 940px;
    margin: 0 auto;
    max-width: 100%;
    padding: 50px 0;

}

.produtos li {
    display: inline-block;
    text-align: center;
    width: 30%;
    vertical-align: top;
    margin: 0 1.5%;
    padding: 30px 20px;
    box-sizing: border-box;
    border: 2px solid #000000;
    border-radius: 10px;
}

.produtos li:hover {
    border-color: #C78C19;
}

.produtos li:active {
    border-color: #088C19;
}

.produtos li:hover h2 {
    font-size: 40px;

}

.produtos h2 {
    font-size: 30px;
    font-weight: bold;
}

.produto.descricao {
    font-size: 18px;
}

.produto-preco {
    font-size: 22px;
    font-weight: bold;
    margin-top: 12px;
}

.produtos li:hover {
    animation:  shake 0.8s  ;
  }

@keyframes shake {
    0%{
        transform: translateY(0)
    }
    25%{
        transform: translateY(5px);
    }
    50%{
        transform: translateY(-5px);
    }
    100%{
        transform: translateY(0px);
    }
}

footer {
    text-align: center;
    background: url("bg.jpg");
    padding: 40px 0;
}

.copyright {
    color: #FFFFFF;
    font-size: 13px;
    margin-top: 20px;
}
3 respostas

Acho que talvez você consiga fixar seu footer adicionando no seu CSS:

*  {
    margin: 0;
    padding: 0;
}

html, body {
    height: 100%;
}

.footer {
    position:absolute;
    bottom: 0;
    width: 100%;
}

Oi Bernardo! Não funcionou muito bem para mim. O footer ficou logo abaixo do header, sabe o que preciso mudar? Insira aqui a descrição dessa imagem para ajudar na acessibilidadeMeu CCS está ssim:

*  {
    margin: 0;
    padding: 0;
}

html, body {
    height: 100%;
}

body {
    font-family: 'Montserrat';
}

header {
    background: #BBBBBB;
    padding: 20px 0;
}

.caixa {
    position: relative;
    width: 980px;
    max-width: 90%;
    margin: 0 auto;
}

nav {
    position: absolute;
    top: 110px;
    right: 0
}

nav li {
    display: inline;
    margin: 0 0 0 15px;
}

nav a {
    text-transform: uppercase;
    color: #000000;
    font-weight: bold;
    font-size: 22px;
    text-decoration: none;
}

nav a:hover {
    color: #C78C19;
}

.produtos {
    width: 940px;
    margin: 0 auto;
    max-width: 100%;
    padding: 50px 0;
    /* position: relative; */
}

.produtos li {
    display: inline-block;
    text-align: center;
    width: 30%;
    vertical-align: top;
    margin: 0 1.5%;
    padding: 30px 20px;
    box-sizing: border-box;
    border: 2px solid #000000;
    border-radius: 10px;
}

.produtos li:hover {
    border-color: #C78C19;
}

.produtos li:active {
    border-color: #088C19;
}

.produtos li:hover h2 {
    font-size: 40px;

}

.produtos h2 {
    font-size: 30px;
    font-weight: bold;
}

.produto.descricao {
    font-size: 18px;
}

.produto-preco {
    font-size: 22px;
    font-weight: bold;
    margin-top: 12px;
}

.produtos li:hover {
    animation:  shake 0.8s  ;
  }

@keyframes shake {
    0%{
        transform: translateY(0)
    }
    25%{
        transform: translateY(5px);
    }
    50%{
        transform: translateY(-5px);
    }
    100%{
        transform: translateY(0px);
    }
}

footer {
    text-align: center;
    background: url("bg.jpg");
    padding: 40px 0;
    position:absolute;
    bottom: auto;
    width: 100%;
}

.copyright {
    color: #FFFFFF;
    font-size: 13px;
    margin-top: 20px;
}

Edit: Pelo que vi na imagem seu footer no código HTML deve estar acima do conteúdo que é mostrado abaixo, confere o HTML, se o footer é a última tag do seu

Eu vi ali no seu código HTML que você tem vários CSS, um direto no HTML na tag style, e outros 2 com link.
 <link rel="stylesheet" href="reset.css">
  <link rel="stylesheet" href="produtos.css">
  <style>
     body {
        font-family: 'Montserrat';
     }
   </style>

Esse código CSS que você colocou aqui, é a junção desses outros? Ou teria outras propriedades nesses arquivos separados? Pode estar sobrescrevendo alguma propriedade, consegue por um link com download da pasta do seu projeto?