Home Importante! História Tutorial HTML Glossário Faqs Buscadores Sinapse
Fóruns ASCII Cores JavaScript CSS Links Novidades Browsers Conclusão
  T u t o r i a l   D H T M L / C S S   E d a u r e l i o
            2 0 0 -  2 0 0 4

TABELAS I
 

        A tabela surgiu pela primeira no HTML na versão 3.2 e seu propósito foi melhorar o layout da página oferecendo recursos para posicionar seus textos e imagens semelhante as páginas dos jornais e revistas.

<TABLE>
  |__<TR>
  |   |__ <TH>
  |   |__ <TD>
  |__ <CAPTION>
  |__ <THEAD>
  |__ <TBODY>
  |__ <TFOOD>	
Basicamente uma tabela é composta por três tags:
<TABLE>...</TABLE> - Este é o elemento principal que estabelecce os limites da tabela. Dentro dele estão todos os demais elementos da tabela
<TR>...</TR> - Este elemento define a linha da tabela. PPara uma tabela, por exemplo, ter 4 linhas este atributo deve ser escrito 4 vezes.
<TD>...</TD> - Este define a célula da linha. Dentro dass células podemos inserir o texto, imagens, formulários e até mesmo outra tabela.

A seguir está um exemplo de uma tabela simples montada com estas 3 tags. Observe que para criar duas linhas tive que repetir o conjunto <TR>...</TR> duas vezes. Para criar 3 células em cada linha repeti o conjunto <TD>...</TD> 3 vezes em cada linha. E finalmente um conjunto de <TABLE>...</TABLE> envolvendo toda a estrutura. Só para lembrar a barra "/" antes da tag representa o fechamento dela.

Sintaxe
<TABLE BORDER>
<TR>
<TD>L1, C1</TD>
<TD>L1, C2</TD>
<TD>L1, C3</TD>
</TR>
<TR>

<TD>L2, C1</TD>
<TD>L2, C2</TD>
<TD>L2, C3</TD>
</TR>
</TABLE>
Resultado

L1, C1 L1, C2 L1, C3
L2, C1 L2, C2 L2, C3

Agora vamos nos aprofundar um pouquinho mais.

<TABLE atributos> ... </TABLE>

TABLE é o elemento principal que estabelece os limites de uma tabela. Ele pode conter os seguintes atributos:

BORDER="valor"
Define uma borda para a tabela. Se este atributo não estiver presente, a tabela será exibida sem bordas ou linhas separando as células. Quando é especificado BORDER sem nenhum valor, é criada uma borda de 1 pixel de espessura.

Sintaxe:
<TABLE>
<TD>Célula sem borda</TD>
</TABLE>
Célula sem borda

<TABLE BORDER>
<TD>Agora com BORDER = 1</TD>
</TABLE>
Agora com BORDER = 1

<TABLE BORDER="5">
<TD>Agora com BORDER = 5</TD>
</TABLE>

Agora com BORDER = 5

 

CELLSPACING="valor"
Controla o espaçamento entre as células de uma tabela ou torna as bordas mais grossas, se elas existirem. Valor absoluto em pixels.

Sintaxe:
<TABLE BORDER CELLSPACING="3">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

<TABLE BORDER CELLSPACING="10">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

<TABLE CELLSPACING="30">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

 

CELLPADDING="valor"
Controla a quantidade de espaço entre o conteúdo da célula e suas bordas, estando elas visíveis ou não. Valor absoluto em pixels.

Sintaxe:
<TABLE BORDER CELLPADDING="10">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

<TABLE BORDER CELLPADDING="30">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

<TABLE CELLPADDING="50">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

 

WIDTH="valor" & HEIGHT="valor"
Permite especificar a largura e altura da tabela, seja através de um valor absoluto em pixels ou através de uma percentagem da área da página. Para percentagem, utilize o sinal "%" após o número.

Os browsers Netscape v4.51 e Opera v5.02 não reconhecem os valores representados em %.

Sintaxe:
<TABLE BORDER WIDTH="60" HEIGHT="40">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

<TABLE BORDER WIDTH="60%" HEIGHT="40%">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>

célula 1 célula 2

Reduza a janela do browser e observe o efeito que isso causa aos dois exemplos acima. O exemplo 1 mantém o seu tamanho fixo, enquanto o exemplo 2 ajusta-se a % da janela reduzida.

 

