Documento original: The global structure of an HTML document   |  Tradutor: De Sena Viegas


7 A estrutura global de um documento HTML

Conteúdos

  1. Introdução à estrutura de um documento HTML
  2. Informação referente à versão HTML
  3. O elemento HTML
  4. O cabeçalho do documento
    1. O elemento HEAD
    2. O elemento TITLE
    3. O atributo title
    4. Dados do tipo [META]
  5. O corpo do documento
    1. O elemento BODY
    2. Identificadores dos elementos: os atributos id e class
    3. Elementos de nível de bloco e elementos "inline"
    4. Elementos de agrupamento: Os elementos DIV e SPAN
    5. Cabeçalhos: Os elementos H1, H2, H3,H4, H5 e H6
    6. O elemento ADDRESS

7.1 Introdução à estrutura de um documento HTML

Um documento HTML 4 é composto por três partes distintas:

  1. uma linha contendo a informação referente à versão HTML,
  2. um cabeçalho com uma secção declarativa (delimitado pelo elemento HEAD),
  3. um corpo contendo o actual conteúdo do documento. O corpo poderá ser efectivado pelo elemento BODY ou pelo elemento FRAMESET.

Os espaços em branco (espaços, mudanças de linha, tabulações e comentários) poderão aparecer antes ou depois de cada secção. As secções 2 e 3 deverão ser delimitadas pelo elemento HTML.

Eis aqui o exemplo de um documento HTML simples:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
   <HEAD>
      <TITLE>O meu primeiro documento HTML</TITLE>
   </HEAD>
   <BODY>
      <P>Olá Mundo!
   </BODY>
</HTML>

7.2 Informação referente à versão HTML

Um documento HTML válido declara sempre qual a versão HTML usada no documento. A declaração do tipo de documento indica-nos a definição do tipo de documento (DTD) em uso no referido documento (ver [ISO8879]).

O HTML 4.01 especifica três DTDs, de maneira que os autores deverão incluir nos seus documentos uma das seguintes declarações do tipo de documento, um pouco mais abaixo especificadas. As DTD distiguem-se pelos elementos que suportam.

O URI contido em cada uma das declarações do tipo de documento, permite aos meios usados pelos utentes baixar a respectiva DTD ou qualquer outro conjunto de entidades necessárias. Os seguintes URIs (relativos), referem-se às DTDs e aos conjuntos de entidades para o HTML 4:

A relação entre os identificadores públicos e os ficheiros poderá ser especificada usando-se um ficheiro com a função de catálogo, o qual deverá estar em concordância com o formato recomendado pelo Oasis Open Consortium (ver [OASISOPEN]). Foi incluído um ficheiro-catálogo para o HTML 4.01 no princípio da secção contendo a informação da referência SGML para o HTML. As duas últimas letras da declaração indicam a linguagem da DTD. Nos documentos HTML, alinguagem é sempre o Inglês ("EN").

Nota: no que diz respeito à versão de 24 de Dezembro do HTML 4.01, o Grupo de Trabalho responsável pelo HTML compromete-se ao seguimento da seguinte política:

Isto significa que os autores poderão usar de forma mais segura os identificadores dos sistemas numa declaração do tipo de documento, o qual se refira à última versão de uma DTD HTML 4. Os autores poderão também usar um identificador de sistema que se refira a uma versão específica (datada) de uma DTD HTML 4, sempre que a validação para essa DTD em particular seja requerida.O W3C fará todos os possíveis para manter os documentos arquivados indefinidamente disponíveis, tanto no endereço como na forma originais.

7.3 O elemento HTML

<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;)    -- elemento raíz de um documento -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  >

"tag" de abertura: opcional, "tag" de encerramento: opcional

Definições dos atributos

version = cdata [CN]
Deprecados. O valor deste atributo especifica qual e a versão da DTD do HTML que está em vigor no actual documento. Este atributo foi deprecado, dado ser redundante com a informação da versão, fornecida pela declaração do tipo de documento.

Atributos definidos noutro sítio:

A seguir à declaração do tipo de documento, vem o restante conteúdo de um documento HTML, o qual é contido pelo elemento HTML. Assim, um documento HTML típico possui a seguinte estrutura:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
...O cabeçalho (head), o corpo do texto (body), etc. estão aqui...
</HTML>

7.4 O cabeçalho do documento

7.4.1 O elemento HEAD

<!-- %head.misc; definido anteriormente como "SCRIPT|STYLE|META|LINK|OBJECT" -->
<!ENTITY % head.content "TITLE & BASE?">

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) – cabeçalho do document -->
<!ATTLIST HEAD
  %i18n;                               -- lang, dir --
  profile     %URI;          #IMPLIED  -- dicionário contendo a informação meta --
  >

