Layout CSS – Flutuação
Com a float
propriedade, é fácil flutuar caixas de conteúdo lado a
lado:
<!DOCTYPE html>
<html>
<head>
<style>
* {
box-sizing:
border-box;
}
.box {
float: left;
width: 33.33%;
padding: 50px;
}
.clearfix::after {
content:
"";
clear: both;
display: table;
}
</style>
</head>
<body>
<h2>Grade de Caixas</h2>
<p>Caixas flutuantes lado a lado:</p>
<div class="clearfix">
<div
class="box" style="background-color:#bbb">
<p>Caixa de
texto 1</p>
</div>
<div
class="box" style="background-color:#ccc">
<p>Caixa de
texto 2</p>
</div>
<div
class="box" style="background-color:#ddd">
<p>Caixa de
texto 3</p>
</div>
</div>
<p><strong>Note:</strong> aqui, usamos o
hack clearfix para cuidar do fluxo do layout. Também usamos a propriedade
box-sizing para garantir que a caixa não quebre devido ao preenchimento extra.
Tente remover este código para ver o efeito. </p>
</body>
</html>
Imagens lado a lado
A grade de caixas também pode ser usada para
exibir imagens lado a lado:
<!DOCTYPE html>
<html>
<head>
<style>
* {
box-sizing:
border-box;
}
.img-container {
float: left;
width: 33.33%;
padding: 5px;
}
.clearfix::after {
content:
"";
clear: both;
display: table;
}
</style>
</head>
<body>
<h2>Imagens Lado a Lado</h2>
<p>Imagens flutuantes lado a lado:</p>
<div class="clearfix">
<div
class="img-container">
<img
src="img_5terre.jpg" alt="Italy"
style="width:100%">
</div>
<div
class="img-container">
<img
src="img_forest.jpg" alt="Forest"
style="width:100%">
</div>
<div
class="img-container">
<img
src="img_mountains.jpg" alt="Mountains"
style="width:100%">
</div>
</div>
<p>Observe que também usamos o hack clearfix para
cuidar do fluxo de layout e adicionamos a propriedade box-sizing para garantir
que o contêiner da imagem não quebre devido ao preenchimento extra. Tente
remover este código para ver o efeito.</p>
</body>
</html>
Caixas de Altura Igual
é definir uma altura fixa
<!DOCTYPE html>
<html>
<head>
<style>
* {
box-sizing:
border-box;
}
.box {
float: left;
width: 50%;
padding: 50px;
height: 300px;
}
.clearfix::after {
content:
"";
clear: both;
display: table;
}
</style>
</head>
<body>
<h2>Caixas de Altura Igual</h2>
<p>Caixas flutuantes com alturas iguais:</p>
<div class="clearfix">
<div
class="box" style="background-color:#bbb">
<h2>Caixa
1</h2>
<p>Tem
algum conteúdo,tem algum conteúdo, tem algum conteúdo. </p>
</div>
<div
class="box" style="background-color:#ccc">
<h2>Caixa
2</h2>
<p>Tem
algum conteúdo,tem algum conteúdo, tem algum conteúdo.</p>
<p>Tem
algum conteúdo,tem algum conteúdo, tem algum conteúdo.</p>
<p>Tem
algum conteúdo,tem algum conteúdo, tem algum conteúdo.t</p>
</div>
</div>
<p>Este exemplo não é muito flexível. Não há
problema em usar a altura do CSS se você puder garantir que as caixas sempre
terão a mesma quantidade de conteúdo, mas nem sempre é o caso. Se você tentar o
exemplo acima em um telefone celular (ou redimensionar a janela do navegador),
verá que o conteúdo da segunda caixa será exibido fora da caixa. </p>
<p>Volte ao tutorial e encontre outra solução, se
não for o que você deseja. </p>
</body>
</html>
o Flexbox para criar
caixas flexíveis:
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
display: flex;
flex-wrap: nowrap;
background-color:
DodgerBlue;
}
.flex-container .box {
background-color:
#f1f1f1;
width: 50%;
margin: 10px;
text-align: center;
line-height: 75px;
font-size: 30px;
}
</style>
</head>
<body>
<h1>Caixas flexíveis</h1>
<div class="flex-container">
<div
class="box">Caixa 1 - Este é um texto para garantir que o conteúdo
fique realmente alto. Este é um texto para garantir que o conteúdo fique
realmente alto.</div>
<div
class="box">Caixa 2 - Minha altura seguirá a Caixa 1.</div>
</div>
<p>Tente redimensionar a janela do navegador para ver o
layout flexível.</p>
<p><strong>Note:</strong> o Flexbox não é compatível com o Internet
Explorer 10 ou versões anteriores.</p>
</body>
</html>
menu de navegação
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type:
none;
margin: 0;
padding: 0;
overflow: hidden;
background-color:
#333;
}
li {
float: left;
}
li a {
display:
inline-block;
color: white;
text-align:
center;
padding: 14px
16px;
text-decoration:
none;
}
li a:hover {
background-color:
#111;
}
.active {
background-color:
red;
}
</style>
</head>
<body>
<ul>
<li><a
href="#home" class="active">Home</a></li>
<li><a
href="#news">Notícia</a></li>
<li><a
href="#contact">Contato</a></li>
<li><a
href="#about">Ajuda</a></li>
</ul>
</body>
</html>
Layout da Web
<!DOCTYPE html>
<html>
<head>
<style>
* {
box-sizing:
border-box;
}
body {
background-color:
white;
}
.header, .footer {
background-color:
grey;
color: white;
padding: 15px;
}
.column {
float: left;
padding: 15px;
}
.clearfix::after {
content:
"";
clear: both;
display: table;
}
.menu {
width: 25%;
}
.content {
width: 75%;
}
.menu ul {
list-style-type:
none;
margin: 0;
padding: 0;
}
.menu li {
padding: 8px;
margin-bottom:
8px;
background-color:
#33b5e5;
color: #ffffff;
}
.menu li:hover {
background-color:
#0099cc;
}
</style>
</head>
<body>
<div class="header">
<h1>Página
do web</h1>
</div>
<div class="clearfix">
<div
class="column menu">
<ul>
<li>HOMR</li>
<li>NOTÍCIA</li>
<li>CONTATO</li>
<li>AJUDA</li>
</ul>
</div>
<div
class="column content">
<h1>SITE</h1>
<p>Sem
benvindo prrimeira página do site.</p>
<p>site
novo</p>
</div>
</div>
<div class="footer">
<p>Rodapé</p>
</div>
</body>
</html>