BGCOLOR="#rrggbb" ou "nome"
Altera a cor de fundo da tabela ou apenas da célula conforme aonde ele for usado. Pode ser através do valor RGB ou através de um dos 16 nomes padrão VGA do Windows.

Sintaxe:
<TABLE BORDER BGCOLOR="#daa520">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

<TABLE BORDER BGCOLOR="#b0c4de">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

 

BACKGROUND ="diretório/nome do arquivo"
Coloca um arquivo de imagem como fundo da tabela ou da célula. Se o arquivo de imagem estiver no mesmo diretório do arquivo.htm onde a tabela é exibida você pode omitir o diretório no endereço do BACKGROUND.

Sintaxe:
<TABLE BORDER BACKGROUND="imagens/textura01.jpe">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

 

BORDERCOLOR ="#rrggbb" ou "nome"
Altera a cor das bordas da tabela.

Sintaxe:
<TABLE BORDER BORDERCOLOR="#4682b4">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

<TABLE BORDER BORDERCOLOR="red">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

 

BORDERCOLORDARK ="#rrggbb" ou "nome"
Altera a cor da sombra das bordas de toda a tabela ou de uma célula específica.

Sintaxe:
<TABLE BORDER BORDERCOLORDARK="#4682b4">
<TR>
<TD BORDERCOLORDARK="#FF6600">célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

<TABLE BORDER BORDERCOLORDARK="red">
<TR>
<TD BORDERCOLORDARK="#000000">célula 1</TD>
<TD BORDERCOLORDARK="#000000">célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

 

BORDERCOLORLIGHT ="#rrggbb" ou "nome"
Altera a cor da luz das bordas de toda a tabela ou de uma célula específica.

Sintaxe:
<TABLE BORDER BORDERCOLORLIGHT="#4682b4">
<TR>
<TD BORDERCOLORLIGHT="#CC33CC">célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

<TABLE BORDER BORDERCOLORLIGHT="red">
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

 

TABLE ROW    <TR atributos> ... </TR>

Linha de tabela. Todas as células são dispostas em linhas. O conjunto <TR>...</TR> deve se repetir conforme o número que linhas que se deseja criar. Table Row pode conter os seguintes atributos:

 

ALIGN="left, right" ou "center"
Controla o alinhamento horizontal do conteúdo das células na linha. Para habilitar ALIGN configurei o espaçamento horizontal da tabela com o WIDTH="300", para que haja o deslocamento horizontal do texto.

Sintaxe:
<TABLE BORDER WIDTH="300">
<TR ALIGN="center">
<TD>Texto no</TD>
<TD>centro</TD>
<TD>da linha</TD>
</TR>
</TABLE>

Texto no centro da linha

<TABLE BORDER WIDTH="300">
<TR ALIGN="right">
<TD>Texto</TD>
<TD>todo</TD>
<TD>à direita</TD>
</TR>
</TABLE>

Texto todo à direita

 

VALIGN="baseline, bottom, top" ou "middle".
Controla o alinhamento vertical do conteúdo das células na linha. Para habilitar VALIGN configurei o espaçamento vertical da tabela com HEIGHT="100", para que haja o deslocamento vertical do texto.

Sintaxe:
<TABLE BORDER WIDTH="180" HEIGHT="100">
<TR VALIGN="bottom">
<TD>Texto na</TD>
<TD>base da</TD>
<TD>linha</TD>
</TR>
</TABLE>

Texto na base da linha

<TABLE BORDER WIDTH="180" HEIGHT="100">
<TR VALIGN="middle">
<TD>Texto no</TD>
<TD>meio da</TD>
<TD>linha</TD>
</TR>
</TABLE>

Texto no meio da linha

 

BGCOLOR="cor"
Define a cor de fundo da linha envolvendo todas as células que estiverem nela.

Sintaxe:
<TABLE BORDER=1 WIDTH=60%>
<TR BGCOLOR="#B0C4DE">
<TD>Cabana</TD>
<TD>Temimina</TD>
</TR>
<TR BGCOLOR="#DAA520">
<TD>Pescaria</TD>
<TD>Ilusão</TD>
</TR>
</TABLE>
 

Cabana Temimina
Pescaria Ilusão

NOTA: Cabana, Temimina, Pescaria e Ilusão são nomes de grutas situadas no PETAR (Parque Ecológico e Turístico do Alto Ribeira), sul do Estado de São Paulo.

 

BORDERCOLOR="cor"
Define a cor da borda da linha.

BORDERCOLORDARK="cor"
Define a cor da sombra da borda da linha.

