Académique Documents
Professionnel Documents
Culture Documents
layouts?
Voc sabe quando utilizar float e display: inline-block ? Aqui a gente vai ver as
caractersticas de cada um para te ajudar a escolher qual o melhor a ser usado em
determinada ocasio no seu projeto.
Ambos tm uma base parecida: permitir que elementos fiquem na mesma linha. Os seus
demais comportamentos so totalmente diferentes e muitos desenvolvedores acabam no
sabendo quando devem usar um ou outro.
Float
As pessoas normalmente utilizam o float para desenvolver colunas em seus layouts ou
permitir que elementos de bloco ocupem a mesma linha, mas esta propriedade foi criada
originalmente para permitir que um texto envolva um elemento.
Um dos problemas do float que o elemento pai no vai saber a sua altura, j que o
elemento est flutuando.
No Exemplo 1 podemos ver que a div container, com borda verde, apenas interpreta a
altura do nosso texto. A altura do nosso elemento flutuante, a div azul, ignorada.
No Exemplo 2 ns utilizamos outra div com a propriedade clear para poder limpar os
efeitos do float , fazendo com que o fluxo dos elementos volte ao normal e o container
possa interpretar a altura normalmente.
<div class="container">
<div class="floating" ></div>
Exemplo 2
<p class="clear" ></p>
</div>
Muitas pessoas acham isso feio: ter que colocar um elemento vazio apenas para fazer a
altura de um elemento ser interpretada. Isso tambm tira o sentido da semntica do
cdigo.
.container-overflow{
overflow: auto;
}
No Exemplo 4 temos algo mais complexo, porm mais confivel, muito utilizado em
lugares como o HTML5 Boilerplate . Ento, problemas com barra de rolagem
resolvidos!
.clearfix { zoom: 1; }
Mas se a ideia das tecnologias sempre melhorar, por que continuar com essa
complexidade toda?
Inline Block
Quando utilizamos display: inline-block , tambm estamos fazendo com que um
elemento permanea na mesma linha.
Note a diferena com o primeiro exemplo do float : nossa div est na mesma linha do
texto, mas no so criadas novas linhas em volta dela. Tudo bem, o objetivo aqui
manter elementos na mesma linha. Aqui no teremos problemas com a altura do
cointainer ou barra de rolagem. ()
Outra vantagem que como agora ele um elemento com comportamento de linha,
poderemos utilizar as propriedades text-align e vertical-align para modificar
sua posio. Masss ... Teremos um probleminha quando precisarmos que os elementos
estejam encostados (_)
No exemplo acima criamos um layout que tem trs colunas de larguras iguais que
precisam preencher uma linha inteira. Note que entre a Div 1 e a Div 2 h um espao.
Se inspecionarmos os elementos veremos que no h margens separando as divs . Por
qu esse espao existe? Por causa dele, a nossa Div 3 foi jogada para a linha de baixo!
Quando escrevemos um texto, queremos que haja espaos entre as palavras, certo?
Ento o navegador interpreta os espaos que damos entre as palavras. Para organizar
melhor o nosso HTML, ns colocamos uma div em cada linha. Essa quebra de linha no
cdigo interpretado como espao e acaba interferindo na renderizao de
elementos inline ou inline-block .
Caso voc tenha o costume de minificar o seu cdigo, os espaos sero removidos e
voc no ter esse problema.
<!-- Deixar a tag de fechamento junto tag de abertura do elemento seguinte -->
<!-- Melhora um pouquinho, mas continua estranho -->
<div class="container" >
<div class="column">Div 1
</div><div class="column">Div 2
</div><div class="column">Div 3</div>
</div>
Concluindo
Float: Prefira usar quando quiser que um texto ou outros elementos contornem um
determinado elemento. Essa a real funo dele.
Inline Block: Vimos aqui que o nico problema do inline-block ocorre quando
precisamos que os elementos fiquem encostados. Caso esse no seja o seu caso,
o inline-block resolver seus problemas sem a necessidade de algum hack.
Caso voc no precise dar suporte total a navegadores mais antigos, ento mais
recomendado que voc monte seus layouts com as propriedades do flex-box .