1
resposta

Menu de Navegação na Home

Estou tentando colocar os menus na home da Barbearia um do lado do outro, quando escreve display: inline ele fica como eu quero. Mas assim que coloco position: absolute ele volta a ficar um embaixo do outro.

<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="UTF-8">
        <title>Barbearia Alura</title>
        <link rel="stylesheet" href="style-home.css">
    </head>
    <body>
        <header>
            <h1 class="titulo-principal">Barbearia Alura</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>

        </header>
        <img id="banner" src="banner.jpg">
        <div class="principal">
            <h2 class="titulo-centralizado">Sobre a Barbearia Alura</h2>

            <p>Localizada no coração da cidade a <strong>Barbearia Alura</strong> traz para o mercado o que há de melhor para o seu cabelo e barba. Fundada em 2019, a Barbearia Alura já é destaque na cidade e conquista novos clientes a cada dia.</p>

            <p id="missao"><em>Nossa missão é: <strong>"Proporcionar auto-estima e qualidade de vida aos clientes"</strong>.</em></p>

            <p>Oferecemos profissionais experientes e antenados às mudanças no mundo da moda. O atendimento possui padrão de excelência e agilidade, garantindo qualidade e satisfação dos nossos clientes.</p>
        </div>
        <div class="beneficios">
            <h3 class="titulo-centralizado">Benefícios</h3>

            <ul>
                <li class="itens">Atendimento aos Clientes</li>
                <li class="itens">Espaço diferenciado</li>
                <li class="itens">Localização</li>
                <li class="itens">Profissionais Qualificados</li>
            </ul>
            <img src="beneficios.jpg" class="imagembeneficios">
        </div>
    </body>
</html>
nav {
    position: absolute;
}

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

#banner {
    width: 100%;
}

.principal{
    background: #CCCCCC;
    padding: 30px;
}

.titulo-principal{
    padding-left: 20px; 
}

.titulo-centralizado {
    text-align: center;
}

p {
    text-align: center;
}

#missao {
    font-align: 20px
}

em strong {
    color: #FF0000;
}

.itens{
    font-style: italic;
}

.benefícios{
    background: #FFFFFF;
    padding: 20px;
}

ul {
    font-weight: bold;
    font-size: 23px;
    display: inline-block;
    vertical-align: top;
    width: 20%;
    margin-right: 15%;
}

.imagembeneficios{
    width: 50%;
}
1 resposta

Olá Yuri, tudo bem?

O CSS se comporta de acordo com os relacionamentos entre os elementos e a hereditariedade, ou seja, o que está fazendo com que os seus itens da lista não estejam alinhados em uma única linha, é a característica da propriedade de largura (width) do seu elemento pai <ul>.

Com o width: 20%, a largura do elemento está muito pequena para conter a margem ( margin-right: 15%) e uma fonte grande ( font-size: 23px) , isso faz com que o texto quebre para a linha seguinte (por isso ficou dois <li>em uma linha e um na outra).

Para resolver isso, você poderá manter o position: absolute e precisará colocar o width: 100%, dessa forma, ele aumentará a largura e fará com que o elemento caiba sem quebra de linha. O código ficará assim:

ul {
    font-weight: bold;
    font-size: 23px;
    display: inline-block;
    vertical-align: top;
    width: 100%;
    margin-right: 15%;
}

Espero ter ajudado. Continue praticando e bons estudos!