BORDERCOLORLIGHT="cor"
Define a cor da luz da borda da linha.

CHAR="caracter"
Define o caracter de alinhamento da célula que pode ser um ponto, uma vírgula ou caracteres tais como "=", "/", ":", etc. No exemplo abaixo usei um ponto como caracter de alinhamento.

CHAROFF="número"
Define o deslocamento do caracter de alinhamento da célula.

<TABLE>
<COLGROUP ALIGN=char CHAR="." CHAROFF="35%">
<TR><TD>880.76</TD></TR>
<TR><TD>7.032</TD></TR>
<TR><TD>13.48</TD></TR>
<TR><TD>542.23</TD></TR>
</COLGROUP>
</TABLE>
 
    880.760
        7.032
      13.480
    542.230

Este seria o efeito de alinhamento de uma tabela formatada com CHAR & CHAROFF se os browsers Internet Explorer, Opera e Netscape fossem compatíveis com estas tags, porém tive que simular o efeito com espaços vazios para apresentar este exemplo. Ainda não entendi como esses browsers, que já estão em suas respectivas versões 7.0, não aceitam algumas tags do HTML v4.01 (que foi lançado em 1999...).

 

TABLE DATA   <TD atributos> ... </TD>

Célula de dados da tabela. Pode conter texto, listas, elementos de formatação de caracteres, blocos, arquivos de imagem e também outras tabelas. Seus atributos são:

ROWSPAN=número
Especifica o número de linhas que a célula pode ocupar. O default é 1.

Sintaxe:
<TABLE BORDER=1 WIDTH=60%>
<TR>
<TD ROWSPAN=2 ALIGN="center">Cabana</TD>
<TD>Temimina</TD>
</TR>
<TR>
<TD>Pescaria</TD>
</TR>
</TABLE>

Cabana Temimina
Pescaria

COLSPAN=número
Especifica o número de colunas que a célula pode ocupar. O default é 1.

Sintaxe:
<TABLE BORDER=1 WIDTH=60%>
<TR>
<TD COLSPAN=2 ALIGN="center">Cabana</TD></TR>
<TR>
<TD>Temimina</TD>
<TD>Pescaria</TD></TR>
</TABLE>

Cabana
Temimina Pescaria

Agora a combinação entre as duas:

Sintaxe:
<TABLE BORDER=1 WIDTH=60%>
<TR>
<TD COLSPAN=2 ALIGN="center">Cachoeira Seca</TD>
<TD>Fraquinha </TD></TR>
<TR>
<TD ROWSPAN=2 ALIGN="center">Cabana</TD>
<TD>Temimina</TD></TR>
<TR>
<TD>Pescaria</TD></TR>
</TABLE>

Cachoeira Seca Fraquinha
Cabana Temimina
Pescaria

 

ALIGN=left, right ou center
Controla o alinhamento horizontal do conteúdo das células.

<TABLE BORDER WIDTH="300">
<TR>
<TD ALIGN="right">right</TD>
<TD ALIGN="center">center</TD>
<TD ALIGN="left">left</TD>
</TR>
</TABLE>

right center left

 

VALIGN=baseline, bottom, top ou middle
Controla o alinhamento vertical do conteúdo das células.

Sintaxe:
<TABLE BORDER WIDTH="140" HEIGHT="100">
<TR>
<TD VALIGN="bottom">bottom</TD>
<TD VALIGN="middle">middle</TD>
<TD VALIGN="top">top</TD>
<TD VALIGN="baseline">baseline</TD>
</TR>
</TABLE>

bottom middle top baseline

 

NOWRAP
Atributo Booleano evita que haja uma quebra de linha dentro da célula (se incluído significa verdadeiro, senão falso). O termo booleano provém do nome do matemático inglês George Boole (1815 / 1864), criador da álgebra booleana.

Este atributo, em conjunto com o atributo WIDTH, permite criar células com tamanho fixo. Assim quando o browser é redimensionado pelo usuário, as células terão sempre o mesmo tamanho ao invés de quebrar seu conteúdo em várias linhas. Abaixo segue duas tabelas comuns. A primeira configurada com NOWRAP e a segunda não. Aparentemente as duas são iguais, porém minimize a janela do browser e observe como as duas reagem.

Esta é uma tabela comum... com uma célula configurada COM o atributo NOWRAP.....

Esta é uma tabela comum... com uma célula configurada SEM o atributo NOWRAP.....