"tag" de abertura: opcional, "tag" de encerramento: opcional

Definições dos atributos

profile = uri [CT]
Este atributo especifica a localização de um ou mais perfis dos dados META, separados por um espaço em branco. Para futuras extensões, os agentes usados pelos utentes deveriam estar aptos a considerar que este valor é uma lista, embora esta especificação apenas considere significativa o primeiro URI. Os Perfis serão discutidos mais abaixo, na secção referente aos Dados META.

Atributos definidos noutro sítio:

O elemento HEAD contém informação acerca do actual documento, como por exemplo o seu título, palavras-chave que possam ser úteis nos engenhos de procura, e outros dados que não são considerados como fazendo parte do conteúdo do documento. Os agentes não exibem, de uma maneira geral, os elementos que aparecem contidos em HEAD como sendo conteúdo. Eles poderão no entanto tornar a informação contida no elemento HEAD acessível aos utentes, através de outros mecanismos.

7.4.2 O elemento TITLE

<!-- O elemento TITLE não é considerado como parte do texto fluente.
       Ele deverá ser exibido como cabeçalho ou
       como título da janela. Para cada documento é-se requerido apenas um título.
    -->
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) – título do documento -->
<!ATTLIST TITLE %i18n>

"tag" de abertura: requerida<br>"tag" de encerramento: requerida

Atributos definidos noutro sítio:

Cada documento HTML terá de possuir um elemento TITLEna secção HEAD.

Os autores deverão usar o elemento TITLE para identificar os conteúdos de um documento. Uma vez que os utentes consultam frequentemente documentos que estão fora de contexto, os autores deveriam fornecer títulos elucidantes ao seu contexto. Assim, em vez de termos um título do tipo "Introdução", o qual não fornece qualquer indicação contextual, os autores deveriam em vez disso prover o documento com um título do tipo "Introduction to Medieval Bee-Keeping".

Por razões de acessibilidade, os agentes deverão fazer com que o conteúdo do elemento TITLE esteja disponível aos utentes (incluindo os elementos do tipo TITLE que apareçam nas "frames" ou molduras). O mecanismo empregue para tal execução dependerá do meio usado pelo utente (ex: captação ou falado).

Os títulos poderão conter entidades de caracteres (no caso dos caracteres que levem um acento, caracteres especiais, etc.), mas não poderão conter outras marcações em HTML (incluindo os comentários). Eis aqui um exemplo de um título num documento:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>Estudo da densidade demográfica de uma população</TITLE>
... outros elementos do cabeçalho...
</HEAD>
<BODY>
... corpo do documento...
</BODY>
</HTML>

7.4.3 O atributo title

Definições dos atributos

title = text [CS]
Este atributo oferece-nos uma informação consultiva, acerca do elemento para o qual ele é aplicado.

Ao contrário do elemento TITLE, o qual nos fornece informação acerca de um documento no seu todo e que poderá aparecer apenas uma vez, o atributo title poderá anotar um qualquer número de elementos. Consulte a definição do elemento em causda, a fim de verificar se ela suporta este atributo.

Os valores do atributo title poderão ser representados pelos agentes usados pelos utentes de variadas formas. Por exemplo, os navegadores visuais exibem frequentemente o título sob a forma duma "vinheta" (uma mensagem curta que aparece quando esta é colocada em cima de um objecto). Num contexto similar, os agentes aúdio poderão falar a informação referente ao título. Por exemplo, definir o atributo num "link" permitirá aos agentes (visuais e não-visuais) indicar aos utentes qual a natureza do recurso que foi "linkado":

...texto...
Eis aqui uma foto
<A href="http://someplace.com/neatstuff.gif" title="Eu a fazer campismo">
   Eu a fazer campismo no ano passado
</A>
...mais texto...

O atributo title assume ainda um papel adicional aquando utilizado conjuntamente com o elemento LINK, o de definir uma folha de estilo externa. Consulte a secção referente aos "links" e folhas de estilo, a fim de obter mais detalhes.

Nota: para melhorar a qualidade dos sintetizadores de voz, nos casos em que as técnicas "standard" utilizadas não sejam desenvolvidas, as futuras versões do HTML poderão incluir um atributo destinado à codificação fonética e à informação prosódica.

7.4.4 Os dados META

