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

img e aside não vão para o topo

Depois de colocar a propriedade float na tag "main" e definir as porcentagens o meu aside continuou em baixo da página. HTML aside

<aside class="navegacao-site">
            <nav>   
                <h1>João da Silva</h1>
                <ul>
                    <li><a href="home.html">Home</a></li>
                    <li><a href="portfolio.html">Potfolio</a></li>
                    <li><a href="sobremim.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 href="hhtp://github/joaodasilva" class="github">Github</a></li>
                    <li>
                        <a href="hhtp://twitter/joaodasilva" class="twitter">Twitter</a></li>
                    <li>
                        <a href="hhrp://linkedin/joaodasilva" class="linkedin">LinkedIn</a></li>
                </ul>
            </nav>
        </aside>

CSS

.titulo-principal {
    background-color: rgb(120, 30, 60);
    color: #fff;
    text-align: center;
    padding: 25px;
    margin: 0px;
    border-bottom: 10px solid #000;
    font-size: 50px;
    text-transform: uppercase;
}
h2 {
    font-size: 30px;
    clear: both;
}
body {
    font-size: 120%;
    background-color: #F2FFFC;
}
p {
    text-align: justify;
    font-family: "crimson text", serif;
    line-height: 30px;
    margin: 20px;
}
h1, h2 {
    font-family: "open sans condensed", sans-serif;
}
blockquote {
    background-color: #D9E5E3;
    border: 10px solid #C2CCCA;
    border-bottom-color: #333;
    border-right-color: #fff;
    width: 250px;
    height: auto;
    box-sizing: border-box;
    margin: 20px 40px;
}
.citacao-jose {
    float: right;
}
.citacao-manoel {
    float: left;
}
nav {
    color: #F2FFFC;
    text-align: center;
    line-height: 25px;
}
nav a {
    text-transform: lowercase;
}
footer {
    background-color: #000;
    color: #F2FFFC;
    margin: 0px;
    clear: both;
    }
footer li {
    display: inline-block;
   }
.navegacao-site {
    background-color: #3C1D3D;
    color: #F2FFFC;
    text-align: center;
}
.navegacao-site a {
    color: #fff;
    font-family: "open sans condensed", sans-serif;
    text-decoration: none;
    line-height: 30px;
    }
.navegacao-site h1 {
    font-size: 30px;
    margin-bottom: 25px;
    text-transform: uppercase;
}
main a {
    color:  #851944;
    text-decoration: none;
}
main {
    float: left;
    width: 85%;
}
blockquote, footer, aside {
    padding: 20px;
}
aside, img {
    float: right;
    box-sizing: border-box;
}
aside {
    clear: right;
    width: 15%;
}
.texto-principal {
    width: 720px;
    margin-left: auto;
    margin-right: auto;
    padding: 30px 0px;
}
strong {
    font-weight: bold;
}
em {
    font-style: italic;
}
.tags {
    color:  #851944;
    background-color: #F2FFFC;
}
article {
    padding-bottom: 30px;
    border-bottom: 1px solid #ccc;
    margin-bottom: 20px;
}
.leia-mais {
    padding: 8px;
    margin: 16px;
    display: block;
    font-size: 24px;
    text-align: center;
    background-color: #E6E7E8;
}
.data {
    margin-top: 15px;
}
.icones-sociais a{
    display: inline-block;
    width: 40px;
    height: 40px;
    font-size: 0px;
    }
.github {
    background-image: url(github.png);
}
.twitter {
    background-image: url(twitter.png);
}
.linkedin {
    background-image: url(linkedin.png);
}
.icones-sociais li {
  display: inline-block;
}
5 respostas

Poderia colocar o código HTML inteiro ?

Antes de qualquer coisa quero comentar um detalhe na semântica das suas tags no HTML.

A tag <nav> serve para indicar links de navegação pelo site e não para qualquer site.

Então o ideal seria você tirar essa parte da tag <nav>:

                <ul class="icones-sociais">
                    <li>
                        <a href="hhtp://github/joaodasilva" class="github">Github</a></li>
                    <li>
                        <a href="hhtp://twitter/joaodasilva" class="twitter">Twitter</a></li>
                    <li>
                        <a href="hhrp://linkedin/joaodasilva" class="linkedin">LinkedIn</a></li>
                </ul>

