4
respostas

Dúvida sobre a aula 10: Posicionamento mais a fundo - Comportamento da imagem

Olá pessoal! Pelo que eu entendi na aula, quando um elemento possui a propriedade float, ele continua na mesma linha em que foi definido no HTML e o conteúdo abaixo do elemento sobe. Mas eu percebi que quando foi aplicada a propriedade float no elemento aside, a foto do autor "desceu", ficando na mesma linha do aside. Por que isso aconteceu? O certo não seria a imagem continuar acima, o aside flutuar e o footer subir?

4 respostas

Olá, Antonio.

Você pode mandar um print do momento que você aplica o float no aside e o trecho do HTML e CSS para eu dar uma olhada?

[]'s

Antes de aplicar o float, meu código do aside está assim:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>João da Silva - Biografia</title>
    <link rel="icon" href="favicon.png">
    <link rel="stylesheet" href="reset.css">
    <link rel="stylesheet" href="site.css">
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Crimson+Text:400,400italic,600">
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700">
</head>
<body>
    <main>
        <h1 class="titulo-principal">Sobre mim</h1>
        <div class="container">
            <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.</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 <strong>acessibilidade, responsividade e web semântica</strong>, sem descuidar da qualidade de código.</p>
            <h2 class="subtitulo-texto">Como trabalho</h2>
            <blockquote class="citacao-bio 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: <strong>qualidade é importante demais para ser sacrificada</strong>.</p>
            <h2 class="subtitulo-texto">Experiência</h2>
            <blockquote class="citacao-bio 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://bmw.com">BMW</a>, <a href="http://www.uol.com.br">UOL</a> e <a href="http://www.ibm.com.br">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 class="subtitulo-texto">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="Minha foto" class="minha-foto">
    <aside class="navegacao-site">
        <h1>João da Silva</h1>
        <nav>
            <ul>
                <li><a href="index.html">Home</a></li>
                <li><a href="portfolio.html">Portfolio</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>
        </nav>
        <ul class="icones-redes-sociais">
            <li>
                <a href="https://github.com/joaodasilva" class="github">
                    Github
                </a>
            </li>
            <li>
                <a href="https://twitter.com/joaodasilva" class="twitter">
                    Twitter
                </a>
            </li>
            <li>
                <a href="https://br.linkedin.com/pub/joão-da-silva/32/4/508" class="linkedin">
                    LinkedIn
                </a>
            </li>
        </ul>
    </aside>
    <footer class="rodape-pagina">
        &copy; João da Silva 2014
    </footer>
</body>
</html>

Logo após, adiciono o bloco de código no meu CSS, no final do código, contendo o seletor aside com a propriedade "float: right":

body {
    font-family: "Crimson Text", "Times New Roman", serif;
    background-color: #F2FFFC;
    font-size: 120%;
    line-height: 1.5;
}

h1,
h2 {
    font-family: "Open Sans Condensed", "Arial", sans-serif;
}

h1 {
    text-transform: uppercase;
}

.citacao-bio {
    background-color: #D9E5E3;
    border: 10px solid #C2CCCA;
    padding: 20px;
    margin: 20px 40px;
    width: 250px;
    box-sizing: border-box;
}

.titulo-principal {
    font-size: 60px;;
    text-align: center;
    background-color: #851944;
    color: #FFF;
    padding: 25px;
    border-bottom: 10px solid #000;
}

.subtitulo-texto {
    font-size: 30px;
}

main a {
    color: #851944;
}

p {
    text-align: justify;
    margin: 20px 0;
}

.navegacao-site {
    text-align: center;
    background-color: #3C1D3D;
    color: #F2FFFC;
    padding: 20px;
}

.navegacao-site a {
    color: inherit;
    font-family: "Open Sans Condensed", "Arial", sans-serif;
    text-transform: lowercase;
}

.navegacao-site h1 {
    font-size: 30px;
    margin-bottom: 25px;
}

.rodape-pagina {
    background-color: #000;
    color: #F2FFFC;
    padding: 20px;
}

.container {
    width: 720px;
    margin-left: auto;
    margin-right: auto;
    padding: 30px 0;
}

strong {
    font-weight: bold;
}

em {
    font-style: italic;
}

.icones-redes-sociais li {
    display: inline-block;
}

.leia-mais {
    padding: 8px;
    margin: 16px;
    display: block;
    font-size: 24px;
    text-align: center;
    background-color: #E6E7E8;
}

.icones-redes-sociais a {
    width: 40px;
    height: 40px;
    display: block;
    text-indent: -99999px;
}

.github {
    background-image: url(github.png);
}

.twitter {
    background-image: url(twitter.png);
}

.linkedin {
    background-image: url(linkedin.png);
}

.fiat {
    float: left;
}