Nota: a A estrutura da descrição dos recursos (Resource Description Framework) da W3C (ver [RDF10]) tornou-se numa Recomendação da W3C em Fevereiro de 1999. A RDF permite aos autores especificar dados META referentes a documentos HTML e a outros recursos acessíveis através da rede (Internet), os quais sejam maquinalmente legíveis.

O HTML permite aos autores especificar os dados META -- informação sobre o documento, não contando com o seu conteúdo –- de várias formas.

Por exemplo, para especificar qual é o autor de um documento, poder-se-á utilizar o elemento META da seguinte maneira:

<META name="Author" content="Dave Raggett">

O elemento META especifica uma determinada propriedade (neste caso "Author") e atribui-lhe um valor (neste caso "Dave Raggett").

Esta especificação não define um conjunto de propriedades legais para os dados META. O significado de uma propriedade e o conjunto de valores legais a ela atribuídos deverão ser definidos num léxico de referências, ao qual se dá aqui o nome de perfil. Por exemplo, um perfil designado para ajudar as máquinas de procura a indexar documentos, poderá definir propriedades tais como "autor", "copyright", "palavras-chave", etc.

Especificando os dados META 

De uma maneira geral, especificar os dados META involve dois passos essenciais:

  1. Declarar uma propriedade e um valor para essa propriedade. Tal poderá ser feito de duas formas:
    1. Dentro do próprio documento, através do elemento META.
    2. Exteriormente ao documento, "linkando" os dados META através do elemento LINK (ver a secção referente aos tipos de "links" ou ligações).
  2. Fazer referência a um perfil onde sejam definidos a propiedade e os seus valores legais. Para designar um perfil, use o atributo profile do elemento HEAD.

Note-se que, a partir do momento que o perfil para o elemento HEAD seja definido, esse mesmo perfil aplicar-se-á a todos os elementos META e LINK contidos no cabeçalho do referido documento.

Não é aqui necessário que os agentes suportem os mecanismos dos dados META. No entanto, e para todos aqueles que assim o fizerem, esta especificação não define a forma como esses dados deverão ser interpretados.

O elemento META 

<!ELEMENT META - O EMPTY               -- meta-informação genérica -->
<!ATTLIST META
  %i18n;                               -- lang, dir, para usar juntamente com o conteúdo --
  http-equiv  NAME           #IMPLIED  -- nome do cabeçalho de resposta HTTP  --
  name        NAME           #IMPLIED  -- nome da meta-informação --
  content     CDATA          #REQUIRED -- informação associada --
  scheme      CDATA          #IMPLIED  -- forma de conteúdo seleccionada --
  >

"tag" de abertura: requerida
"tag" de encerramento: proíbida

Definições dos atributos

Os valores permitidos para os atributos que se seguem, bem como a sua interpretação, dependem doperfil:

name = name [CS]
Este atributo identifica o nome de uma propriedade. Esta especificação não lista os valores legais definidos para este atributo.
content = cdata [CS]
Este atributo especifica o valor de uma propriedade. Esta especificação não lista os valores legais definidos para este atributo.
scheme = cdata [CS]
Este atributo nomeia o esquema a ser usado na interpretação do valor da propriedade (ver a secção referente aos perfis para informações mais detalhadas).
http-equiv = name [CI]
Este atributo pode ser usado como substituto do atributo name . Os servidores HTTP usam este atributo para reunir informação para os cabeçalhos com as mensagens de resposta HTTP.

Atributos definidos noutro sítio:

O elemento META pode ser usado para identificar as propriedades de um documento (por ex: o seu autor, a data de expiração, uma lista com palavras-chave, etc.) e designar valores para essas propriedades. Esta especificação não define nenhum conjunto normativo de propriedades para este caso.

Cada elemento META especifica um par - propriedade/valor -. O atributo name identifica a propriedade e o atributo content especifica o valor da referida propriedade.

Por exemplo, a declaração que se segue define um valor para a propriedade Author:

<META name="Author" content="Dave Raggett">

O atributo lang poderá ser usado conjuntamente com META, a fim de especificar a linguagem contida no valor do atributo content. Essa acção permite aos sintetizadores de voz a aplicação da referida linguagem, independentemente das eventuais regras de pronunciação.

Neste caso, é-se declaradoo nome do autor como sendo em Francês:

<META name="Author" lang="fr" content="Arnaud Le Hors">

Nota: o elemento META é um mecanismo genérico destinado à especificação dos dados com o mesmo nome. Contudo, alguns elementos e atributos HTML já processam algumas partes dos dados meta e poderão ser usados pelos autores, em vez do elemento META, para especificar esses fragmentos: o elemento TITLE, o elemento ADDRESS, os elementos INS e DEL, o atributo title e o atributo cite.

