Você está na página 1de 16

APRENDENDO C.S.S. , UMA ESTRUTURA PARA WEB.

Por André Marinho C.

O QUE É CSS?

Você não tem por que se intimidar com a perspectiva de usar as Folhas de Estilo em Cascata. Usar um
computador pode ser algo assustador quando se vai experimentar pela primeira vez, mas decorrido algum
tempo nem se pensa mais nas dificuldades iniciais. Tudo se resume, em se aprender por etapas e é isto
que eu vou fazer nesta série de tutoriais. Uma etapa de cada vez.
Quer você seja usuário de um editor WYSIWYG e conhecedor do código por ele gerado ou mesmo não
tenha sequer criado uma página Web, este tutorial vai orientá-lo na direção certa.
O tutorial pressupõe um pequeno ou nenhum conhecimento de produção de uma página Web. Ele trata o
assunto realmente ' do seu início'

O que vai ser preciso?

Nada especial. Se você tem acesso a um editor de página Web, ótimo. Se não, você pode usar qualquer
editor de texto - NotePad no PC ou SimpleText ou TextEdit em Mac. Se você é usuário do DreamWeaver
ou GoLive, iremos usar o modo de 'código'.
Não se apavore!
Um editor de imagens não será essencial, pois a princípio não irei me preocupar muito com criação de
imagens.
Oh, você irá precisar de um navegador, mas isto eu não precisava dizer. De fato, eu recomendo que você
tenha alguns diferentes navegadores. Se você só possui o Explorer, deveria instalar o Mozilla e alguns
outros que você poderá obter consultando qualquer listagem Browsers Atuais.
Se você desejar fazer upload de suas páginas para um servidor Web, vai precisar de um programa FTP,
mas não se preocupe com isto agora, pois poderá fazer tudo ensinado no tutorial, no seu próprio
computador.

ETAPA NÚMERO 1 - UMA PÁGINA BÁSICA

Antes de fazer qualquer coisa iremos precisar de uma página Web. E a seguir você tem uma página, a
mais básica possível.
<html>
<head>
</head>
<body>
Esta é a minha página Web
</body>
</html>
Temos aqui três conjuntos de 'tags' - as tags, normalmente são aos pares, mas nem sempre é assim.
Englobando toda a página temos o par de tags <html>...</html>. A primeira <html> é a 'tag de abertura' e
a 'tag' de fechamento é a mesma com uma / (barra) entre o sinal de 'menor que' (<) e html.
Dentro da tag <html> existem mais dois pares de tags.
<head>...</head> contém informações que não foram ainda colocadas no nosso exemplo, a mais
importante destas informações é o título da página que aparece na barra de títulos do navegador. Você
dá um título a sua página, escrevendo-o dentro da tag title, como mostrado a seguir...
<html>
<head>
<title>Minha Página</title>
</head>
<body>
Este é o conteúdo da minha página Web!
</body>
</html>
O par de tags <body>...</body> engloba todo o conteúdo da sua página Web, texto, imagens, filmes
Flash - e tudo mais. Você poderá digitar no seu editor de texto, na janela de código do seu editor
WYSIWYG - ou mesmo copiar colar o código da página básica mostrado acima.

