Voltar para o site

Layout CSS de 2 colunas - 4a. Parte

Publicado em: 12/08/2005

[ « anterior ]

Colocando imagens no topo

Como você deve ter observado na página base, o topo tem o nome do site à esquerda e uma caixa de busca à direita.
Iremos a seguir substituir o nome do site e o fundo do topo por uma imagem, usando uma das inúmeras técnicas CSS de substituição de texto por imagem. Vamos também melhorar a apresentação da caixa de busca existente no topo do site colocando um fundo com transparência alpha.

Para estas estilizações iremos declarar nas regras de estilo:

  1. Uma imagem de fundo para o topo; Ver a imagem
  2. Uma indentação negativa de 90000px para sumir com o texto do nome do site;
  3. Uma imagem simulando tranparência alpha para a caixa de busca. Ler tutorial transparência alpha

Veja a seguir os acréscimos na folha de estilo para estas estilizações no topo.

...............
<title>Meu blog Standard</title>
<style type="text/css">
...............
#topo {
height:150px; 
background:#2a7d00 url(fundo-topo.jpg) center bottom no-repeat;
color:#fff; 
}

#topo h1 {	
float:left; 
margin: 0 20px;
text-indent:-90000px;
}

#busca {
background: transparent url(alpha.gif) center;
float:right; 
height:115px; 
margin:5px 5px 0 0;
}

Veja o efeito destas regras na página base.





Sugestão: Grave a marcação da página no seu HD e faça alterações nas regras do topo para estudar seus efeitos e entender como funcionam.

Estilizando a coluna principal

Na coluna central temos uma barra de navegação (veremos no próximo item) e quadros com as matérias postadas em cores alternadas. Cada quadro está dentro de uma DIV com class="par" e class="impar" alternadamente.
Dentro de cada quadro temos um título do post dentro do elemento h2, uma data de postagem dentro de um elemento p com class="data", uma imagem com class="left" (para imagens à esquerda do post) ou class="right" (para imagens à direita do post), um texto do post dentro de parágrafos, um autor do post dentro de um elemento p com class="envio", um link para os comentários postados com class="comentário" e um link para comentar com class="comente"

Veja a seguir as regras de estilos acresentadas:

...............
<title>Meu blog Standard</title>
<style type="text/css">
...............
#principal {
width:500px; 
float:left; 
background:#fff6d1;
line-height:1.4em;
	}

.par {background-color: #fffcee;}
.impar {background-color: #ebf5e6;}

.impar, .par {
border:1px solid #2eac2e;
margin: 10px 20px 10px; 
padding:10px; 
text-align:justify;
}
...............
</style>

Veja o efeito destas regras na página base.

Mais estilos

Vamos a seguir estilizar o título e a data, colocar as imagens e o texto em posição e estilizar o autor e comentários nos posts.

Veja a seguir as regras de estilos acresentadas:

...............
<title>Meu blog Standard</title>
<style type="text/css">
...............
#principal h2 {
border-bottom:1px solid #090; 
padding-bottom:1px; 
margin-bottom:2px;
} 
#principal p.data {
margin:0 0 20px ; 
text-align:right; 
font-size:0.85em;
} 
#principal p.envio {
font-size:0.9em; 
border:solid #090; 
border-width: 1px 0; 
padding:5px 0
} 
img.left {
float:left; 
margin-right:10px;
} 
img.right {
float:right; 
margin-left:10px;
}
...............
</style>

Veja o efeito destas regras na página base.

Estilizando a barra de navegação

A barra de navegação está dentro de um elemento ul, (lista não ordenada) com uma id="nav"

Veja a seguir as regras de estilos acresentadas:

...............
<title>Meu blog Standard</title>
<style type="text/css">
...............
ul#nav {
width:460px; 
line-height:20px; 
height:20px; 
margin:20px; 
padding:1px 0; 
border: solid #090; 
border-width: 1px 0;
}

ul#nav li{
list-style:none; 
display:inline; 
}

ul#nav li a { 
float:left; 
margin:0 1px; 
width:90px; 
background:#d1c9ab; 
color:#880000; 
text-align:center; 
text-decoration:none; 
font-weight:bold;
}

ul#nav li a:hover { 
background:#fafafa; 
color:#090;
}
...............
</style>

Veja o efeito destas regras na página base.

Estilizando o rodapé

Veja a seguir as regras de estilos acresentadas para o rodapé:

