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

Problemas com Box-sizing: Border-Box

Não consigo colocar os 3 itens na mesma linha, está 30% para cada li(com o box-sizing:border-box), mais 1.5% de margin(3%), logo 99%, mesmo assim o terceiro li tende a descer. A Ul não tem padding lateral. Há um espaco entre cada li que não consigo descobrir de onde vem...

HTML:

<!DOCTYPE HTML>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <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">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">Cortado 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{
    padding: 30px;
    background: #bbb;
}

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

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

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

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

.produtos{
    width: 940px;
    margin: 0 auto;
    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;
}

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

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

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

Olá Mauricio, tenta remover o 0 da propriedade margin neste trecho de código: .produtos li { margin: 0 1.5%} e deixa apenas o 1.5%. No meu navegador funcionou apenas assim. Depois fala se funcionou para você, bons estudos!

Oi IaIIy!

Infelizmente não, o site fica assim: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Mas obrigado pela a ajuda! =D

Estava com o mesmo problema. Consegui resolver pondo uma virgula.

.produtos li { margin: 0, 1.5%; padding: 30px, 20px; }

Até que funcionou, eles foram pra mesma linha; Porém quando fui inspecionar a página, percebi que os comandos não estavam sendo realizados.

Aqui a borda amarela margin está com 0 1.5 (sem vírgula).

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAqui está com vírgula, porém sem o margin na página:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

PS: O mesmo acontece se troco o ponto entre o 1 e o 5 por uma vírgula. Mas obrigado pela ajuda!

Então, acho que o problema é o firefox. Pois usei o mesmo codigo no Chrome e funcionou perfeitamente.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Bom dia, estava lendo as soluções e só queria acrescentar que não se deve colocar virgulas entre os valores de margin ou padding pois isso não faz parte do comando.

Outra observação que o amigo falou logo acima é sempre bom testar em mais de um navegador.

Verifica se esta usando o reset.css mostrado na aula.

E outro detalhe que você vai enfrentar muito no mundo do desenvolvimento web é o cache do navegador, muitas vezes você já corrigiu o erro mais o cache esta mostrando a informação desatualizada é sempre bom testar em aba anônima e sempre limpar o cache do navegador.

Espero pode ter ajudado pelo menos um pouco com as dicas.

Opa!

A parte do padding e do margin foi boa, tinha essa grande dúvida quando me deparei com esse erro.

A parte do cache tbm foi excelente, vou estudar mais sobre isso. (No anônimo e com cache limpo o "erro" persiste)

Estou usando o reset certinho, com link rel="stylesheet" href="reset.css"".

Testei no chrome e deu certo, mas se caso um usuário do firefox fosse usar meu site, ele ficaria com a configuração diferente? Erros desse tipo tbm aconteceria para outros navegadores?

Agradeço o apoio de vocês!

solução!

Maro, pode sim ter certos bugs dependendo do navegador por que cada browser tem suas peculiaridades, mas geralmente a formas de resolver.

Acredito que ao longo do curso seja abordado algum coisa a respeito de erros, mas se não for, mantenha em mente que sempre há uma solução para essas coisas mais comuns do dia a dia e o segredo esta em nós apreendermos a procurar e isso só com o tempo e pratica mesmo.

Então a principio sugiro finalizar o projeto se já conseguiu deixar como precisava e no futuro voltar quando já tiver terminado o treinamento você terá um entendimento melhor do HTML e CSS e talvez poderá buscar novas soluções.

Opa!

Continuei os meus estudos e descobri o motivo de não encaixar os 3 li's na mesma linha, mesmo eles sendo matematicamente feitos para caber:

Simplesmente são os espaços entre as tags da li no HTML. ¯_(ツ)_/¯¯

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

Removendo os espaços:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Cheguei na solução quando estava criando um site próprio e percebi que não consegui colocar duas imagens de width = 50% uma ao lado da outra, como já havia sido instruido no curso 4 de HTML e CSS lembrei desse detalhe dos espaços entre tags. Parece que os espaços em branco são também adicionados ao site de alguma forma, pelo menos no firefox.

Mas fica aí a forma correta de fazer com que os 3 produtos fiquem um ao lado do outro, seguindo o mesmo HTML para o Chrome e o Firefox. =D