--------------------------------

Voltando para o seu problema, não tenho certeza ainda, mas talvez esse problema esteja acontecendo porque você colocou o float: right na tag <img>:

aside, img {
    float: right;
    box-sizing: border-box;
}

Tente colocar o float: right apenas na tag <aside>:

aside {
    float: right;
    clear: right;
    width: 15%;
}

Saquei, vlw pela dica. HTML completo:

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="reset.css">
        <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700">
        <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Crimson+Text:400,400italic,600">
        <title>Biografia - João da Silva</title>
        <link rel="icon" href="favicon.png">
        <meta charset="utf-8">
        <link rel="stylesheet" href="site.css">
    </head> 
    <body>
        <main>    
                    <h1 class="titulo-principal">SOBRE MIM</h1>
                <div class="texto-principal">
                    <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 agregam valor para meus clientes.</p>

                    <p>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="citacao-jose">
                        <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 é <strong>importante demais para ser sacrificada.</strong></p>             

                    <h2>Experiência</h2>

                    <blockquote class="citacao-manoel">
                        <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="https://www.bmw.com.br/pt/index.html">BMW</a>, <a href="https://www.uol.com.br/">UOL</a> e <a href="https://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.</p>

                    <p>Também já fui contratado para transformar grandes portais, como Terra e G1, 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 <a href="portfolio.html">diversas palestras</a> e mantenho um <a href="blog.html">blog.</a>
                    </p>
                </div>
        </main>
                    <img src="eu.jpg" alt="Foto de João da Silva">
        <aside class="navegacao-site">
            <nav>   
                <h1>João da Silva</h1>
                <ul>
                    <li><a href="home.html">Home</a></li>
                    <li><a href="portfolio.html">Potfolio</a></li>
                    <li><a href="sobremim.html">Sobre mim</a></li>
                    <li><a href="blog.html">Blog</a></li>
                    <li><a href="contato.html">Contato</a></li>
                </ul>
            </nav>
                <ul class="icones-sociais">
                    <li>
                        <a href="hhtp://github/joaodasilva" class="github">Github</a></li>
                    <li>
                        <a href="hhtp://twitter/joaodasilva" class="twitter">Twitter</a></li>
                    <li>
                        <a href="hhrp://linkedin/joaodasilva" class="linkedin">LinkedIn</a></li>
                </ul>
        </aside>
        <footer>&copy; Joao da Silva 2014     
                    <ul>
                        <li><a href="hhtp://github/joaodasilva">
                        <img src="github.png"></a></li>

                        <li><a href="hhtp://twitter/joaodasilva">
                        <img src="twitter.png"></a></li>

                        <li><a href="hhrp://linkedin/joaodasilva">
                        <img src="linkedin.png"></a></li>
                    </ul>
        </footer>            
    </body>
</html>
solução!

Ok, agora com o HTML consegui identificar o erro. Desconsidere o que falei na minha primeira mensagem sobre tirar o float da tag <img>, a única coisa que está faltando é você dimensionar também a imagem para que ela caiba nos 15%:

img {
    width: 15%;
}

Porém se você usar esse código acima você vai avacalhar todas as outras imagens da página, portanto, é necessário que você crie uma classe para a foto do João da Silva e aí sim, por meia dessa classe, você altera a largura da imagem:

HTML:

<img src="eu.jpg" alt="Foto de João da Silva" class="foto-joao-da-silva">

CSS:

.foto-joao-da-silva
{
    width: 15%;
}

Boa tarde.

Para esse projeto em específico, a resposta do Axell-b encaixa perfeitamente, pois só existe esta imagem no projeto, mas para um projeto maior, criar uma classe para cada imagem pode ser complicado, trabalhoso e deixar o código muito grande.

Acredito que um bom caminho é identificar e agrupar as imagens que se comportarão da mesma forma e criar uma classe para esse grupo. Ex.:

.fotos-portifolio
{
    width: 100%;
    margin: 10px;
}

.fotos-depoimentos
{
    width: 150px;
    height: 150px;
    border: 5px solid white;
}

Valeu pela ajuda e desculpa pela demora! Deu certinho!

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