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

INDEX.HTML - colocando navegador para outras páginas

Conforme orientações do instrutor ao final do curso, me desafiei a criar a barra de menu semelhante a da pagina de produtos mas encontrei (até mesmo como ele disse na vídeo aula) alguns obstáculos, a primeira ideia foi me basear no que já tinhamos na pagina de produtos, então peguei a parte do HTML e modifiquei para que o titulo principal ("Barbearia Alura") ficasse dentro da ideia do HTML da o pagina de produto, conforme a seguir:

<header>
            <div class="caixa">
                <h1>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>
            </div>
        </header>

E no CSS trouxe as informações semelhantes para trabalhar com elas e ajustar, já que a cara da página inicial é mais "curta" do que a de produtos, já que na de produtos o header se extende pelo conteudo principal ser uma imagem.

Mas ao tentar indicar a parte do nav li e colocar para que o display fosse inline o resultado acaba não sendo o esperado e a lista de itens do menu permanece um em item acima do outro. Segue CSS que fui fazendo (sem a parte do nav a e com hoover porque no fim desejo que ela seja semelhante e isso é apenas meio que a cara da coisa, né?)

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

nav{
    position: absolute;
    top: -55px;
    right: 0;
}

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

Alguém pode tentar auxiliar? A mudança do width no caixa é por conta do espaçamento que quero ocupar já que desejo que o "Barbearia Alura" fique no canto esquerdo. Já no nav eu faço a indicação do top como -55 para ficar a cima da imagem que temos logo após o header (inclusive, não sei se é conveniente deixar dessa forma, aceito outra sugestão mais pratica) e logo abaixo a indicação do nav li que supostamente tornaria o comportamento do conteudo inline com margen a esquerda de 15 px como era na pagina produtos.

4 respostas

Oi, Estevam

Eu acabei de fazer o desafio proposto e percebi que dá conflito por conta da lista previamente declarada no style.css. Quando adicionamos a parte do header do produtos.html no header do index.html ficamos com duas listas no código, duas ul. Temos então que diferenciar uma lista da outra para que as características delas não entrem em conflito. Não sei se vou conseguir te ajudar, mas a alteração que fiz foi identificar que a lista declarada está dentro da classe beneficios:

.beneficios ul {
    display: inline-block;
    vertical-align: top;
    width: 20%;
    margin-right: 15%;
}

Fala Estevam,

Cara, olhando aqui, o seu código está bem parecido com o teu e aqui esta dando certo. Vou compartilhar aqui para você comparar.

index.html:

<header class="cabecalho">
            <div class="caixa">    
                <h1>Barbearia Alura</h1>
                <nav>
                    <ul>
                        <li><a href="programa.html">Home</a></li>
                        <li><a href="produtos.html">Produtos</a></li>
                        <li><a href="contatos.html">Contatos</a></li>
                    </ul>
                </nav>
            </div>
</header>

No style.css:

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

nav li {
    display: inline;
    padding-left: 15px;
}

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

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

nav ul {
    position: absolute;
    top: 50px;
    right: 0;
}

Obrigado pelas sugestões Manoella! Mas acredito que por não mencionar a ul especificamente da parte do header e por estar diferente na parte do código mais pra baixo acabe influenciando o comportamento que não estou conseguindo colocar pro cabeçalho, não sei, ou eu simplesmente não consegui interpretar mesmo hahaha

solução!

Olá Feldmann, tudo certo?

Não sei se eventualmente tem algo errado no meu como um todo, mas ao sobrepor meu código com o seu a lista permanece não aparecendo em linha como na página de produtos e me aparece no meio do banner da pagina inicial

Fazendo mais testes eu cheguei no seguinte resultado para deixar as opções de navegação na mesma linha do cabeçalho onde esta escrito "Barbearia Alura" mas ainda estou sem entender sobre o ponto em que ao tentar colocar espaçamento à esquerda ou a direita de cada elemento da lista, a linha se quebra, jogando o item "contatos" para baixo.

HTML:

<header>
            <div>
                <h1>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>
            </div>
        </header>

E o CSS:

header{
    font-size: 30px;
    position: relative;
    top: 10px;
}

nav li{
    display: inline;
    position: relative;
    top: -12px;
    left: 940px;
}

Assim o resultado fica que os itens de navegação fiquem na mesma linha do cabeçalho principal com o nome da páginas, mas como mencionei acima, ao tentar espaçar os itens a lista quebra os itens. Alguma sugestão? Eu só consegui solucionar diminuindo a fonte, mas tendo que deixa-la no máximo em 14px.