Nota: quando uma propriedade especificada por um elemento META assume um URI como valor, alguns autores preferirão especificar o dado META através do elemento LINK. Assim, a seguinte declaração de dados META:

<META name="DC.identifier"
      content="http://www.ietf.org/rfc/rfc1866.txt">

poderá também ser escrita da seguinte forma:

<LINK rel="DC.identifier"
         type="text/plain"
         href="http://www.ietf.org/rfc/rfc1866.txt">
META e cabeçalhos HTTP

O atributo http-equiv pode ser usado em vez do atributo name, assumindo um significado especial sempre que os documentos sejam recuperados através do Hypertext Transfer Protocol (HTTP), o que traduzido para o Português significa Protocolo de Transferência do Hipertexto. Os servidores podem servir-se do nome da propriedade especificada pelo atributo http-equiv para criar um cabeçalho do tipo [RFC822] na resposta HTTP. Consulte a especificação HTTP ([RFC2616]) para obter mais detalhes acerca dos cabeçalhos HTTP válidos.

A seguinte declaração META:

<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">

será visualizada no cabeçalho HTTP da seguinte maneira:

Expires: Tue, 20 Aug 1996 14:25:27 GMT

Tal mediada poderá ser usada pelos "caches" para determinar a melhor altura para produzir uma cópia "fresca" do documento associado.

Nota alguns agentes suportam o uso do elemento META, de forma a refrescar a actual página passados uns quantos segundos pré-determinados, com a opção de o poder substituir por um URI diferente. Os autores não deverão usar esta técnica para conduzir os utentes a páginas diferentes, dado que isso tornaria a página inacessível para alguns desses utentes. Em vez disso, o re-direccionamento dessa página deverá ser feito usando os dispositivos fornecidos pelo servidor.

META e as máquinas de busca

Um dos usos mais comuns do elemento META é especificar quais as palavras-chave que a máquina de busca poderá usar, de forma a melhorar e a aumentar a qualidade dos resultados dessa procura. Sempre que vários elementos META forneçam informação acerca de um documento, a qual seja dependente da linguagem usada, as máquinas de procura poderão filtrá-la com a ajuda do atributo lang, de forma a exibir os resultados da procura usando apenas a linguagem preferida pelo utente. Por exemplo,

<-- Para nativos de Português BR -->
<META name="keywords" lang="pt-br"
         content="atual, Brasil, sol">
<-- Para nativos de Português PT -->
<META name="keywords" lang="pt"
         content="actual, Brasil, sol">
<-- Para nativos de Francês -->
<META name="keywords" lang="fr"
         content="vacances, Gr&egrave;ce, soleil">

A efectividade das máquinas de procura também poderá ser melhorada através do uso do elemento LINK, a fim de especificar "links" que contenham a tradução do documento em outras linguagens, "links" de outras versões do documento noutros meios (ex: PDF) e, quando o documento fizer parte de uma colecção de vários documentos, "links" ou ligações a um ponto de partida mais apropriado à navegação na referida colecção.

Mais ajuda ser-lhe-á fornecida na secção ajudando as máquinas de busca a indexar a sua "homepage".

META e PICS
A plataforma destinada à selecção do conteúdo da Internet (do Inglês – PICS -, especificada em [PICS]) é uma infra-estrutura destinada à associação de dados META com conteúdo Internet. Originalmente concebida para ajudar os parentes e professores a definir e a controlar quais os campos de acesso na Internet para os seus filhos e educandos, ela também é indicada para outros usos das etiquetas, incluindo a assinatura de códigos, privacidade e gestão dos direitos de propriedade intelectual.

Este exemplo ilustra-nos a forma de como usar uma declaração META, de forma a incluir a etiqueta PICS 1.1:

<HEAD>
 <META http-equiv="PICS-Label" content='
 (PICS-1.1 "http://www.gcf.org/v2.5"
    labels on "1994.11.05T08:15-0500"
      until "1995.12.31T23:59-0000"
      for "http://w3.org/PICS/Overview.html"
    ratings (suds 0.5 density 0 color/hue 1))
 '>
  <TITLE>... título do documento ...</TITLE>
</HEAD>
META e a informação por defeito

O elemento META pode ser usado para especificar a informação por defeito contida num documento nos seguintes casos:

O exemplo que se segue especifica que a codificação dos caracteres usada no docuemtno é do tipo ISO-8859-5 :

<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-5">

Os perfis dos dados META 

