Float, elemento pai (container) expansível.

Geralmente temos que declarar a propriedade float para alguns elementos, só que precisamos que o elemento pai ( container ) expandisse dependendo do conteudo do elemento que tem float.

Sua forma de resolver isto ainda é usar um div.clear, br.clear, hr.hide ou algo do tipo? Legal. Eu também usava isso :( , o texto a seguir apresenta algumas opções um pouco mais interessantes.

Já estão disponíveis faz um bom tempo mas nunca falei nada aqui no blog, aliás falei até coisa que não devia..

Médoto com overflow.

Exemplo, escreva o HTML seguinte:

<ul> <li>ola</li> <li>oi</li> <li>opa</li> </ul>

Declare o seguinte CSS para o HTML:

ul { border: 1px solid blue; } ul li { float: left; border: 1px solid red; }

O resultado será:

li com float

Acrescente a propriedade overflow ao elemento pai ( nesse caso, o ul ):

ul { border: 1px solid blue; overflow: auto; } ul li { float: left; border: 1px solid red; }

Atenção! Caso o elemento pai tenha alguma largura ( width ) não será necessário o código seguinte. Mas se o elemento não tiver largura definida adicione o seguinte código para o Internet Explorer 6.

ul { border: 1px solid blue; overflow: auto; } * html ul { display: inline-block; } ul li { float: left; border: 1px solid red; }

Agora sim, tudo ok.

Esse é um método legal. Sempre uso esse quando não posso usar o proximo método que vou apresentar ( que eu acho bem mais prático ).

Médoto com class="contemfloat"

Use o mesmo HTML só removar todo o CSS do exemplo anterior.

Copie o códido CSS abaixo e cole em seu arquivo de estilos.

/* contendo float */ .contemfloat:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .contemfloat { display: inline-block; } /* Hides from IE-mac \*/ * .contemfloat { height: 1%; } .contemfloat { display: block; } /* End hide from IE-mac */

agora só defina a class no HTML:

<ul class="contemfloat"> <li>ola</li> <li>oi</li> <li>opa</li> </ul>

Esse método foi inventado por Tony Aslett. Tem gente que não gosta, mas eu uso praticamente todos os dias e sou uma pessoa feliz.

Como ninguém é dono da verdade e todos cometem erros, eu preciso me redimir pela falta de conhecimento e cabeça dura ( leia também como: "Universitário de merda e chato" ). Esse post é um tema pouco que polêmico ( pelo menos já foi... ), então caso seja contra esses métodos ou tenha alguma opinião comente o post. Precisamos aprender juntos, cada um contribuindo com seu conhecimento a fim de chegar a uma web com seu potencial máximo !

Desculpem, mas eu não conhecia o esquema do contemfloat e nem do overflow antes de entrar na Mídia Digital. É que eu via no site da mozilla os códigos com hr e ai pensava que era o correto, não que seja errado, mas é que não é muito legal usar hr.

Mas então é isso, valeu galera, té!

Comentários

Mateus :

Taí bacana não conhecia esses outros metódos sempre usei o hr achando que tava bem ;X, mas é como você disse "ninguém é dono da verdade".

Bruno Mermer :

Krause, acredito que o melhor método seja o primeiro "mais simples", já tinha visto ele em uma discussão no grupo webstandards-br, fica aí minha opinião.


Abraço,
Bruno Mermer.
Curitiba - Paraná.

Boa dica Krause, legal mesmo kara, abração!

Outra forma para resolver, basta colocar "overflow: hidden" mais "height: 1%;" ou "zoom: 1" no "ul".

gadarf :

Mais um método para resolver o problema. Valeu!

Comente!


Type the characters you see in the picture above.

Gustavo KrauseTavo

WebKrause
Rua Paulo Setúbal, 1565 - Boqueirão Curitiba, Paraná, 81670130 Brasil
41 32788723
GEO: -25.491500, -49.254780

Web Standards Group Member

Amigos!

Recomendo

About this Entry

This page contains a single entry by Gustavo Krause published on dezembro 9, 2008 7:56 PM.

Regras do Bill Gates was the previous entry in this blog.

Documentação de padrões em desenvolvimento XHTML e CSS is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.21-en