Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida nas configurações de layout: float e clear

Boa tarde!

Estou tendo dificuldades em fazer o < aside > e a < img > ficarem junto da primeira linha do < main > para configurar corretamente o layout da pagina. Desconfio que seja alguma incompatibilidade com a propriedade width ou padding de algum dos elementos, mas não consegui decifrar o problema.

http://ap.imagensbrasil.org/image/jEvOXe

https://codepen.io/Renanbt/pen/gmvRNL

Segue código:

    <body>
        <main>
            <h1 class="titulo-principal">Sobre mim</h1>
            <div class="conteudo">

                <p>Moro em São Paulo mas atendo clientes do mundo todo. Sou conhecido por fazer produtos de <em>qualidade</em>, <em>durabilidade</em> e que <em>agregam valor</em> para meus clientes.
Trabalho usando a web como plataforma, ou seja, respiro HTML5, CSS3 e JavaScript (ou melhor: ECMASCript). Crio sites para todos, seguindo as principais diretivas de acessibilidade, responsividade e web semântica, sem descuidar da qualidade de código.</p>

                <h2>Como trabalho</h2>
                    <blockquote class="referencia fiat">
                <p>João é o melhor desenvolvedor front-end com quem já trabalhei. Muito eficiente e muito capaz. Recomendo sem dúvidas!</p>
                    <cite>José Souza, Fiat</cite>
                </blockquote>

                <p>Satisfazer meus clientes é prioridade. Para isso, garanto um processo de desenvolvimento altamente interativo, baseado em feedback contínuo. <strong>Não trabalho com escopo fechado:</strong> o cliente é que decide quando o produto está pronto.</p>

                <p>Também não trabalho com prazos fechados: qualidade é importante demais para ser sacrificada.</p>

                <h2>Experiência</h2>
                    <blockquote class="referencia petrobras">
                <p> João domina as tecnologias como ninguém. Eu apresentava um problema, ele tinha na ponta da língua a solução mais adequada com as tecnologias mais recentes.</p>
                    <cite>Manoel Santos, Petrobrás</cite>
                </blockquote>
                <p>Já desenvolvi projetos para grandes empresas como <a href="http://www.bmw.com">BMW</a>, <a href="http://www.uol.com.br">UOL</a> e <a href="http://www.ibm.com/br-pt/">IBM</a>. Neles, o foco principal era entregar uma experiência imersiva e impactante para o usuário final sem descuidar do desempenho e da acessibilidade da página.
Também já fui contratado para transformar grandes portais, como <a href="http://www.terra.com.br">Terra</a> e <a href="http://www.g1.globo.com">G1</a>, em páginas responsivas. Fui responsável por renovar o layout, reorganizar o conteúdo e re-escrever o código de forma mais reaproveitável.<p/>

                <h2>Comunidade</h2>
                <p>Procuro repassar meu conhecimento para a comunidade. Para isso, já dei diversas palestras e mantenho um <a href="blog.html">blog</a>.</p>
            </div>
        </main>
        <img class="foto" src="eu.jpg" alt="Foto de João da Silva">
        <aside class="navegacao">
                <h1>João da Silva</h1>
            <nav>
                <ul>
                <li><a href="index.html">Home</a></li>
                <li><a href="portefólio.hmtl">Portefólio</a></li>
                <li><a href="bio.html">Sobre mim</a></li>
                <li><a href="blog.html">Blog</a></li>
                <li><a href="contato.html">Contato</a></li>
                </ul>    
                <ul class="icones-sociais">
                    <li><a class="github" href="https://github.com/joaodasilva">github</a></li>
                <li><a class="twitter" href="https://twitter.com/joaodasilva">twitter</a></li>
                <li><a class="linkedin" href="https://br.linkedin.com/pub/joão-da-silva/32/4/508">linkedin</a></li>
                </ul>
            </nav>
        </aside>
        <footer class="rodape">
        &copy; 
        &hearts; João da Silva 2014
        </footer>
    </body>
</html>

CSS

body {
    font-family: "Crismon Text", "Times New Roman", sans-serif;
    background-color: #F2FFFC;
    font-size: 120%;
    line-height: 1.5;
}
h1, h2 {
    font-family: "Open Sans Condensed", "Arial", sans-serif;
}
main h2 {
    margin: 20px;
    font-size: 30px;
    clear: both;
}
.conteudo {
    width: 720px;
    margin-left:auto;
    margin-right:auto;
    padding-top: 30px;
}
.conteudo a {
    color: #851944;
}
.titulo-principal{
    text-transform: uppercase;
    padding: 25px;
    font-size: 60px;
    text-align: center;
    background-color: #851944;
    color: #FFF;
    border-bottom: 5px solid black;
}
aside, img {
    float: right;
    border-bottom: 7px solid black;
    border-left: 7px solid black;
    width: 15%;
    box-sizing: border-box;
}
aside {
    clear: right;
    box-sizing: border-box;
}
img {
    width: 20%;
}
main {
    float: left;
    width: 85%;
}
aside h1 {
    font-size: 30px;
    margin-bottom: 25px;
    color: #F2FFFC;
}
.navegacao a {
        font-family: "Open Sans Condensed", sans-serif;
    text-decoration: none;
        color: #F2FFFC;
}
.navegacao{
    padding: 20px;
    text-align: center;
    margin: auto;
    padding: auto;
    background-color: #3C1D3D;
}
.icones-sociais a {
    width: 40px;
    height: 40px;
    font-size: 0;
    display: inline-block;
}
.icones-sociais li {
    display: inline-block;
}
.github {
    background-image: url(github.png)
}
.twitter {
    background-image: url(twitter.png)
}
.linkedin {
    background-image: url(linkedin.png)
}
.rodape {
    padding: 20px;
    background-color: #000000;
    color: #F2FFFC;
    font-family: sans-serif;
    clear: both;
}
1 resposta
solução!

Olá.

Tira o width daqui:

aside, img {
    float: right;
    border-bottom: 7px solid black;
    border-left: 7px solid black;
    width: 15%;
    box-sizing: border-box;
}

Você tem classes para o aside e para o img, então use-as no exemplo assim ao invés das tags, isso te dá mais flexibilidade. As classes no seu caso são navegacao e foto:

.navegacao, .foto {
    float: right;
    border-bottom: 7px solid black;
    border-left: 7px solid black;
    box-sizing: border-box;
}

Agora, você precisará posicionar a foto na tela, pois ela está aparecendo lá embaixo e você a quer no canto superior direito. Pra isso, precisa mexer no position do elemento e também nas margens:

.foto {
    position: absolute;
    top: 0;
    right: 0;
}

Já sua classe navegacao, pode ter position relative, mas precisa mudar algumas coisas:

.navegacao {
    width: 20%;
    position: relative;
    top: 310px;
}

Essa configuração para a classe navegacao foi de exemplo, talvez você tenha que mexer no width ou no top, mas é por aí. Note também que não tirei a outra regra que aplica nas duas classes de uma vez. O que eu fiz foi criar regras separadas pra cada classe, pois são diferentes pra cada uma e não poderia ficar na primeira regra que aplica às duas classes.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software