O atributo profile, pertencente ao elemento HEAD especifica a localização do perfil de um dado META. O valor do atributo profile é definido sob a forma de um URI. Os agentes poderão usar esse URI de duas maneiras:

O próximo exemplo refere-se a um exemplo hipotético, o qual nos define algumas propriedades de grande utilidade na indexação de documentos. As propriedades definidas por este perfil – incluindo "author", "copyright", "keywords" e "date" – têm os seus valores definidos nas declarações META subsequentes.

 <HEAD profile="http://www.acme.com/profiles/core">
  <TITLE>How to complete Memorandum cover sheets</TITLE>
  <META name="author" content="John Doe">
  <META name="copyright" content="&copy; 1997 Acme Corp.">
  <META name="keywords" content="corporate,guidelines,cataloging">
  <META name="date" content="1994-11-06T08:49:37+00:00">
 </HEAD>

Na altura em que esta especificação foi escrita, era considerado como prática comum o uso dos formatos para as datas, descritos em [RFC2616], secção 3.3. Dado que esses formatos são relativamente difíceis de processar, nós recomendamos aos autores o uso do formato[ISO8601] para as datas. Para mais informações veja as secções referentes aos elementos INS e DEL.

O atributo scheme permite aos autores fornecer aos agentes mais contexto, para uma correcta interpretação dos dados META. Às vezes , tal informação adicional poder-se-á tornar criticar, dado que os META dados poderão ser especificados em formatos diferentes. Por exemplo, um autor poderá especificar uma data no formato (ambíguo) "10-9-97"; significará isto realmente 9 de Outubro de 1997 ou 10 de Setembro de 1997? O valor "Month-Day-Year" pertencente ao atributo scheme passaria assim a eliminar a ambíguidade do valor da data que foi acima referido.

Outras vezes, o atributo scheme poderá fornecer informação útil mas não essencial aos agentes.

Por exemplo, a seguinte scheme declaração pode ajudar o agente a determinar se o valor da propriedade "identificadora" é um código de números ISBN:

<META scheme="ISBN"  name="identifier" content="0-8230-2355-9">

Os valores do atributo scheme dependem do nome da propriedade, bem como do perfil que lhe é associado.

Nota: o exemplo de um perfil seria o Dublin Core (ver [DCORE]). Este perfil define um conjunto de propriedades recomendadas para descrições bibliográficas electrónicas, pretendendo-se com ele promover a inter-operacionabilidade entre os modelos de descrição impares.

7.5 O corpo do documento

7.5.1 O elemento BODY

<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) – corpo do documento -->
<!ATTLIST BODY
  %attrs;                              -- %coreattrs, %i18n, %events --
  onload          %Script;   #IMPLIED  -- o documento foi carregado --
  onunload        %Script;   #IMPLIED  -- o documento foi removido --
  >

"tag" de abertura: opcional, "tag" de encerramento: opcional

Definições dos atributos

background = uri [CT]
Deprecado. O valor deste atributo é um URI que designa uma fonte de imagens. A imagem ocupa de uma forma geral o plano de fundo (nas "browsers" ou navegadores visuais).
text = color [CI]
Deprecado. Este atributo define a cor de destaque do texto (navegadores visuais).
link = color [CI]
Deprecado. Este atributo define a cor do texto que assinala os "links" de hipertexto que ainda não foram visitados (nos navegadores visuais).
vlink = color [CI]
Deprecado. Este atributo define a cor do texto que assinala os "links" de hipertexto que foram visitados (nos navegadores visuais).
alink = color [CI]
Deprecado. Este atributo define a cor do texto que assinala os "links" de hipertexto quando seleccionados pelo utente (nos navegadores visuais).

Atributos definidos noutro sítio:

O corpo de um documento contém o conteúdo do referido documento. Esse conteúdo poderá ser apresentado pelo agente usado pelo utente de várias maneiras. Por exemplo, nos navegadores visuais você poderá considerar o corpo do documento como uma tela sobre a qual aparece o seu conteúdo: texto, imagens, cores, gráficos, etc. Para os agentes aúdio, esse mesmo conteúdo poderá ser falado. Dado que as folhas de estilo passaram a ser a maneira preferida de especificar a apresentação dos documentos, os atributos BODY que eram responsáveis pela apresentação foram deprecados (desaprovados).

EXAMPLE DEPRECADO:
O seguinte fragmento HTML ilustra-nos o uso de atribudos deprecados. Define a cor de fundo da tela como sendo branca, o texto em primeiro plano a preto e a cor das hiperligações inicialmente a vermelho, fúcsia aquando activadas e marrom depois de visitadas.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
 <TITLE>Estudo da densidade demográfica de uma população</TITLE>
