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

Posicionamento dos elementos com Float

Olá, eu tenho o seguinte código básico que fiz para testar o conceito de float. Eu gostaria que o "content" ficasse ao lado direito(mais próximo) do "nav". Eu usei o float right no 'content' para subir o 'nav', porém o 'content' continua muito afastado para a direita. Poderiam me ajudar?

Muito obrigado !

<!DOCTYPE html >
<html>
    <head>
        <link href="style.css" rel="stylesheet" type="text/css" > 
    </head>    
    <body>    

        <header class="header">
            <p> header</p>
        </header>

            <main class="content">
                    <p> content </p>
            </main>

        <aside class="nav">
            <p> nav </nav>
        </aside>
    </body>

</html>
p{
    margin: 5px;
    }

.header{
    width:700px;
    height:50px;
    border: 1px solid black;
}

.content{
    width:800px;
    height:400px;
    border:1px solid black;

    float:right;

}

.nav{
    width:100px;
    height:300px;
    border:1px solid black;
    margin: 20px;

    }
7 respostas
solução!

Tenta ai o ASIDE antes do CONTENT e edita o css como eu fiz, ve se funciona como tu deseja :D

HTML

<!DOCTYPE html >

header

nav

content

CSS

p{ margin: 5px; }

.header{ width:700px; height:50px; border: 1px solid black;

}

.content{ width:800px; height:400px; border:1px solid black; float:left;

}

.nav{ width:100px; height:300px; border:1px solid black; float:left;

}

Olá ! Funcionou perfeitamente, muito obrigado ! Mas, só por questão de dúvida, não seria possível chegar a uma solução com a estrutura inicial? Seria mais complexo?

Valeu

De nada amigo. Olha eu acredito que seria bem mais complexo e eu sempre penso o seguinte, colocar na sequencia que eu desejo projeto final, dessa forma facilita o serviço. Pra que complicar se da pra facilitar né? Abraço!

Usando o float: left;, o CSS vai empacotando os elementos um do lado do outro. Se já tiver algum ali, ele coloca ao lado. Como no seu exemplo o "content" vinha antes no HTML, ele era empacotado primeiro. Mantendo aquela sua estrutura de HTML, seria treta fazer isso. Não sei nem se só com CSS daria, acho que precisaria de JavaScript. Enfim, não compensa.

Muito boa explicação do Bruno Paschoali Regis, eu como iniciante na área não conseguiria explicar tão bem.

Obrigado, Régis. De toda forma, você solucionou o problema e isso foi o mais importante :)

Um Regis complementando a resposta de outro hehe. "Tamo junto".