⚡ Float, Clear, Block e Inline

⚠️ Nota Importante: Float era amplamente usado para layouts antes do Flexbox e Grid. Hoje é usado principalmente para flutuar imagens dentro de texto.

🌊 Float

/* Float básico */ .esquerda { float: left; } /* Flutua à esquerda */ .direita { float: right; } /* Flutua à direita */ .normal { float: none; } /* Comportamento padrão */ /* Dica: Sempre defina width em elementos flutuados */ .sidebar { float: left; width: 250px; }
Float Left
Elemento flutuado à esquerda
Float Right
Flutuado à direita
Este texto flui ao redor dos elementos flutuados. Float remove os elementos do fluxo normal do documento, permitindo que o conteúdo subsequente flua ao seu redor. É importante notar que elementos flutuados podem causar problemas de layout se não forem gerenciados adequadamente. O texto continua fluindo e se adapta aos espaços disponíveis ao redor dos elementos flutuados, criando um efeito de "envolvimento" que era muito utilizado em layouts de jornais e revistas.

🚫 Clear

/* Clear evita que elementos fiquem ao lado de floats */ .limpar-esquerda { clear: left; } /* Não permite floats à esquerda */ .limpar-direita { clear: right; } /* Não permite floats à direita */ .limpar-ambos { clear: both; } /* Não permite floats em ambos lados */
Float 1
Float 2
Float 3
Clear: left - Este elemento não permite floats à sua esquerda
Float 4
Float 5
Clear: both - Este elemento força uma nova linha, sem floats ao lado

🔧 Clearfix

/* Clearfix - força o pai a "envolver" filhos flutuados */ .clearfix::after { content: ""; display: table; clear: both; } /* Alternativa moderna */ .clearfix { overflow: hidden; }

SEM Clearfix (contêiner colapsa)

Float 1
Float 2
Float 3

COM Clearfix (contêiner envolve)

Float 1
Float 2
Float 3
💡 Dica: Use overflow: hidden; no pai como clearfix simples, ou a técnica ::after para casos mais complexos.

🧱 Elementos Block

/* Características dos elementos BLOCK */ display: block; /* Propriedades que funcionam: */ width: 300px; ✅ Funciona height: 100px; ✅ Funciona margin: 20px; ✅ Funciona (todos os lados) padding: 15px; ✅ Funciona (todos os lados) /* Comportamento: */ - Ocupam largura total do pai (por padrão) - Iniciam em nova linha - Empilham verticalmente
Elemento Block 1 - Largura: 70%
Elemento Block 2 - Cada um em sua linha
Elemento Block 3 - Respeitam width e height

📝 Elementos Inline

/* Características dos elementos INLINE */ display: inline; /* Propriedades que NÃO funcionam: */ width: 300px; ❌ Ignorado height: 100px; ❌ Ignorado margin-top: 20px; ❌ Não afeta layout margin-bottom: 20px; ❌ Não afeta layout /* Propriedades que funcionam: */ margin-left: 10px; ✅ Funciona margin-right: 10px; ✅ Funciona padding: 5px; ✅ Funciona (mas pode sobrepor)

Elementos inline fluem no mesmo parágrafo: Inline 1 Inline 2 Inline 3 e continuam na mesma linha quando há espaço.

🔄 Inline-Block

/* INLINE-BLOCK - melhor dos dois mundos */ display: inline-block; /* Combina características: */ ✅ Flui como inline (mesma linha) ✅ Aceita width e height como block ✅ Respeita margins em todos os lados ✅ Útil para menus, botões, cards
Card 1
120px × 80px
Card 2
120px × 80px
Card 3
120px × 80px
🎯 Uso comum: Inline-block é perfeito para criar menus horizontais, grids simples de cards ou qualquer layout onde você quer elementos lado a lado com controle total de dimensões.

📊 Comparação Visual

Block:
Elemento Block
Outro Block
Inline: Inline 1 Inline 2 Inline 3
Inline-block: IB 1 IB 2 IB 3



Dev by Maugus em CSS puro 🎨