...............
<title>Meu blog Standard</title>
<style type="text/css">
...............
#rodape { 
clear:both; 
background:#2a7d00; 
color:#fff; 
text-align:center;
}

#rodape p {
color:#fff; 
font:1.1em "Courier New", Courier, mono; 
margin:5px 0 0;
}

#rodape img {
display:inline; 
margin:10px 10px 3px;
}
...............
</style>

Estilizando a coluna secundária

Na coluna secundária utilizamos uma DIV extra dentro dela, (ver na marcação a div #conteudo-secundaria ) com a única finalidade de obter um espaçamento (de 10px) dos limites esquerdo e direito da coluna.
Poderíamos obter este espaçamento, simplesmente adicionando a regra #secundaria {padding: 0 10px;}
Contudo, isto faria com que a coluna assumisse larguras diferentes dependendo do navegador (Ver tutorial Box Model Hack) e assim no lugar de padding, usamos a extra #conteudo-secundaria com margem 10px, que fará o mesmo efeito e evitará uso do "box model hack", assim: #conteudo-secundaria {margin o 10px;}

Notar ainda que temos ainda nesta coluna cinco títulos h2 o primeiro, "Perfil" esta dentro de um elemento dl (lista de definição) o último "Parceiros" contém imagens com class="parceiros" e que são banners clicáveis e os três restantes estão contidos em ul (listas não ordenadas)

Veja a seguir as regras de estilos acresentadas para a coluna secundária:

...............
<title>Meu blog Standard</title>
<style type="text/css">
...............
#conteudo-secundaria { 
margin: 0 10px; 
}

#secundaria h2 {
margin:20px 0 5px;
}

#secundaria img.parceiros {
margin:15px 0 0 40px;
}

#secundaria li, #secundaria dd {
margin:2px 0;
}

#secundaria li a {
padding-left:20px;
}

#secundaria ul {
margin:0; padding:0;
}

#secundaria ul li{
list-style:none;
}
...............
</style>

Veja o efeito destas regras na página base.

Estendendo a cor de fundo das colunas

Como você já deve ter observado, a coluna secundária, por ser mais "curta" do que a coluna principal, não tem sua cor de fundo estendida até atingir o rodapé.
Vamos observar o que acontece se a coluna secundária for mais "comprida" do que a coluna principal. Para simular isto, retirei conteúdo da coluna principal e:

Veja aqui o que acontece neste caso.

Ops! Inverteu-se a situação. Agora é a coluna principal, que por ser mais "curta" do que a coluna secundária, não tem sua cor de fundo estendida até atingir o rodapé.

Solução

Usaremos uma técnica CSS conhecida como "faux columns" (artigo em inglês sobre este assunto) que consiste em atribuir uma imagem de fundo para o elemento body e que se repete na vertical. Esta imagem consiste de uma faixa de altura reduzida, por exemplo 10px, contendo a cor das colunas a simular.
Veja na figura abaixo uma versão sem escala desta faixa para a nossa página base.

Imagem mostrando uma faixa de 720px com um trecho de 220px na cor da coluna secundaria e de 500px na cor da coluna principal

Veja a seguir a regra de estilo para aplicar a imagem da faux column que eu denominei de fundo-bodyprovisorio.gif :

...............
<title>Meu blog Standard</title>
<style type="text/css">
...............
body {
background:transparent url(fundo-bodyprovisorio.gif) 
center repeat-y;
margin:0; 
padding:0;
font: 80% Arial, Helvetica, sans-serif; 
color:#800000;
text-align:center;
}
...............
</style>

Veja o efeito desta regras na página anterior. Observe como agora a cor da coluna principal (quando for mais curta que a coluna secundária) estende-se até o rodapé.

Veja o efeito desta regras na página base . Observe como agora a cor da coluna secundária (quando for mais curta que a coluna secundária) estende-se até o rodapé.

Vamos esclarecer melhor

Ficou confuso? Não entendeu? - Vamos esclarecer:

Podem ocorrer duas situações:
A coluna secundária é mais "curta" ou a coluna principal é mais "curta" dependendo da quantidade de conteúdo existente em cada coluna.
Em ambos os casos a cor do fundo da coluna mais "curta" não se estenderá até o rodapé e para corrigir usamos a técnica da faux column.

Vamos rever as duas situações;

Situação 1 - Coluna secundária mais "curta":

Situação 2 - Coluna principal mais "curta":

[ « anterior ]

Conheça os livros do Maujor®

Ir para a página de entrada nos sites dos livros.

topo