Manual de Programação
Bem, agora temos uma página Web que é bem renderizada em qualquer navegador - depois que você
tiver 'salvado' ela. Dê a ela o nome de 'index.html' pois este é o nome apropriado para a primeira página
de qualquer Web site. Você poderá salvar o arquivo em qualquer lugar no hard disk do seu computador,
mas para tornar as coisas claras e em ordem, crie um novo diretório para salvar sua página Web.
O caminho normal para abrir sua página em um navegador é usar a opção 'Abrir' ('Open') no menu
'Arquivos' ('File') mas há um modo mais rápido. Crie um 'shortcut' do seu arquivo no desktop. Dali você
poderá arrastar o ícone do 'shortcut' direto para a janela do navegador e sua página será carregada e
mostrada!
Sua página deverá se parecer com esta »
Ainda que seja uma maravilha, sua página Web não possui um ingrediente vital - o conteúdo. Não há
sentido em uma página Web se ela não diz nada (ou outra coisa senão "Este é o conteúdo da minha
página Web!") mas isto eu vou deixar por sua conta.
Qualquer conteúdo deve ser colocado entre o par de tags<body>...</body> para que o navegador possa
renderizá-lo.

Encher de textos a página, assim como ela está, não dá uma estrutura e nem estiliza os textos. Por não
dar estrutura eu quero dizer que os textos simplesmente fluem da esquerda para a direita, de cima para
baixo, que as palavras não tem outra ênfase particular que não seja a ordem natural em que são escritas.
Faria muito mais sentido grupar palavras e sentenças em parágrafos, títulos, sub-títulos - bem, você deve
saber, aquelas coisas básicas de estruturação de textos que se aprende na escola.

Browsers ignoram qualquer pulo de linha ou parágrafos que você insira em uma porção de texto. Eles
ignoram também tabulações e até múltiplos espaços entre palavras que são interpretados como um
espaço único.
É útil em qualquer porção de texto marcar títulos, sub-títulos, alguns parágrafos e talvez até uma
assinatura final.
Em HTML, existem diferentes tags de marcação que se constituem no mecanismo apropriado para
estruturar os textos.
Cria-se um parágrafo, colocando texto entre o par de tags <p>...</p>. Em HTML, um parágrafo é um
bloco constituido de uma ou mais sentenças separado do próximo bloco por um espaço - tal como este
paragráfo que você vê aqui.
Para títulos, existem seis níveis distintos de ênfase, indo desde o mais alto nível <h1>...</h1> até o mais
baixo <h6>...</h6>. Eles são como mostrados a seguir...
Como você pode notar diminui o tamanho quando cresce o número que indica o nível sendo que o h4
equivale aproximadamente ao tamanho de texto chamado 'small' (pequeno). h5 e h6 são 'smaller'
(menor)
,mas em negrito.

Existem outros truques que podemos usar para dar ênfase a palavras ou frases. Antes de considerar
como eles devem ser apresentados (como deve se parecer), considere acima de tudo sua função.
Bold (negrito) é uma variante mais destacada que o texto normal e marcada com o par de tags
<b>...</b> contudo, trata-se de um estilo de apresentação para impressão e na Web é preferível usar-se
strong <strong>...</strong>. Embora elas (tags bold e strong) se pareçam iguais quando renderizadas na
tela de um monitor, o HTML deverá servir a outros dispositivos também. Softs leitores de tela usados por
pessoas portadoras de necessidades especiais para visão, entenderão perfeitamente <strong> e lerão
com a devida ênfase.
Você deve saber que itálico é conseguido com a tag <i>...</i>. E aqui também, é melhor você não se
utilizar de estilização visual, mas usar <em>...</em>. Este par de tags dá a funcionalidade do itálico ao
texto independentemente do dispositivo em uso.

Sublinhado pode ser conseguido com o par de tags <u>...</u> , mas sublinhados na Web tem um
significado especial. Usualmente indica um link. É melhor não usar sublinhado para enfatizar, pois esta
prática poderá confundir o visitante do site.
Uma importante tag é a de quebra de linha <br>. Ao contrário de outras tags, esta não requer uma tag de
fechamento, aliás tag de fechamento neste caso não faria qualquer sentido, não é mesmo?

Usando estas tags básicas de marcação, o texto começa a tomar forma. Ele se assemelhará a um texto
produzido em um processador de texto.

Esta página básica provavelmente se parecerá um pouco diferente quando visualizada em diferentes

Manual de Programação
navegadores e computadores. Cada navegador tem o seu próprio estilo padrão e a menos que você
configure seu navegador ele usará os estilos padrão. Para sobrescrever os estilos padrão dos
navegadores, nós criaremos nossos próprios estilos que serão agrupados em uma 'folha de estilos'.

ETAPA NÚMERO 2 - FOLHA DE ESTILOS

Uma folha de estilos é conceitualmente bem simples, ela é uma página contendo definições ou
especificações de estilos, que instrui o navegador como apresentar os diferentes elementos de uma
página. Por enquanto, contenha sua curiosidade em saber o porquê de 'Cascata'. Eu voltarei a este
assunto mais tarde, quando começarmos a aplicar estilos no nosso HTML.
Para simplificar, começaremos construindo nossa folha de estilos dentro da própria página Web. Mais
adiante você descobrirá que pode ter sua folha de estilos em um 'arquivo externo de estilos' que pode ser
'chamado' por várias páginas, com a grande vantagem de se poder controlar através deste arquivo
mestre, os estilos de todas as páginas que lincam para ele.
Os estilos que iremos usar serão definidos dentro do par de tags <head>...</head> como mostrado a
seguir...
<style type="text/css" title="mystyles" media="all">
<!--
-->
</style>
Note o par de tags <style>...</style> e iremos explicar mais algumas coisas neste par.
type="text/css" diz ao navegador que estamos usando um arquivo de texto puro para descrever nossos
estilos, nada de especial aqui.
title="mystyles" tem por finalidade identificar seus estilos através de um nome de sua livre escolha.
media="all" aqui que as coisas começam a ficar interessantes. Você pode ter uma folha de estilos para
descrever como sua página será apresentada na tela de um computador (media="screen") e outra
completamente diferente para formatar sua página para impressão (media="print"). Existem outros tipos
de mídia, tais como 'projection', 'tv', 'braille' and 'aural' (projeção, televisão, escrita braille e áudio). Agora
você entenderá a lógica de não usar 'bold' e 'italic'. Por enquanto usaremos o tipo de mídia 'all' (todas as
mídias), que tem propósitos gerais.
Os caracteres <!-- e --> se constituem em um modo de se 'esconder' texto em uma página Web - você
verá os textos somente na marcação do código. Isto é denominado 'comentario', e uma vez que os estilos
estão dentro da seção <head>...</head> do documento, eles não deverão aparecer na apresentação.
A primeira coisa que faremos será definir os estilos para a página como um todo, o body da página. Tudo
que estiver dentro das tags <body>...</body> terá este estilo ou conjunto de estilos que lhe for aplicado.
Basicamente a definição de estilos para body se parece com...
body { }
body seguido por um par de 'chaves' { }.
Definiremos uma cor de fundo para a página...
Os navegadores por padrão, usualmente renderizam uma página na cor branca com textos na cor preta,
mas nós iremos definir um tom de cinza claro para o fundo da página. Abaixo a maneira pela qual
definimos uma cor de fundo para a página. Notar que não usamos sinal de igual '=' e sim dois pontos ':' .
body {background-color: #e8eae8 }
O que significa #e8eae8 ?
As cores na Web são definidas pela mistura de 256 tonalidades de vermelho, de verde e de azul em
diferentes proporções. Humanos tem dez dedos nas mãos e contam de dez em dez. Computadores foram
projetados para contar de dezesseis em dezesseis, não que eles tenham dedos, mas uma vez
ultrapassado o 9 (nove) não existe um numeral simples para representar 10, 11, 12, 13, 14, 15 assim
estes numerais foram substituidos por letras a, b, c, d, e , f. Desta forma, em um sistema de contagem
'hexadecimal' (base dezesseis) o 10 é representado pelo 'a' e o 15 pelo 'f'. Ao ultrapassar o 15, adicionase
mais um dígito e assim '10' representa o 16. Usando-se este sistema de contagem, qualquer número
entre 0 (zero) e 255 pode ser representado por dois números ou letras - 255 é ff. Então, #ffffff será o
branco e #000000 o preto.
A cor que escolhemos para nosso fundo é composta de vermelho e8(232), verde ea(234), azul e8(232). O
símbolo # ('tralha') indica que estamos usando numeração hexadecimal e não números decimais
ordinários.
Algumas vezes você encontrará a sintaxe com apenas três dígitos, por exemplo, #2a0. Isto é uma
abreviatura para #22aa00. Quando a cor é representada por uma numeração composta por três pares de
dígitos que se repetem dois a dois, você poderá omitir o segundo dígito que o navegador entenderá a
abreviatura.

Manual de Programação
Usando esta abreviatura com três dígitos você poderá obter 4096 cores diferentes, e com seis dígitos
mais de seis milhões de cores.
Com uso de um dígito por cor, vermelha, verde e azul, cada uma tendo 16 níveis de brilho é possível
combinações para obter todas as demais.
Se você estiver digitando seu código, esta técnica de usar abreviadamente três dígitos é bem mais
simples e eficiente.
De toda forma, vamos agora definir uma cor para os textos na nossa página, diferente da cor padrão
preta. Você poderá usar a ferramenta 'colour picker' do Photoshop (ou de outro programa gráfico) e
definir
então uma cor por um número hexadecimal de 6 dígitos...
body {background-color: #e8eae8; color: #5d665b }
Observe na regra acima que as cores do fundo e do texto estão separadas por um ponto e vírgula ';'.
Bastante cuidado com o uso apropriado de vírgulas e ponto e vírgulas pois a troca ou esquecimento delas
causará erros.
E agora, vamos definir margens ao redor da página para acertar o posicionamento dos textos
convenientemente na tela, vamos usar uma margem de 50px (margin: 50px) na definição das regras para
body. Esta nova definição separada da anterior por ponto e vírgula.
body { background-color: #e8eae8; color: #5d665b;
margin: 50px }
Agora tudo o que digitarmos na página será reprentado numa cor verde escura acinzentada sobre um
fundo cinza. Veremos adiante casos especiais em que iremos alterar isto.

ETAPA NÚMERO 3 - ESTILIZANDO TEXTO

Embora já tenhamos livrado nossa página do austero preto e branco, mudando para cores ao nosso
gosto, ainda podemos fazer muitas coisas. Podemos alterar o tipo e o tamanho das letras, o espaçamento
entre linhas e adicionar outros detalhes tal como indentação de parágrafos.

O estilo para fontes

Iremos trabalhar de início com o estilo das fontes (typeface) pois esta alteração fará uma diferença
marcante na página. Diferentemente de projetos para impressão, as páginas Web só conseguem mostrar
os tipos de fontes que estejam instalados na máquina do usuário, assim não podemos empregar no nosso
projeto um tipo de fonte de nossa livre escolha, mas teremos que escolher uma, dentre aquelas que mais
comumente encontram-se instaladas nos computadores - uma que venha pré instalada com o sistema
operacional. Isto limita consideravelmente nossa escolha. Você acabará descobrindo que está limitado a
duas ou três fontes do tipo serif (com serifas) duas ou três do tipo sans-serif (sem serifas) e uma do tipo
monospaced, (dactilográfica). Em lugar de escolher um tipo único de fonte, nós especificamos um
conjunto de fontes no pressuposto que uma delas esteja instalada no computador do usuário.
Abaixo um exemplo mostrando os tipos de fontes mais comuns pré instaladas em computadores Windows
e Machintosh. Você não pode assumir que a fonte que escolheu esteja instalada no computador do
usuário e por isso deverá fornecer alternativas.
A seguir uma especificação típica para escolha de uma família de fontes do tipo sem serifas.
font-family: Verdana, Geneva, Arial, sans-serif;
E, para fontes com serifas
font-family: Georgia, "Times New Roman", Times, serif;
Observe que nomes de fontes composto por mais de uma palavra devem ser escritos entre aspas -
"Times New Roman"
Vamos adicionar fontes sem serifas nos estilos para a nossa página e ver o que acontece.
Nossa página com fontes sem serifas »

O tamanho das fontes

A especificação do tamanho de fonte é um assunto controverso. Para impressão você poderá


tranquilamente especificar um tamanho em 'points' (pontos) e terá sempre aquele tamanho na
impressão.
A quantidade de espaço de impressão assim como as quebras de linha será sempre exatamente como
você as especificou. Na Web os tamanhos de fonte não seguem um padrão rígido variando de um
computador para outro, e em alguns casos, uma variação drástica. Dependendo do tamanho da tela do
usuário, do seu sistema operacional e do navegador usado um mesmo tamanho de fonte pode variar

Manual de Programação
desde de tão pequeno que se torne ilegível até tamanhos enormes semelhantes àqueles usados em livros
grandes, para crianças. Felizmente os navegadores permitem aos usuários definir suas preferências
pessoais de tamanhos, o que vem a atenuar as grandes variações, mas mesmo assim poderá haver
diferenças entre o que você projetou e espera, e aquilo que será de fato apresentado ao usuário.
Com a crescente popularidade dos dispositivos Wi-Fi (acesso sem fio) e portáteis, as condições de
navegação por sua página sofrerão uma mudança drástica nos próximos anos. Projetar hoje páginas Web
para o futuro implica em considerar designs fluídos que se auto adaptem aos diferentes tamanhos de tela.
Repita comigo, "A Web não é igual a uma impressora!"

Tamanhos relativos para fontes

Se você quer servir sua página Web ao maior número possível de usuários é melhor especificar um
tamanho de fonte relativo àquele escolhido como padrão pelo usuário. Várias são as maneiras de
especificar fontes relativas. Você pode usar percentagem (%) da fonte padrão do usuário ou uma unidade
de medida chamada 'em', o que é o mesmo que 100%. 1.2 em é o mesmo que 120%. A maneira
preferencial de especificar tamanhos relativos de fontes é através do método descritivo de tamanhos,
algo
parecido com a especificação de tamanhos de camisas ( T-shirt). 'Medium' (médio) é o mesmo que 100%
ou 1em. 'Smaller' (pequeno) é um tamanho menor que 'medium' e 'Larger' (grande) é um tamanho maior
que 'medium'. Há também os tamanhos x-small, xx-small, x-large e xx-large (algo como - extra pequeno,
super extra pequeno, extra grande, super extra grande). A vantagem deste sistema sobre as
percentagens e ems é que os navegadores não tornarão os textos ilegíveis. Você pode por exemplo,
especificar um tamanho de fonte de 0.7 em ou 70% e isto ficar perfeito no seu PC. Para alguém usando
um Mac com um tamanho de fonte definido smaller por padrão, 70% poderá resultar em um tamanho
ilegível. xx-small é o menor tamanho de fonte capaz de ser apresentado por um computador.
xx-largex-large large medium small x-small xx-small
xx-small type This type is small but not too small to render
This type is way too small This type is way too small>

Tamanhos absolutos para fontes

Se o público para o qual você projetar seu site for bastante específico e usa basicamente as mesmas
configurações e tipo de computador que o seu, você poderá especificar o tamanho de suas fontes em
pixels. Pixels não variarão muito de um para outro desktop e assim os tamanhos de fontes serão similares
quando não idênticos. Uma vez que você utilize laptops ou dispositivos portáteis ou mesmo monitores
com resolução muito alta, os tamanhos em pixel irão variar de acordo com o dispositivo usado.
Para que você tenha uma idéia exata destas variações, eu construi três parágrafos usando três métodos
diferentes para definir o tamanho da fonte - percentagens - tamanhos T-shirt e pixels. Na tela do meu
computador, usando um navegador Mozilla, os tamanhos são bem parecidos, mas poderão não ser para
você.
Para esta linha foi definido um tamanho de fonte de 85% do tamanho das fontes deste tutorial.
Esta linha foi definida com o tamanho de fonte x-small
Esta linha foi definida com um tamanho de fonte absoluto de 11px
Convém ressaltar que você nunca deverá usar 'points' para definir tamanhos de fonte para tela (screen),
use-o somente para impressão (print).

Espaçamento entre linhas

O espaçamento padrão entre linhas é de aproximadamente 120% do tamanho da fonte. Aumentar um


pouco este espaçamento em geral resulta em melhoria da legibilidade, especialmente se as linhas são
muito longas. Irei discutir esta questão mais adiante. Para a nossa página no estágio atual o comprimento
das linhas é determinado pela largura da janela do navegador, assim, talvez um pouco maior do que o
ideal.
Para definir o espaçamento entre as linhas podemos novamente optar por medidas relativas (% or ems)
ou absoluta (px). Neste exemplo eu defini para toda a página, a altura da linha (line height), que vem a ser
a altura do caracter (fonte) mais o espaço extra acima, em 180% do tamanho da fonte (small). Como as
definições de estilo para body estão crescendo, eu coloquei as regras, cada uma em uma linha diferente,
(isto não fará qualquer diferença para o browser) para que as regras de estilo fiquem mais fáceis de
serem lidas por humanos. É de boa prática sempre colocar um ponto e vírgula ao terminar de escrever
uma regra.

Manual de Programação
body {
background-color: #e8eae8;
color: #5d665b;
margin: 50px;
font-family: Verdana, Geneva, Arial, sans-serif;
font-size: small;
line-height: 180%;
}
Agora estamos com um página mais 'arejada'' »

Parágrafos

Tudo o que fizemos até agora afeta a página toda. Agora iremos ver como definir estilos para áreas
específicas da página.
Como eu já havia mencionado anteriormente, blocos de texto podem ser divididos em parágrafos para
facilitar a leitura. Existem várias maneiras de visualmente separar parágrafos uns dos outros. Você
poderá acrescentar espaços extras entre as linhas ou indentar a primeira linha.
Projetos tipográficos as vezes se utilizam de outras técnicas menos comuns tais como grandes
indentações ou mesmo exdentações (o oposto de indentação). Com CSS é possível conseguir todos
estes efeitos, mas por padrão o separador de parágrafos é o 'paragraph space' que equivale a metade da
altura da linha 'line-height'.
Para fazer com que um bloco de texto se transforme em um parágrafo, basta colocá-lo dentro de um par
de tags <p>...</p>. Para manipular os estilos a aplicá-los a um parágrafo, via CSS, nós adicionaremos p {
} logo a seguir às regras já definidas para body dentro da tag head. Dentro do sinal de chaves { },
acrescente esta declaração text-indent: 3em
<style type="text/css" title="mystyles" media="all">
<!--
body { background-color: #e8eae8;
color: #5d665b;
margin: 50px;
font-family: Verdana, Geneva, Arial, sans-serif;
font-size: small;
line-height: 180%;
}
p { text-indent: 3em;}
-->
</style>
Nossa página com parágrafos »
Observe que o primero parágrafo não está indentado - ele não foi colocado dentro das tags <p>...</p> e
em consequência em termos de HTML ele não é oficialmente um parágrafo.

Títulos

Eu já expliquei os seis níveis de títulos padrão do HTML. Nós não temos que ficar restritos a eles, pois
podemos redefiní-los de acordo com nossas necessidades. Novamente, isto é uma simples questão de
definir mais umas regras de estilo.
Títulos por padrão são grandes e em negrito com um espaçamento extra acima e abaixo. Lembre-se que
títulos dos níveis h1, h2 e h3 são maiores que o texto normal e dos níveis h5 e h6 são menores. Vamos
trabalhar com o título h3 e alterar sua fonte e cor.
h3 {color:#966b72;
font-family:Georgia,"Times New Roman",Times,serif;}
Agora estamos com títulos »
Você deve ter observado que eu adicionei uma linha em branco acima do segundo título. Se você
simplesmente colocar ali um parágrafo vazio <p></p> isto não vai funcionar pois sempre é necesário
existir alguma coisa dentro das tags. Colocar um espaço em branco dentro de <p></p> também não vai
funcionar pois o HTML ignora espaços em branco que não estejam entre dois caracteres. O que nós
precisamos ali é de um caracter invisível e o HTML nos disponibiliza um, chamado de 'non-breaking
space' que é escrito desta forma &nbsp; veja a seguir...
<p>&nbsp;</p>
O caracter 'non-breaking space' é bastante útil também para você evitar que certas palavras sejam

Manual de Programação
quebradas ao fim de uma linha - palavras como nomes de pessoas ou de instituições.

Dicas extras

Antes de passar para a próxima etapa vamos experimentar alguns 'truques' na nossa página.
Na tag body eu defini uma margem de 50px para os quatro lados (ao redor de toda a página). Nós
podemos definir margens diferentes para cima, para os lados direito e esquerdo e para baixo (top, right,
left e bottom). Para isto basta que se declare as margens separadamente como mostrado abaixo:-
margin-top: 70px;
margin-left: 120px;
margin-right: 50px;
margin-bottom: 70px;
Isto faz nossa página se parecer a uma página impressa, com uma margem maior no lado esquerdo.
Defini também na nossa página uma das palavras em negrito e outra em itálico. Atenção que o itálico
pode ser renderizado erroneamente em alguns computadores e tornar-se ilegível em tamanhos de fontes
pequenos.
Ver nossa página com textos estilizados »
Bem, agora você está com uma página onde acresentou algum estilo - sem muito esforço. Contudo a
página ainda se parece com um documento datilografado ou produzido em um processador de textos. A
seguir veremos algumas possibilidades interessantes de estilização para o layout.
Enquanto espera, você poderá fazer experiências com a página que acabamos de criar, modificando os
valores das declarações de estilos. Tente mudar os tipos e tamanhos de fontes e os espaçamentos entre
as linhas, porém o mais importante é que você carregue sua página em diferentes navegadores para
observar quão diferente sua página possa parecer.

ETAPA NÚMERO 4 - MAIS ESTILIZAÇÃO DE TEXTO

Antes de prosseguirmos com formatação de textos será interessante familiarizá-lo com alguns termos
básicos de tipografia.
Quando dizemos, tamanho de fonte ou em CSS font-size, estamos nos referindo à distância que vai
desde o topo de uma letra maiúscula tal como o 'A' até a base de uma letra que se estende o mais baixo
possível (letra descendente) tal como o 'p' ou 'y'. Existe ainda um espaço extra abaixo das letras,
chamado de 'leading'. Este nome vem do fato de as impressoras usarem este espaço como faixas para
colocação de uma guia ('lead') metálica com a finalidade de definir as entre linhas.
Hoje não usamos mais a 'lead', nós simplesmente determinamos o espaço total entre a base de uma linha
e a da linha seguinte. O espaçamento entre linhas em consequência vem a ser a altura da fonte mais o
espaço extra da 'lead'. Em CSS, dizemos line-height: 180%; com o valor especificado em percentagem,
ems ou pixels (px). Saiba mais sobre espaçamento de linhas, adiante.
Vertical-align permite ajustar a linha de base de letras individualmente dentro de uma palavra, mas esta
prática é bastante específica e usada em fórmulas matemáticas e não nos aprofundaremos muito nesta
propriedade agora. Para o exemplo mostrado abaixo eu poderia ter usado a marcação com as tags
<sup>2</sup> porém com CSS eu tenho muito mais controle..
E=MC2
CSS também possibilita o controle sobre o espaçamento horizontal entre as letras e as palavras.
Isto é apropriado para obter efeitos visuais em títulos.
TÍTULOESPAÇADO
letter-spacing: 0.5em; word-spacing: 0.5em

Projetando legibilidade.

Em épocas passadas em que os navegadores não ofereciam um bom suporte para as CSS um aspecto
de vital importância para formatação de textos, disponível até mesmo em máquinas de escrever mais
modestas, era impossível de se conseguir com a marcação HTML - trata-se do espaçamento entre as
linhas do texto, 'line spacing'. Quando o espaçamento entre as linhas de um texto é nulo ou muito
reduzido, a leitura torna-se difícil. Quanto mais longas forem as linhas tanto maior será a dificuldade de
leitura.
Linhas muito curtas provocam interrupções constantes na maneira natural de leitura da esquerda para a
direita.

Manual de Programação
Linhas mais longas que um tamanho considerado ideal são também de leitura cansativa e tornam difícil a
localização do início da próxima linha.
Para uma leitura confortável as linhas devem ter um comprimento entre uma vez e meia e duas vezes o
comprimento ocupado por todas as letras (minúsculas) do alfabeto - isto significa de 40 a 60 caracteres
ou de oito a dez palavras.
Se as linhas são mais longas, o aumento do espaço entre as linhas ajudará na legibilidade. Muitas das
antigas páginas web apresentam textos estendendo-se da esquerda para a direita, ocupando toda a
largura da tela, independente do tamanho do monitor. Alguns sites ainda adotam esta prática - e hoje em
dia as telas tornaram-se bem maiores.
Por padrão, há um espaçamento entre as linhas de um texto. Este espaçamento padrão é de
aproximadamente 20% do tamanho da fonte ('cap heigh't mais 'descender' ou seja, desde o topo de uma
letra maiúscula até a base de uma letra descendente - ver figura no primeiro título deste tutorial) . Com
CSS você poderá definir o espaçamento que desejar para as entre linhas. Se você está usando tamanhos
de fontes relativos, você poderá definir o espaçamento entre linhas como uma percentagem do tamanho
da fonte - font-size: 1em; line-height: 1.5em (o mesmo que 150%). Se você está usando tamanhos
absolutos você poderá definir o espaçamento entre linhas assim: font-size: 11px; line-height: 16px.
As especificações para este parágrafo são: font-size: small; line-height: 180% o que vem a ser
equivalente a uma vez e meia o espaçamento entre linhas de um processador de texto antigo.
Para uma demonstração, veja este exemplo onde o primeiro bloco de texto construido, não possui
margens e nem uma line-height (espaçamento entre linhas). As estilizações gerais para o body definem
somente o tamanho, família e cor das fontes, bem como a cor do fundo...
body {
color: #5d665b;
font-size: small;
font-family: Verdana, Geneva, Arial, sans-serif;
background-color: #e8eae8;
}
O bloco de texto logo a seguir está dentro de um par de tags <div>...</div>, e é como se fosse uma
página dentro da página. Tem uma margem esquerda de 250px e direita de 200px e o espaçamento entre
linhas foi definido em 180%. Estes estilos foram acresentados ao corpo da página por um processo
conhecido como herança ('inheritance'). Exatamente como uma criança herda as características de seus
pais, as quais serão passadas para seus filhos, em CSS, este processo de "cascata" também acontece,
com elementos herdando os estilos definidos para elementos que os contém.
<div style="margin-left: 250px; margin-right: 200px;
line-height: 180%">...</div>
As 'divs' contidas nas páginas são uma parte muito importante das folhas de estilo em cascata e veremos
mais detalhes sobre elas, adiante neste tutorial.

Contraste

Diferentemente de uma página impressa que você lê por reflexão de luz, uma página em uma tela monitor
tem sua luminosidade própria. As diferenças de brilho entre um texto preto e um fundo branco tem
magnitude muito maior em uma tela do que em uma página impressa.
Porções grandes de texto preto sob fundo branco podem ser comparadas a uma caminhada sob sol
intenso sem uso de óculos escuro. Em casos extremos você apertaria os olhos para diminuir o efeito da
claridade e muito provavelmente no geral iria se sentir desconfortável e até mesmo sem saber bem
porque.
Diminuir o contraste numa página Web, faz com que ela se torne mais confortável e menos estressante
para leitura. Mas por outro lado, se você exagerar acabará dificultando a leitura para pessoas com
restrições visuais.
Em um artigo como este, onde há uma considerável quantidade de texto para leitura, onde o usuário terá
que passar um período longo de tempo em frente a tela do monitor, é importante tornar a tarefa o mais
confortável possível.

ETAPA NÚMERO 5 – LISTAS

Outra técnica de formatação muito usada em páginas Web é a lista ('list'). Ela é como um parágrafo,
porém tem uns detalhes adicionais.
HTML define listas que podem ser do tipo com marcadores (bullets - listas não numeradas) ou listas
ordenadas <ul>...</ul> <ol>...</ol> com numeração no início de cada item da lista <li>...</li> . Cada tipo

Manual de Programação
de lista é fornecido com algumas opções, que podem ser definidas no HTML - <li type="square"> coloca
um marcador tipo um 'quadradinho', <li type="i"> coloca um numeral romano minúsculo.
Lista não ordenada padrão
· Item da lista não ordenada
· Item da lista não ordenada
· Item da lista não ordenada
Lista não ordenada com opção de marcador tipo 'quadradinho'
_ Item da lista não ordenada
_ Item da lista não ordenada
_ Item da lista não ordenada
Lista ordenada padrão
1. Ordered list item 1
2. Ordered list item 2
3. Ordered list item 3
Lista ordenada com opção de numeral romano minúsculo
i. Item 1 da lista ordenada
ii. Item 2 da lista ordenada
iii. Item 3 da lista ordenada
CSS possibilita mais opções e controle sobre as listas - basta você criar regras de estilo para ol ou ul .
ol {
list-style-type: lower-roman;
margin: 1em 0 1em 40px
}
O efeito destas definições de estilo é o mesmo que o de colocar a opção em cada item da lista no HTML
com a vantagem de proporcionar muito mais controle sobre as margens em volta da lista. Os quatro
valores : 1em 0 1em 40px são respectivamente para as margens de cima, à direita, em baixo e à
esquerda e podem ser definidos em ems, percentagens ou pixels.
Se você deseja controle sobre os itens da lista, você poderá definir as margens para eles também - para
aumentar o espaçamento entre eles por exemplo.....
ol li { margin: .5em 0 .5em 0 }
esta definição adiciona um espaço extra de 0.5 em acima e abaixo de cada item da lista ordenada. Para
uma lista não ordenada, bastaria você substituir o seletor por ul li .
E, melhor ainda, você pode definir seu próprio marcador usando uma imagem.
ul { list-style-image: url(smiley.gif) }
ul li { margin: 1em 0 1em 0}
· Se você gostou deste
· Vai gostar deste também
· E que tal este ?
E, por fim, uma imagem para cada item da lista...
<li style="list-style-image: url(icon1.gif);
margin: 1em 0 1em 0">Sabemos sobre pessoas</li>
<li style="list-style-image: url(icon2.gif);
margin: 1em 0 1em 0">Sabemos sobre imagens</li>
<li style="list-style-image: url(icon3.gif);
margin: 1em 0 1em 0">Sabemos sobre idéias</li>
<li style="list-style-image: url(icon4.gif);
margin: 1em 0 1em 0">Sabemos escrever</li>
· Sabemos sobre pessoas
· Sabemos sobre imagens
· Sabemos sobre idéias
· Sabemos escrever
Estilos definidos entre as tags head do documento aplicam-se à toda a página, o que não é o caso aqui.
Para aplicar estilos individualmente aos itens de uma lista, devemos definí-los nos itens ou 'inline'. Os
estilos são definidos na tag HTML de abertura <li> no corpo (body) da página. Notar que o IE6 (Windows)
coloca os ícones muito próximos ao texto do item. Eu adicionei um espaço em branco para compensar
isto, conforme mostro abaixo....
&nbsp; Sabemos sobre pessoas.

Manual de Programação
ETAPA NÚMERO 6 – LINKS

Na abreviatura HTML é de especial significado as letras HT para Hiper Texto (HyperText). Links em
palavras, frases ou imagens de uma página podem ser clicados para nos levar a outros lugares. Estes
outros lugares são chamados de "âncoras". Imagine navios ancorados no imenso mar que é a World Wide
Web formando uma cadeia composta de links conduzindo às âncoras do navio no fundo do mar. Os
navios estão ancorados em pontos específicos e não à deriva, o que facilita sua localização.
Cada página tem pelo menos uma âncora. Por padrão, está âncora localiza-se no topo da página, mas
você poderá iserir mais âncoras em qualquer lugar da página que precisar chegar por um link.
<a href="http://www.wpdfd.com/index.htm">
Este é um link para o topo da minha Home Page</a>
Assim, você tem um par de tags <a>...</a> mais uma marcação href="..." dentro da tag de abertura. Esta
é uma referência ao endereço do hipertexto ao qual você será conduzido.
Se você colocar uma âncora na página em um lugar específico - bem, na verdade a âncora deve ser
colocada imediatamente acima do lugar para o qual você irá - veja a seguir...
<a name="myanchor"></a>
Um par de tags <a></a> com um nome, por exemplo, name="myanchor" dentro da tag de abertura. Não
há nada dentro do par de tags.
Para ir àquele local ("myanchor") você acresenta mais o seguinte no fim do link...
<a href="http://www.wpdfd.com/index.htm#myanchor">
Este é um link para uma âncora na minha Home Page
</a>
Como você já deve saber, os links em uma página são visualmente diferentes do restante do texto com a
finalidade de serem facilmente identificados. Por padrão os links são na cor azul e sublinhados. Quando
você clica em um link eles mudam para a cor vermelha. Mais tarde quando você voltar àquele link sua cor
mudará novamente para púrpura, indicando que você já o visitou. Qualquer um que tenha navegado pela
Web percebeu rapidamente este comportamento dos links.
Por padrão são três os estados de representação dos hipertextos para links em HTML.
Link não visitado Link ativo (clicado) Link visitado
Observe que o cursor também muda. A seta padrão muda para uma 'mãozinha' quando aponta-se
sobre o link.
Certamente, como 'designers' não estamos satisfeitos com o visual padrão dos links. Texto sublinhado
pode ser prático mais é feio. O essencial é que o link seja destacado do restante do texto para mostrar-se
que ali há algo especial. O contexto então torna-se um fator importante. Alguns textos são óbvios que se
constituem em um 'menu' de opções quer estejam ou não sublinhados. Seu destaque e a posição que
ocupam na página e mais o fato de que aparentam convidá-lo a ir a algum lugar dão uma indicação
precisa da sua função.
De maneira semelhante, deve haver uma boa razão para uma palavra ou frase dentro de um texto ter um
visual diferente. A razão pode ser para dar ênfase, mas aqui novamente é o contexto quem vai dar uma
indicação e também o fato de outras palavras ou frases terem o mesmo tipo de alteração no visual. Isto
não vai funcionar se cada link tiver uma cor diferente.
CSS permite estilizar o visual dos links. Links não precisam ser sublinhados e nem azuis. Tudo que temos
a fazer é estabelecer definições para as âncoras - 'a'.
a:link { color: #696;text-decoration: none }
na definição acima a cor do link foi alterada e o sublinhado retirado com a definição text-decoration:none
Se você quiser mudar a cor do link visitado faça assim...
a:visited { color: #699; text-decoration: none }
CSS ainda permite estilizar um estado de link chamado 'hover'. Neste estado - quando o ponteiro do
mouse é passado sobre o link - mudei a cor do texto do link o que também fornece mais uma informação
adicional de que ali está um hipertexto para link.
a:hover { color: #c93; text-decoration: underline }
Neste estado, o sublinhado reaparece temporariamente enquanto o ponteiro está em cima do link, se
assim você desejar.
O estado 'active' do link acontece quando você clica. Normalmente o link muda de cor e em alguns
navegadores também aparece uma borda em volta do texto do link.
Para definir regras de estilo que se apliquem a todos os links de uma página você deve colocá-las dentro
das definições de estilo na tag head da página como mostrado abaixo.
a:link {color: #696; text-decoration: none;
background-color: transparent}
a:visited {color: #699;text-decoration: none;

Manual de Programação
background-color: transparent}
a:hover {color: #c93;text-decoration: underline;
background-color: transparent}
a:active { color: #900;text-decoration: underline;
background-color: transparent }
A ordem (sequência) que você escreve as definições de estilos para links é muito importante.
Normalmente a ordem não importa em CSS, mas neste caso é importante que a:hover e a:active venham
por último, caso contrário não funcionarão.
Agora um outro estado para links não endossado pelas CSS.
Este é um link 'morto'. Ele não faz nada. Se você tem um link na sua página que leva a mesma página,
bem, não faz muito sentido clicar em link que leve para o mesmo lugar. Isto é como um sinal, instruindo
você a dar uma volta para ir ao lugar em você já se encontra.
Existem duas maneiras para tratar esta questão. Você poderá destacar o link de um modo visual diferente
dos outros links ou torná-lo invisível indicando assim que ele é um link não válido. Está técnica é chamada
de 'greying out' e você já deve ter visto isto em ação em outros programas instalados no seu computador.
Afinal, porque manter o link morto se ele não é uma opção válida?
Bem, um dos princípios mais importantes de projeto de interfaces diz que você deve manter as coisas o
mais consistente possível. Se você remover um item de uma menu por exemplo, os demais itens vão
sofrer um deslocamento de sua posição inicial. É menos confuso para o usuário uma interface que se
mantém sempre a mesma e inalterada.
Um outro elemento disponível é a cor do fundo do texto. Algumas vezes os 'designers' mudam a cor do
texto do link para o estado hover e/0u ative, simulando uma marca de iluminação.
Existem muitos outros efeitos que você pode conseguir com CSS para os links, nós apenas demos uma
partida aqui e você poderá agora começar com suas experiências. Esta página exemplo demonstra os
princípios que você aprendeu aqui..

ETAPA NÚMERO 7 - BOXES CSS

Vimos que um texto na Web pode ser dividido em títulos e parágrafos através da marcação HTML. Vimos
também como podemos definir estilos ao nosso gosto, de modo a sobrescrever os estilos padrão. Vamos
agora ver como definir estilos que possibilitam ir além do que permite o HTML e construir layouts mais
interessantes.
O corpo ('body') da página é a área total visível, mas conforme eu mostrei na etapa número 3, é possível
compartimentar a página em pequenas divisões com seus estilos próprios. Estas divisões podem ser tão
pequenas quanto um caracter ou grandes o suficiente para acomodar porções retangulares inteiras de
uma página. Tudo o que temos a fazer é englobar entre o par de tags <div>...</div> a área que
pretendemos transformar em uma divisão. Tais áreas, são como uma mini página que em CSS são
chamadas de boxes CSS. Boxes CSS se constituem na unidade básica de construção de layout de uma
página Web e eu passarei a explicá-los com detalhes pois eles são muito importantes.
Boxes CSS podem ter uma largura e uma altura (width e height), uma cor de fundo ou até mesmo uma
imagem de fundo que pode se repetir constituindo um padrão de preenchimento. Um box CSS por padrão
estende-se da margem esquerda à margem direita do corpo da página. Se você não especificar uma
margem para o corpo da página (body) um box CSS ocupará toda a largura da janela do navegador. Se
você não especificar uma altura para um box CSS ele não terá altura (será considerada zero). Ao colocar
texto dentro do box ele se expandirá em altura de modo a acomodar o texto colocado - ou uma imagem.
Para manter o texto afastado das bordas do box você deve usar o enchimento - padding...
Você deverá tomar precauções ao usar padding pois ele se comporta de maneira diferente no navegador
Microsoft Internet Explorer. Ao contrário do que foi mostrado no diagrama acima o IE coloca o padding
dentro do box, e em consequência seu comprimento e altura não se alteram. Todos os demais
navegadores colocam o padding fora do box, adicionando seus valores ao comprimento e altura do box.
Assim o seu box sofrerá alterações de acordo com o navegador em que for visualizado e isto poderá
trazer resultados desastrosos quando você depende de maior precisão.
Além dos limites do padding você poderá ter uma borda...
Bordas estão disponíveis em uma variedade de estilos e você poderá definí-las separadamente para cada
lado, em termos de espessura, estilo e cor. Elas são mostradas com pequenas diferenças de acordo com
o navegador em que são visualizadas, a seguir como elas aparecem no navegador Mozilla...
A espessura da borda aumenta o comprimento do box.
Para separar um box de outro usamos as margens.
Margens e paddings costumam ser confundidas pois o que nós chamamos de margem de uma página de
um livro ou de uma página Web, na verdade é um 'padding' porque obviamente este espaçamento não

Manual de Programação
poderia ficar fora da página. Lembre-se que este caso é especial. Para o body de uma página Web, as
margens são contadas para dentro e para todos os demais boxes CSS são contadas para fora do box.

Posicionamento absoluto

Além de ter um comprimento e uma altura os boxes CSS podem ser colocados em qualquer lugar da
página através da definição CSS position: absolute; Posicionamento absoluto é um conceito fácil de se
entender, pois é assim que as coisas funcionam na vida real. Por exemplo: a localização de uma casa
poderia ser descrita assim; à 50 metros da Rua Norte e à 100 metros da Rua Leste.
A maneira mais simples de posicionar um box seria definir algo como top:50px; left:100px (topo: 50px;
esquerda: 100px) mas não necessariamente terá que ser top e left, poderá ser top e right (topo e direita),
bottom e left (fundo e esquerda) ou bottom e right (fundo e direita).
Aqui você tem alguns boxes CSS estilizados e cada um deles com as definições de estilo mostradas. As
possibilidades de estilizações são infinitas.
Boxes com dimensões definidas e posicionados de forma absoluta, são semelhantes a recortes de
notícias e imagens de jornais que se faz para montagem de um álbum de recortes. O problema é que tais
álbuns permanecem com suas dimensões fixas - Páginas Web, não.

Posicionamento relativo

Se você quiser descrever a posição da porta da casa do seu vizinho você poderia dizer que ela encontrase
a 70 metros da Rua Norte e a 100 metros da Rua Leste, ou ainda, dizer que ela localiza-se a 5 metros
da sua casa. Posicionamneto relativo considera que boxes CSS localizam-se próximos a um outro box. O
primeiro box ocupa a posição mais acima, o próximo box localiza-se abaixo do primeiro, o seguinte abaixo
deste. Eles efetivamente flutuam colocando-se de cima para baixo na página. Este exemplo é um pouco
fora da vida real, mas imagine-se dentro de uma piscina coberta onde uma pilha de colchões de ar
flutuassem, o primeiro colaria na cobertura, o seguinte em baixo dele e seguinte em baixo e assim por
diante.
Para fazer com que boxes flutem um ao lado do outro em lugar de em baixo, você definirá float: left; ou
float: right; à semelhança dos colchões de ar na piscina coberta, os boxes vão flutuando um ao lado do
outro enquanto houver espaço lateral. Acabado o espaço lateral eles ocuparão a posição abaixo daqueles
que já flutuaram, começando uma nova camada. Você poderá evitar uma situação destas assegurandose
que a soma total das larguras dos boxes não ultrapasse a largura da página. Isto pode ser feito
especificando-se as larguras ('width') em pixel - mantendo a soma total abaixo da largura do navegador.
Ou ainda, definir as larguras em percentagens, mantendo a soma total igual a 100 - ou preferencialmente
um pouco abaixo de 100. Ao posicionar de maneira relativa, evite misturar pixel com percentagem, pois
os resultados podem ser imprevisíveis.
Esta página de exemplos para boxes flutuantes mostra o comportamento de boxes posicionados de
maneira relativa em colunas simples e múltiplas.

ID's

Ao criar seus boxes com definições de estilos segundo suas necessidades, não estarão disponíveis
elementos HTML para adicionar à eles. Você terá que inventar os seus próprios.
Provavelmente haverão alguns ou talvez muitos boxes CSS <divs> em uma página e assim devemos
darlhes
nomes que os identifique. Isto é feito através de um 'identificador' - que abreviadamente
denominamos id. Uma id deve ser única por box e identifica um box na sua página, permitindo que tanto
você quanto o navegador saibam como apresentar o box com aquele nome.
Um exemplo simples ocorre quando você divide sua página em três áreas horizontais. Um topo ('header')
contendo um logotipo e uma barra de navegação. A seção do meio a seguir contém textos e imagens. E
embaixo teremos o rodapé ('footer') com os direitos autorais e uma reprodução da barra de navegação
superior.
Este exemplo foi construido com 5 (cinco) boxes horizontais, sendo os dois boxes a mais, para a barra de
navegação e o logotipo, que foram posicionados logo abaixo do topo.
Observe que a margem à direita é menor que à esquerda para compensar visualmente as diferenças de
comprimento das linhas à direita, proporcionando melhor noção de centralização.
Nas definições de estilos usamos um símbolo # ('tralha') antes do nome que identifica 'id' o box.

Manual de Programação
#header {...}
#navbar {...}
#logo {...}
#midsection {...}
#footer {...}
Então colocamos as definições de estilo para o box, dentro de sua respectiva 'id' como mostrado abaixo...
<div id="header">...</div>
<div id="navbar">...</div>
<div id="logo">...</div>
<div id="midsection">...</div>
<div id="footer">...</div>

Caso tenhamos declarado estilos para o corpo da página 'body', nossos boxes herdarão aqueles estilos.
Qualquer estilo que você declare para o box tem prioridade sobre aquele declarado para 'body'. Isto é o
efeito 'cascata'.

Classes

Em alguns casos você irá se utilizar do mesmo box por várias vezes em uma página. Suponha que você
queira dividir a seção central da página mostrada em dois ou mais boxes separados. Neste caso
poderemos reutilizar um box em lugar de criar vários. Um box que pode ser reutilizado é nomeado com
uma classe. Exatamente como se tem 'classes' de flores ou insetos, uma classe aqui é basicamente um
mesmo box com conteúdo diferente. Para mostrar que temos uma 'classe' e não uma 'id' única, usamos
um . (ponto) em lugar de uma # ('tralha').
.midsection {} pode ser agora usado quantas vezes quisermos e a sintaxe para a div é conforme mostrado
abaixo...
<div class="midsection">...</div>
<div class="midsection">...</div>
<div class="midsection">...</div>

Span

Classes (mas não IDs) podem ser aplicadas em fragmentos de textos. Se desejarmos que algumas
palavras do texto tenham a cor vermelha, criamos uma classe chamada .redtext
.redtext { #c00 }
<span class="redtext">This is red text!</span>
Em lugar de colocar as palavras que queremos em vermelho, dentro de <div>...</div> , usamos
<span>...</span>. Isto é conhecido como elemento inline por aplicar-se a uma porção de texto dentro de
uma <div>...</div>
Use <span>...</span> sempre que você quiser estilizar diferentemente uma porção de texto que difere do
texto como um todo. Isto pode ser para cor, família de fonte, tamanho, peso ou qualquer outra
propriedade.
Assim, em CSS, existem elementos nível de bloco que são boxes com uma única ''id' ou uma 'classe'
reutilizavel. Podemos ainda ter os elementos inline que se referem a um nível de caracteres.
Agora estamos começando a chegar em algum lugar.

ETAPA NÚMERO 9 - JUNTANDO TUDO

A mais simples das páginas Web usará uma mistura de ids e classes e possivelmente uma combinação
de posicionamento absoluto e relativo. Vamos dar uma olhada na nossa página composta de cinco boxes
que estudamos na etapa número 8, e talvez, você queira dividir a seção central em colunas. Para isto
usaremos a declaração float:left tornando as coisas mais simples.
Uma coluna à direita, de largura reduzida, normalmente, é usada em uma página Web para menu de
navegação.
.leftcol {}
A coluna do meio é para o conteúdo principal .
.midcol {}
E, à direita uma outra coluna também de largura reduzida, usada para links relacionados ou de
anunciantes e parceiros.
.rightcol {}

Manual de Programação
Todas as três colunas terão sua largura definida em percentagens de modo a que possam se ajustar de
maneira fluida à largura da página.
Observe que eu usei classes para nomear as colunas de modo a que poderei reusá-las mais adiante.
Este exemplo mostra a seção central única .midsection transformada em três colunas flutuando à
esquerda.
<div class="leftcol">...</div>
<div class="midcol">...</div>
<div classs="rightcol">...</div>
Esta técnica amplia e torna mais interessante a construção do layout.
Não deixe qualquer uma das divs sem conteúdo, ainda que elas tenham que ser preenchidas com
espaços vazios. Coloque espaços &nbsp; dentro delas.

Doctypes e validação

Chegamos a décima etapa das lições 'CSS desde o início' e eu tenho uma confissão a fazer. Tudo o que
eu mostrei para vocês até aqui, - marcação de códigos e páginas de exemplos estão todas erradas! Bem,
tudo provavelmente funcionou muito bem a menos que você esteja usando um navegador muito antigo,
contudo se você testar o que fizemos em um verificador de sintaxe ou submeter a uma programa de
validação, tudo que fizemos será reprovado.
O que é um programa de validação? deve estar você perguntando.
Você já deve estar familiarizado com o conceito de checador de sintaxe. Provavelmente existe um deles
no seu programa processador de textos. O checador compara as palavras que você digita, com uma lista
de palavras de um dicionário e alerta quando encontra alguma palavra que não está no dicionário. Pode
ser que a palavra não esteja listada no dicionário, mas também pode ser que você tenha digitado errado.
Em processadores de textos mais sofisticados é possível checar a gramática, a existência de verbo em
uma frase, alertar para o uso repetido de uma mesma palavra 'e' importuná-lo incessantemente.
Para que um checador de palavras ou de gramática possa funcionar a contento, ele precisa saber qual é
a 'linguagem' usada. O meu checador de inglês da Inglaterra é diferente do inglês dos EUA - e se você
não estiver nos EUA?
Assim como suas escritas em inglês ou seja lá qual for o idioma usado é checado pelo processador de
texto, o HTML e as CSS podem e devem ser checadas também. Se você comete um erro na sua escrita,
as pessoas provavelmente julgarão tratar-se de um erro de datilografia, mas entenderão o que você quis
dizer e não haverá prejuizo para o entendimento. Um pequeno deslize no HTML ou nas CSS, por outro
lado, é uma história diferente. Algo aparentemente insignificante como uma vírgula ou uma aspas fora do
lugar, pode fazer toda a diferença entre uma página funcionando ou não - isto dependerá do erro e de
como o navegador tratará o erro. É uma boa idéia submeter seu HTML e as CSS a um checador de
sintaxe ou a um validador.
Uma das vantagens de se utilizar um editor de HTML decente é que ele vem com um checador de sintaxe
embutido. Você não dispõe de checadores em editores de textos simples e de propósitos gerais. Se você
possui um editor tipo HomeSite ou BBEdit ou um editor WYSIWYG tal como o Dreamweaver ou GoLive,
você terá um checador e ainda sugestões de como corrigir erros. Se você não possui um editor assim,
poderá usar um validador online fornecido pelo W3C - Validador HTML do W3C - Validador CSS do W3C
- onde você faz o upload de seu arquivo e obtém de imediato um relatório de erros ou de não existência
de erros!
É evidente que o programa tem que saber qual é a 'linguagem' que foi usada na marcação - existem
várias versões ('linguagens') do HTML. Todos os exemplos que mostrei, foram escritos usando o HTML
4.01 - esta é a versão atual e a mais utilizada. Existem sub-versões do HTML 4.01 - 'Strict', 'Transitional' e
'Frame Set'.
Strict é um conjunto de regras muito rígidas que definem o que pode e o que não pode ser escrito em
HTML.
Transitional é um conjunto um pouco mais flexível e permite escrever algum HTML mais antigo e para
algumas peculiaridades próprias de navegadores.
Frame Set não é muito usado nos dias atuais. Não temos nos utilizado do uso de 'frames' pois eles estão
em desuso desde o aparecimento das CSS.
A maioria das pessoas está satisfeita com o uso de 'Transitional' pois ele não é tão rígido com a
marcação, outras gostam de fazer tudo conforme 'reza o manual' e preferem usar 'Strict'.
Para dizer ao navegador qual a linguagem de marcação e a sub-versão que você está utilizando, coloque
a declaração de DocType logo no início da marcação, no topo da página - acima da tag de abertura
<html>. Assim como mostrado abaixo...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD

Manual de Programação
HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
Não vou analisar a declaração agora, basta que você saiba por enquanto que esta declaração no topo da
página fornece ao validador as informações necessárias para ele fazer seu trabalho de validação. Agora o
validador saberá quais são as regras (normas) você esta utilizando na marcação e poderá fazer as
análises necessárias.
Ao adicionar o DocType, poderei checar minhas páginas em um editor de HTML que forneça esta
facilidade e estar seguro de que terei um código limpo. Agora que já sabemos da importância do Doctype,
podemos voltar ao assunto estilizações.

ETAPA NÚMERO 10 - FOLHAS DE ESTILO EXTERNAS

Todas as folhas de estilo que construi até agora, foram colocadas dentro da seção <head> das páginas.
Este procedimento facilita o entendimento, pois basta olhar o código de marcação da página e ver como
foram definidas as regras de estilo. Tudo está colocado em um único lugar. Contudo é muito raro termos
páginas isoladas, o mais comum é que tenhamos várias páginas com uma apresentação semelhante em
todo o Web site.
Em lugar de colocar as folhas de estilo repetidamente em cada uma das páginas construidas, seria uma
boa idéia que tivessemos uma única folha de estilos que pudesse ser lincada a cada uma das páginas.
Isto permite mudar a cor de fundo das páginas ou usar um tipo ou tamanho de fonte diferente para todo
o
site, bastando que você faça a alteração na folha de estilo 'mestre'. De fato, você pode mudar
completamente a apresentação de todo o site, alterando apenas um arquivo.
Dê uma olhada em http://www.csszengarden.com/ para ver este princípio em ação. Vários designers
construiram suas folhas de estilos para uma página padrão e isto demonstra de uma forma admirável
como pode-se projetar os mais variados 'skins' para um mesmo 'esqueleto' da página, alterando
completamente suas características. Para fazer uso de uma folha de estilo externa, basta lincá-la ao
documento como mostrado a seguir:
<link rel="stylesheet" href="basicsstyles.css"
type="text/css" media="screen">
Isto diz ao navegador para procurar as especificações de estilo em um arquivo chamado
'basicsstyles.css'. Trata-se de um arquivo de texto puro - type="text/css" e os estilos foram otimizados
para apresentação em uma tela de computador - media="screen".
As folhas de estilo não estão limitadas às telas de computador, você poderá criá-las para servir a outras
mídias como, impressão, projeção e até mesmo braille. Se você pensar sobre isto, concordará que uma
folha de papel para impressão não tem o mesmo formato de uma tela de computador e ninguém gosta de
desperdiçar preciosas quantidades de tinta em áreas preenchidas com cores sólidas, quando tudo o que
se quer impresso é um texto em preto e branco. Uma folha de estilo para impressão deve especificar uma
área de impressão compatível com uma folha de papel e ao contrário de estilizações para a tela deverá
usar tamanhos de fontes em 'points' (pt). Esquemas coloridos devem ser minimizados ou mesmo
abandonados completamente. Então tudo o que você precisar fazer é adicionar outro link na seção
<head> do documento, imediatamente abaixo daquele para mídia tela.
<link rel="stylesheet" href="printstyles.css"
type="text/css" media="print">
Se você decidir que sua folha de estilo serve tanto para tela como para impressora, você poderá usar um
link como mostrado a seguir...
<link rel="stylesheet" href="styles.css"
type="text/css" media="all">
Embora a maioria das minhas folhas de estilos sejam do tipo externa, eu começo meus projetos com a
folha de estilo declarada no próprio documento. Quando eu estou satisfeito com as definições de estilo
que construi copio-colo a folha em um arquivo novo e coloco um link para ele na página.

ETAPA NÚMERO 11 - ESTILIZANDO TABELAS

Embora as tabelas venham sendo usadas para layout desde as eras negras da Web, penso que devo
mostrá-las aqui, para mostrar que layout construido com CSS oferece muito mais escopo e versatilidade.
Tabelas tem por razão de ser e finalidade, a apresentação de dados tabulares, aquelas coisas que
normalmente são colocadas em 'folha de dados' onde você precisa de linhas e colunas para relacionar
textos ou mesmo figuras.
Nos tempos antigos (e de navegadores hoje ultrapassados) você alterava a apresentação de uma tabela

Manual de Programação
e de suas células, usando várias propriedades - cores de fundo, imagens de fundo, etc. Uma grande
quantidade destes atributos atualmente está em desuso e há algum tempo já não são mais válidos - muito
embora eles hoje ainda funcionem, para o futuro é bom não contar com eles. Na verdade é melhor que
você não conte com eles desde já. Se você tentar colocar uma imagem de fundo que seja renderizada no
Netscape 4 ou anterior tera que repetí-la para cada célula individualmente, como se tivesse dividido a
imagem em múltiplas partes, tornando a tarefa pouco usual e frustrante.
A prática usual de definir uma altura e uma largura para a tabela em pixel ou em percentagem não é mais
válida. Tabelas devem se auto ajustar em dimensões ao seu conteúdo.
A estilização de tabelas com CSS tem seus macetes próprios e nem sempre é simples e imediata. Você
poderá construir sua estrutura de tabela usando display:table; and display:table-cell; no qual cada célula é
uma div, e para fins de estilizações usar os elementos HTML de tabelas - table , tr , td , th , etc - com a
finalidade de facilitar a tarefa.
tr é uma linha da tabela, uma fila horizontal de células. td e uma divisão de uma linha da tabela. Você
deve estar pensando em coluna, mas o comportamento não é de coluna e você não pode colocar uma
imagem de fundo na coluna ou estilizar.
As tabelas herdam alguns estilos das DIV's em que forem colocadas, alguns, mas não todos os estilos.
Se você definir font-family: verdana, arial, sans-serif e color: #009 , para o corpo (body) de sua página, as
tabelas herdarão estas definições, mas não herdarão tamanhos de fontes e nem alinhamentos de textos.
Há também uma hierarquia para os elementos de tabelas. Uma definição para td prevalece sobre uma
para tr, que por sua vez prevalece sobre aquelas para table. Você pode tirar vantagem desta hierarquia.
Se você definir uma cor preta para fundo da tabela e uma cor branca para td e um cellspacing="2", você
terá uma tabela com com células brancas e uma borda preta de 2px ao redor.
Nota do tradutor: No original desta página o autor mostrou a seguir 5 tabelas estilizadas e comentadas,
com as regras de estilo para cada uma delas incorporadas na própria página. Como estou usando em
meu site marcação XHTML 1.1 que não admite alguns atributos usados pelo autor, criei uma página
separada para mostrar as tabelas estilizadas e assim continuar com minha página válida.
Veja o código fonte da página dos exemplos para estudar as regras de estilização das tabelas.
Ver Tabela 1. Esta simples tabela tem um fundo definido como transparent e uma cor cinza bem clarinha
pra o fundo das tds.
Ver Tabela 2. De acordo com os dados contidos na tabela você poderá dar maior ênfase às linhas
horizontais ou às colunas verticais.
Ver Tabela 3. Aqui um efeito de alto relevo em 3D conseguido através de definições de estilos para as
cores das bordas. Para as linhas do cabeçalho da tabela foi definida uma cor escura.
Ver Tabela 4. Usei um gradiente para as linhas do cabeçalho e uma borda esquerda na cor cinza clara
para separar as colunas.
Ver Tabela 5. OK, eu sou um fã de Mondrian, mas minha intenção aqui é demonstrar que se você quiser,
poderá estilizar as células da tabela individualmente.
As possibilidades de estilização de tabelas são muitas. Quem disse que as tabelas tem que ser
entediantes.

Manual de Programação

Você também pode gostar