</HEAD>
<BODY bgcolor="white" text="black"
  link="red" alink="fuchsia" vlink="maroon">
  ... corpo do documento...
</BODY>
</HTML>

Usando as folhas de estilo, poder-se-ia conseguir o mesmo efeito da seguinte forma:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
 <TITLE>Estudo da densidade demográfica de uma população</TITLE>
 <STYLE type="text/css">
  BODY { background: white; color: black}
  A:link { color: red }
  A:visited { color: maroon }
  A:active { color: fuchsia }
 </STYLE>
</HEAD>
<BODY>
  ... corpo do documento...
</BODY>
</HTML>

O uso de folhas de estilo externamente "linkadas" permitir-lhe-ia alterar a apresentação do documento sem ter que rever o documento HTML base:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
 <TITLE>Estudo da densidade demográfica de uma população</TITLE>
 <LINK rel="stylesheet" type="text/css" href="smartstyle.css">
</HEAD>
<BODY>
  ... corpo do documento...
</BODY>
</HTML>

Conjuntos de molduras e corpos HTML. Nos documentos que contenham conjuntos de molduras substitui-se o elemento BODY pelo elemento FRAMESET. Por favor consulte a secção molduras para mais informações.

7.5.2 Elementos identificadores: os atributos id e class

Definições dos atributos

id = name [CS]
Este atributo atribui um nome a um elemento. Esse nome deverá ser único no documento.
class = cdata-list [CS]
Este atributo atribui um nome ou um conjunto de nomes de classe a um elemento. Poder-se-á atribuír o mesmo nome ou nomes de classe a um qualquer número de elementos . Os nomes múltiplos de classe terão de ser separados por espaços em branco.
O atributo id atribui um identificador único a um elemento (o qual poderá ser verificado por um processador de SGML). Por exemplo, os parágrafos seguintes são distinguidos pelos seus valores id:
<P id="myparagraph"> Este é um parágrafo com um nome único.</P>
<P id="yourparagraph"> Este parágrafo possui também um nome único.</P>

O atributo id desempenha vários papeis no HTML:

Por outro lado, o atributo class atribui um ou mais nomes de classe ao elemento; poder-se-á considerar o elemento como pertencente a essas classes. O nome da classe poderá ser partilhado por várias instâncias do elemento. O atributo class também desempenha várias funções no HTML:

No seguinte exemplo, o elemento SPAN é usado conjuntamente com os atributos id e class, com vista a etiquetar as mensagens do documento. As mensagens aparecem em ambas as versões: Inglês e Francês.

<!-- English messages -->
<P><SPAN id="msg1" class="info" lang="en">Variable declared twice</SPAN>
<P><SPAN id="msg2" class="warning" lang="en">Undeclared variable</SPAN>
<P><SPAN id="msg3" class="error" lang="en">Bad syntax for variable name</SPAN>
<!-- French messages -->
<P><SPAN id="msg1" class="info" lang="fr">Variable d&eacute;clar&eacute;e deux fois</SPAN>
<P><SPAN id="msg2" class="warning" lang="fr">Variable ind&eacute;finie</SPAN>
<P><SPAN id="msg3" class="error" lang="fr">Erreur de syntaxe pour variable</SPAN>

O estilo CSS que se segue indicaria aos agentes visuais para apresentar as mensagens informativas em verde, mensagens de aviso a amarelo e as mensagens de erro a vermelho:

