Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvidas sobre posicionamento do "nav"

Olá, pessoal, tudo certo?

Estou com um problema que não consegui "resolver". A questão foi que tentei fazer um layout diferente da aula. Para treinar, transformei o menu com layout de botão representado na cor azul, mas tive um comportamento estranho dos elementos do menu <nav>,<ul>,<li>, <a> que escapam para fora do limite do <header>.

Achei estranho, pois até este momento do curso pensei que um elemento dentro do bloco, não escapava para o elemento seguinte, a não ser que forçasse isso com posicionamentos relativos, absolutos... Pensei que o bloco header fosse uma cápsula.

Porque esse elemento "botão" do menu escapou para o elemento seguinte? e como resolver?

html simplificado.

<!DOCTYPE html>

<html lang="pt-br">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width">
        <title>Barbearia Alura</title>

        <link rel="stylesheet" href="folha de estilo/reset#.css">
        <link rel="stylesheet" href="folha de estilo/style.css">

        <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500&display=swap" rel="stylesheet">
    </head>

    <body>
        <header>
            <div class="caixa">
                <h1><img src="https://placehold.it/177x250" alt="Logo da Barbearia Alura"></h1>

                <nav>
                    <ul>
                        <li><a href="#">Home</a></li>
                        <li><a href="#">Produtos</a></li>
                        <li><a href="#">Contato</a></li>
                    </ul>
                </nav>
            </div>
        </header>

        <img class="banner" src="https://placehold.it/800x300" alt="Foto interna da barbearia com duas cadeira de barbeiro em primeiro plano e ao fundo o balcão">

        <main>
            <p>conteúdo</p>
        </main>

        <footer>
            <p class="copyright">© Copyright Barbearia Alura - 2019</p>
        </footer>
    </body>
</html>

CSS Simplificado.

body {
    font-family: 'Montserrat', sans-serif;
    background: #f4f4f4;
}

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

.caixa {
    position: relative;
    width: 940px;
    margin: 0 auto;
}

nav {

}

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

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

nav a:hover {
    color: #c78c19;
    text-decoration: underline;
}

footer {
    background: #333333;
    text-align: center;
    padding: 40px 0;
}

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


.banner {
    width: 100%;
}

P.S: O que escapou foi padding com a cor azul de background, não o texto do menu, pra me deixar mais confuso ainda.... rs!

Espero ter consegui demonstrar minha dúvida.

2 respostas
solução!

Davilson, se você utilizar a ferramenta de inspecionar do seu navegador, F12 ou botão direito > inspecionar, vai perceber que na verdade seu Menu <nav> continua dentro da tag <header>. O que ocorre é que a "altura" dele esta sendo somente a da font nele inserido. Acredito que isso responde a sua primeira pergunta.

Como resolver, existem varias maneiras, mas você poderia colocar um padding na tag <nav> de mesmo valor que colocou na tag <a> .

Sim, isso resolveu!

Obrigado Italo Fernandes!