Tabela com NOWRAP
<TABLE BORDER>
<TR>
<TD NOWRAP WIDTH="200" ALIGN="center">Esta é uma tabela comum...</TD>
<TD NOWRAP WIDTH="200" ALIGN="center">com uma célula configurada</TD>
<TD NOWRAP WIDTH="200" ALIGN="center">COM o atributo NOWRAP.....</TD>
</TR>
</TABLE>

A sintaxe <TD NOWRAP WIDTH="200">...</TD> especifica uma célula de 200 pixels de largura cujo conteúdo não pode ter quebra de linha (text wrapping).

O browser Opera v5.02 não suporta o recurso NOWRAP.

 

WIDTH=valor
Controla a largura da célula, seja através de um valor absoluto em pixels, seja através de uma percentagem em relação à largura da tabela.

  width=10 width=80 width=120

<CENTER>
<TABLE BORDER>
<TR>
<TD WIDTH="10">&nbsp;</TD>
<TD WIDTH="10">width=10</TD>
<TD WIDTH="80">width=80</TD>
<TD WIDTH="120">width=120</TD>
</TR>
</TABLE>
</CENTER>
No exemplo repare que embora eu tenha configurado a primeira e a segunda célula com WIDTH=10, a segunda só diminuiu até o limite da largura do texto (uma palavra) inserido nela. Se o texto fosse uma frase então haveria quebra de linhas (aumentando sua altura) e a célula se ajustaria pelo tamanho da maior palavra. Este mesmo critério vale para HEIGHT, que ajusta a sua altura. Isso quer dizer que não existem barras de rolagens (horizontal ou vertical) em células de tabelas.
&nbsp; = Espaço vazio

 

BGCOLOR="#RRGGBB"
Define uma cor de fundo para a célula. No exemplo abaixo estou apresentando uma configuração de cores completa envolvendo TABLE, TR e TD.

Sintaxe:
<TABLE BORDER BGCOLOR="#228b22">
<TR BGCOLOR="#AFA790">
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
<TR>
<TD BGCOLOR="#87ceeb">célula 3</TD>
<TD BGCOLOR="#daa520">>célula 4</TD>
</TR>
</TABLE>
célula 1 célula 2
célula 3 célula 4

UMA DICA: Quando o texto não oferece um contraste muito bom com a cor de fundo basta posicionar o ponteiro do mouse sobre o texto e clicar 3 vezes. Isso altera o contraste e facilita a leitura. Aproveite e faça um teste no exemplo acima.

 

BACKGROUND="diretório/nome do arquivo"
Define uma textura de fundo na célula.

Sintaxe:
<TABLE BORDER BACKGROUND="imagens/textura23.jpe">
<TR>
<TD BACKGROUND="imagens/textura01.jpe">célula 1</TD>
<TD BACKGROUND="imagens/fundo3.jpe">célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

 

BORDERCOLOR
Altera a cor da borda de uma célula específica dentro da tabela.

Sintaxe:
<TABLE BORDER BORDERCOLOR="#4682b4">
<TR>
<TD BORDERCOLOR="red">célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

<TABLE BORDER BORDERCOLOR="red">
<TR>
<TD>célula 1</TD>
<TD BORDERCOLOR="black">célula 2</TD>
</TR>
</TABLE>
célula 1 célula 2

BORDERCOLORDARK e
BORDERCOLORLIGHT

Têm a mesma função que estes atributos em <TABLE> porém aqui eles são aplicados apenas em uma célula. Os exemplos já foram apresentados acima.

 

Um tabuleiro de xadrez (ou dama) feito com tabelas. Nele configurei no TABLE: BORDER=7, CELLSPACING="1"; e no TD: BGCOLOR="#ffffff"/"#000000", WIDTH & HEIGHT=30. Olhe como ficou:

               
               
               
               
               
               
               
               

 

TITLE HEADING   <TH atributos> ... </TH>

Este comando especifica um título centralizado e em negrito para cada coluna.

Sintaxe:
<TABLE BORDER WIDTH="230">
<TR>
<TH>Título 1</TH><TH>Título 2</TH>
</TR>
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD>
</TR>
</TABLE>
Título 1Título 2
célula 1 célula 2

 

<CAPTION atributos> ... </CAPTION>

Este elemento é usado para especificar uma legenda à tabela e sua tag deve seguir imediatamente após a TABLE inicial. Só deve haver uma tag desse tipo na tabela.

Atributos:

