Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre o Pixels

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Produtos - Barbearia Alura</title>
        <link rel="stylesheet" href="reset.css">
        <link rel="stylesheet" href="produtos.css">
    </head>
    <body>
        <header>
            <div class="caixa">
            <h1><img src="imagens/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="imagens/cabelo.jpg">
                    <p class="produto-descricao">Na tesoura ou máquina, como o cliente preferir.</p>
                    <p class="produto-preco">R$ 25,00</p>
                </li>
                <li>
                    <h2>Barba</h2>
                    <img src="imagens/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="imagens/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>
    </body>
</html>

CSS

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

.caixa{
    position: relative;
    width: 940px;
    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;
    text-decoration: underline;
}

.produtos {
    font-size: 0;
    width: 940px;
    margin: 0 auto;
    padding: 50px 0;
}

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

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

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

.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 h2 {
    font-size: 25px;
    font-weight: bold;
}

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

.produto-preco {
    font-size: 22px;
    font-weight: bold;
    margin: 10px 0 0;
}

Se eu deixar dessa forma .produtos li:hover h2 { font-size: 34px; } Fica quebrando a linha. Por que isso acontece? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá, Jean!

Então, isso acontece porque, ao mudar o tamanho da fonte de um elemento, ela aumenta de tamanho, correto?

O elemento pai foi um pouco para baixo por conta justamente disso. Ele se adaptou ao tamanho da imagem. O espaço definido por padrão desse elemento era tal, mas por ter aumentado o tamanho da fonte, ele se adaptou à ele, e consequentemente, aumentou seu tamanho.

Se for fazer o teste, e diminuir para o tamanho da fonte para seu estado padrão, o elemento pai volta a ficar na altura dos outros elementos á esquerda. É tudo uma questão de espaço. Se abrir o DevTools, e ir passando o mouse, vai ver as partes coloridinhas e como elas estão funcionando ali.

Espero ter ajudado :D