.petrobras {
    float: right;
}

h2 {
    clear: both;
}

aside {
    float: right;
}

No caso, como a imagem está acima do menu, ela não deveria "descer", apenas o rodapé subir.

Estou em dúvida, no caso print você fala a imagem da página html ou o trecho de código antes de adicionar o float? Caso seja a imagem, como faço para postá-la aqui no fórum?

Agradeço a ajuda.

Eu dei uma ajeitada no css ve se confere ai!!

body {
    font-family: "Crimson Text", "Times New Roman", serif;
    background-color: #F2FFFC;
    font-size: 120%;
    line-height: 1.5;

}

h1,
h2 {
    font-family: "Open Sans Condensed", "Arial", sans-serif;
}

h1 {
    text-transform: uppercase;
}

.citacao-bio {
    background-color: #D9E5E3;
    border: 10px solid #C2CCCA;
    padding: 20px;
    margin: 20px 40px;
    width: 250px;
    box-sizing: border-box;
}

.titulo-principal {
    font-size: 60px;;
    text-align: center;
    background-color: #851944;
    color: #FFF;
    padding: 25px;
    border-bottom: 10px solid #000;
}

.subtitulo-texto {
    font-size: 30px;
}
main{
      width: 80%;
        float:left;

margin-left: auto;
margin-left: auto;
    padding-bottom: 80px;

    margin-right: auto;

    margin-left: auto;
}
main a {
    color: #851944;
}

p {
    text-align: justify;
    margin: 20px 0;
}

.navegacao-site {
    text-align: center;
    background-color: #3C1D3D;
    color: #F2FFFC;
    padding: 20px;
}

.navegacao-site a {
    color: inherit;
    font-family: "Open Sans Condensed", "Arial", sans-serif;
    text-transform: lowercase;
}

.navegacao-site h1 {
    font-size: 30px;
    margin-bottom: 25px;
}

.rodape-pagina {
    background-color: #000;
    color: #F2FFFC;
    padding: 20px;
}

.container {
    width: 720px;
    margin-left: auto;
    margin-right: auto;
    padding: 30px 0;
}

strong {
    font-weight: bold;
}

em {
    font-style: italic;
}

.icones-redes-sociais li {
    display: inline-block;
}

.leia-mais {
    padding: 8px;
    margin: 16px;
    display: block;
    font-size: 24px;
    text-align: center;
    background-color: #E6E7E8;
}

.icones-redes-sociais a {
    width: 40px;
    height: 40px;
    display: block;
    text-indent: -99999px;
}

.github {
    background-image: url(github.png);
}

.twitter {
    background-image: url(twitter.png);
}

.linkedin {
    background-image: url(linkedin.png);
}

.fiat {
    float: left;
}

.petrobras {
    float: right;
}

h2 {
    clear: both;
}

aside {
    float: right;
}
aside,img{
        float:right;

    width: 20%;
 box-sizing: border-box;

}
footer{
    clear:both;
}

João, coloquei as modificações que fizestes e funcionou perfeitamente, obrigado. Entretanto, eu ainda estou com dúvidas quanto ao comportamento do float: Segundo o material de estudos, o elemento que recebe a propriedade float continua na mesma altura em que foi declarado no html, e os elementos declarados abaixo "sobem" para a altura dele. Mas curiosamente, quando atribuímos float ao aside, a imagem declarada acima dele "desce" e fica na mesma linha dele, e o footer, que deveria "subir" continua abaixo do aside. Vou retirar o trecho do código para exemplificar:

<img src="eu.jpg" alt="Minha foto" class="minha-foto">
<aside class="navegacao-site">
        <h1>João da Silva</h1>
        <nav>
            <ul>
                <li><a href="index.html">Home</a></li>
                <li><a href="portfolio.html">Portfolio</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>
        </nav>
        <ul class="icones-redes-sociais">
            <li>
                <a href="https://github.com/joaodasilva" class="github">
                    Github
                </a>
            </li>
            <li>
                <a href="https://twitter.com/joaodasilva" class="twitter">
                    Twitter
                </a>
            </li>
            <li>
                <a href="https://br.linkedin.com/pub/joão-da-silva/32/4/508" class="linkedin">
                    LinkedIn
                </a>
            </li>
        </ul>
</aside>
<footer class="rodape-pagina">
        &copy; João da Silva 2014
</footer>

Digamos que nenhum deles possui a propriedade float, iremos aplicá-la agora. Quando aplicamos a propriedade float primeiramente no aside, o certo seria o aside continuar na mesma altura em que foi declarado e o footer subir. Entretanto o que acontece é o seguinte: a imagem desce e o footer continua abaixo do aside. Porque isso acontece?

Agradeço a ajuda de todos.