SPAN.info    { color: green }
SPAN.warning { color: yellow }
SPAN.error   { color: red

Note que a "msg1" em Francês e a "msg1" em Inglês poderão não aparecer no mesmo documento, dado que partilham o mesmo valor id entre si. Os autores poderão usar o atributo id para refinar a apresentação das mensagens individais, fazer delas âncoras de destino, etc.

Poder-se-ão definir identificadores e informações referentes à classe para quase todos os elementos HTML.

Suponhamos por exemplo, que estamos a escrever um documento acerca duma linguagem de programação. O documento serve para incluir um número de exemplos pré-formatados. Nós usamos o elemento PRE para formatar os exemplos. Nós atribuímos ainda uma cor de fundo (verde) para todas os casos ou instâncias do elemento PRE pertencentes à classe "example".

<HEAD>
<TITLE>... título do documento ...</TITLE>
<STYLE type="text/css">
PRE.example { background : green }
</STYLE>
</HEAD>
<BODY>
<PRE class="example" id="example-1">
...exemplo do código aqui...
</PRE>
</BODY>

Ao definir o atributo id para este exemplo, nós poderemos (1) criar uma hiperligação (2) e sobrepor a informação do estilo presente neste caso á informação do estilo da classe.

Nota o atributo id possui o mesmo espaço-nominal que o atributo name, sempre que usado nos nomes das âncoras. Consulte a secção âncoras com id para mais informação.

7.5.3 Elementos "inline" e ao nível do bloco

Alguns dos elementos HTML que aparecem em BODY são denominados de elementos ao "nível do bloco" (do Inglês: "block-level") enquanto que outros são denominados de "inline" (também conhecidos como ao "nível do texto"). A distinção entre ambos é-nos definida através de variadas noções:

Modelo de conteúdo
De uma forma geral, os elementos ao nível do bloco podem conter elementos "inline" e outros elementos ao nível de bloco. Geralmente, os elementos "inline" poderão apenas conter dados e outros elementos "inline". Inerente a esta distinção estrutural é a ideia de que os elementos do bloco criam estruturas mais largas do que os elementos "inline".
Formatação
Por defeito, os elementos pertencentes ao nível de bloco são formatados de uma forma diferente da dos elementos "inline".Por outro lado e também de uma forma geral, os elementos ao nível de bloco começam numa nova linha ao passo que os elementos "inline" não. Para mais informações acerca dos espaços em branco, mudanças de linha e formatações em bloco, consulte por favor a secção referente ao texto.
Direccionalidade
Por razões técnicas envolvendo o algorítmo de texto [UNICODE] bidireccional, os elementos "inline" e ao nível do bloco diferem na forma como recebem a informação relacionada com a sua direccionabilidade. Para mais detalhes, veja a secção referente herança da direcção do texto.

As folhas de estilo fornecem os meios para especificar a representação de elementos arbitrários, incluindo se o elemento é apresentado em bloco ou "inline". Em alguns casos, como por exemplo nos estilos "inline" para a lista de elementos, tal poderá ser o mais apropriado, mas de uma forma geral não se aconselha aos autores que eles anulem a interpretação convencional dos elementos HTML desta maneira.

A alteração da apresentação tradicional dos idiomas dos elementos em bloco e "inline" tem também um impacto sobre o algorítmo de texto bi-direccional. Veja a secção referente ao efeito das folhas de estilo sobre a bi-direccionalidade, a fim de obter informações mais detalhadas.

7.5.4 Elementos de agrupamento: os elementos DIV e SPAN

<!ELEMENT DIV - - (%flow;)*            -- contentor genérico da linguagem/estilo  -->
<!ATTLIST DIV
  %attrs;                              -- %coreattrs, %i18n, %events --
  >
<!ELEMENT SPAN - - (%inline;)*         -- contentor genérico da linguagem/estilo  -->
<!ATTLIST SPAN
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

"tag" de abertura: requerida
"tag" de encerramento: requerida

Atributos definidos noutro sítio:

Os elementos DIV e SPAN, em conjunção com os atributos id e class , oferecem um mecanismo genérico para a adição de estruturas aos documentos. Esses elementos definem qual o conteúdo "inline" (SPAN) e qual o conteúdo em bloco (DIV), mas proíbem a presença de qualquer outra linguagem de apresentação no referido conteúdo. Assim, os autores poderão usar esses elementos conjuntamente com as folhas de estilo, com o atributo lang, etc., a fim de moldar o HTML ao seu gosto e de acordo com as suas necessidades.

Suponhamos por exemplo, que nós pretendemos criar um documento HTML baseado numa base de dados com informações referentes a clientes. Dado que o HTML não inclui elementos que identifiquem objectos, tais como "cliente", "número de telefone", "email", etc., nós usamos DIV e SPAN, com vista a obter os efeitos estruturais e de apresentação desejados. Nós poderemos usar o elemento TABLE para estruturar a informação da seguinte maneira:

<!-- Exemplo dos dados contidos na base de dados dos clientes: -->
<!-- Nome: Stephane Boyera, Tel: (212) 555-1212, Email: sb@foo.org -->

<DIV id="client-boyera" class="client">
<P><SPAN class="client-title">Informação referente ao cliente:</SPAN>
<TABLE class="client-data">
<TR><TH>Apelido:<TD>Boyera</TR>
<TR><TH>Nome:<TD>Stephane</TR>
<TR><TH>Tel:<TD>(212) 555-1212</TR>
<TR><TH>Email:<TD>sb@foo.org</TR>
</TABLE>
</DIV>

<DIV id="client-lafon" class="client">
<P><SPAN class="client-title">Informação referente ao cliente:</SPAN>
<TABLE class="client-data">
<TR><TH>Apelido:<TD>Lafon</TR>
<TR><TH>Nome:<TD>Yves</TR>
<TR><TH>Tel:<TD>(617) 555-1212</TR>
<TR><TH>Email:<TD>yves@coucou.com</TR>
</TABLE>
</DIV>

Mais tarde poderemos adicionar facilmente as declarações das folhas de estilo, de forma a afinar a representação destas entradas contidas no banco de dados.

Para mais exemplos acerca do uso destes elementos, consulte por favor o exemplo contido na secção referente aos atributos class e id.

Os agentes visuais executam, de uma forma geral, uma mudança de linha antes e depois de elementos DIV, como por exemplo:

<P>aaaaaaaaa<DIV>bbbbbbbbb</DIV><DIV>ccccc<P>ccccc</DIV>

o que normalmente será representado por:

aaaaaaaaa
bbbbbbbbb
ccccc

ccccc

7.5.5 Títulos: Os elementos H1, H2, H3, H4, H5 e H6

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
<!--
  Os títulos distinguem-se em seis níveis, desde o H1 (o mais importante de todos)
  até ao H6 (o menos importante).
-->

<!ELEMENT (%heading;)  - - (%inline;)* -- título -->
<!ATTLIST (%heading;)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

"tag" de abertura: requerida
"tag" de encerramento: requerida

Atributos definidos noutro sítio:

Um título descreve muito sucintamente os tópicos da secção que ele pretende introduzir. A informação referente ao título poderá, por exemplo, ser usada pelos agentes para construir automaticamente uma tabela de conteúdos destinada a um documento.

Existem seis tipos de títulos (referentemente ao seu tamanho) HTML, sendo H1 o mais importante e H6 o menos importante. Os navegadores visuais exibem de uma forma geral os títulos maiores mais frequentemente do que os títulos mais pequenos.

O exemplo que se segue indica-nos a forma como usar o elemento DIV, de forma a associar um título à secção que se lhe segue. Tal facto permitir-lhe-á definir um estilo para a referida secção (cor de fundo, tipo e tamanho da fonte, etc.) usando as folhas de estilo.

<DIV class="section" id="forest-elephants" >
<H1>Elefantes da selva</H1>
<P>Nesta secção, nós falaremos acerca de uma espécie de elefantes da selva menos conhecida.
...esta secção continua...
<DIV class="subsection" id="forest-habitat" >
<H2>Habitat</H2>
<P>Os elefantes da selva não vivem em árvores mas entre elas.
...esta sub-secção continua...
</DIV>
</DIV>

Esta estrutura poderá se decorada com informação referente ao estilo, tal como por exemplo:

<HEAD>
<TITLE>... título do documento ...</TITLE>
<STYLE type="text/css">
DIV.section { text-align: justify; font-size: 12pt}
DIV.subsection { text-indent: 2em }
H1 { font-style: italic; color: green }
H2 { color: green }
</STYLE>
</HEAD>

Secções numeradas e referências
O HTML não fará por si próprio com que sejam gerados números de secção a partir dos títulos. Esta facilidade poderá no entanto ser-lhe oferecida pelos agentes. Muito em breve, as linguagens das folhas de estilo (tais como a CSS) permitirão aos autores controlar a criação dos números de secção (úteis nas referências mais avançadas, contidas nos documentos imprimidos, como se pode verificar na secção "7.2").

Algumas pessoas consideram que saltar os níveis dos títulos é um mau hábito. Eles aceitam uma combinação H1 H2 H1, mas recusam a combinação dos títulos H1 H3 H1, dado que o nível H2 é saltado.

7.5.6 O elemento ADDRESS

<!ELEMENT ADDRESS - - (%inline;)* -- informação referente ao autor -->
<!ATTLIST ADDRESS
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

"tag" de abertura: requerida
"tag" de encerramento: requerida

Atributos definidos noutro sítio:

O elemento ADDRESS poderá ser usado pelos autores, como forma de fornecer informação de contacto ou a parte principal de um formulário num documento. Este elemento aparece frequentemente no princípio ou no fim dos documentos.

Por exemplo, uma página da "homepage" da W3C poderá incluir a seguinte informação de contacto:

<ADDRESS>
<A href="../People/Raggett/">Dave Raggett</A>,
<A href="../People/Arnaud/">Arnaud Le Hors</A>,
contactos definidos para a <A href="Activity">Actividade HTML da W3C</A><BR>
$Date: 1999/12/24 23:37:50 $
</ADDRESS>