ALIGN=top, (default) ou bottom
Controla a posição da legenda em relação a tabela.

Sintaxe:
<TABLE BORDER WIDTH="230">
<CAPTION ALIGN="top">Legenda no topo
<TR>
<TH>Título 1</TH><TH>Título 2</TH></TR>
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD></TR>
</TABLE>
Legenda no topo
Título 1Título 2
célula 1 célula 2

Sintaxe:
<TABLE BORDER WIDTH="230">
<CAPTION ALIGN="bottom">Legenda na base
<TR>
<TH>Título 1</TH><TH>Título 2</TH></TR>
<TR>
<TD>célula 1</TD>
<TD>célula 2</TD></TR>
</TABLE>
Legenda na base
Título 1Título 2
célula 1 célula 2

 

CABEÇALHO, CORPO E RODAPÉ DAS TABELAS

Vamos imaginar a seguinte situação: Quero criar uma tabela que possui muitas células, distribuídas em diversas linhas, sendo que algumas células terão uma formatação de cor e texto diferentes que as demais. Eu não posso configurar <TABLE> porque, como falei, a células possuem formatações diferentes e <TR> não aceita formatação para células individuais.

Nesse caso o jeito seria entrar em cada célula e inserir os parâmetros, célula por célula... Tudo bem, já fiz isso diversas vezes e com o auxílio do comando COPY fica até mais fácil. Porém quando a tabela é consideravelmente enorme, esse método deixa de ser adequado, pois o excesso de formatação além de ser trabalhoso deixaria o arquivo desnecessariamente "pesado". Para resolver este problema existem três tags criadas exclusivamente para essa finalidade:

<THEAD>...</THEAD> - Formata o cabeçalho.
<TBODY>...</TBODY> - Formata o corpo.
<TFOOD>...</TFOOD> - Formata o rodapé.

Elas foram criadas exclusivamente para facilitar a formatação dos módulos da tabela.

Vamos supor que a tabela abaixo é uma lista de preços de materiais enorme, com 80 itens!! A borda (em TABLE) possuirá uma formatação diferente que o seu título, cabeçalho e rodapé, que por sua vez serão diferentes que o seu corpo. Configurar cada ítem do título, cabeçalho e rodapé até que seria simples, porém o corpo da tabela possui 240 células!!! Pois em cada item possuo 3 células e como são 80 itens (3 x 80 = 240). Imagine acionar o comando COPY 240 vezes!! Porém há quem faça, acredite!!...

 

<TABLE BORDER WIDTH="350" BGCOLOR="#DEB887">
<THEAD BGCOLOR="#4682B4" STYLE="font-weight:bold; color:#FFFFFF">
  <TR>
  <TD COLSPAN=5 ALIGN="center">LISTA DE MATERIAIS</TD>
  </TR>
</THEAD>
 
<TBODY BGCOLOR="#B0C4DE" STYLE="font-family:verdana; font-size:13px">
<TR>
<TD WIDTH="25">ITEM </TD>
<TD WIDTH="150">DESCRIÇÃO</TD>
<TD WIDTH="50">QUANT.</TD>
</TR>
</TBODY>
 
<TBODY BGCOLOR="#ADD8E6" STYLE="font-family:verdana; font-size:13px">

<TR>
<TD>1)</TD>
<TD>caderno 200 folhas</TD>
<TD>R$12,00</TD>
</TR>
 
<TR>
<TD>...</TD>
<TD>...</TD>
<TD>...</TD>
</TR>
 
<TR>
<TD>80)</TD>
<TD>caneta hidrocolor</TD>
<TD>R$15,00</TD>
</TR>
</TBODY>
 
<TFOOT BGCOLOR="#4682B4" STYLE="font-weight:bold; color:#FFFFFF">
<TR>
<TD COLSPAN=5 ALIGN="center">
PAPELARIA FLORESTINA LTDA.</TD>
</TR>
</TFOOT>
</TABLE>

 

LISTA DE MATERIAIS
ITEM DESCRIÇÃO PREÇO
1) caderno 200 folhas R$12,00
... ... ...
80) caneta hidrocolor R$15,00
PAPELARIA FLORESTINA LTDA.

 

Home Importante! História Tutorial HTML Glossário Faqs Buscadores Sinapse
Fóruns ASCII Cores JavaScript CSS Links Novidades Browsers Conclusão
© Free Copyright - edaurelio@hotmail.com - Arquivo atualizado em 04/11/04