Categories: (X)HTMLtodas

Tutorial XHTML

O que é XHTML ?

XHTML é uma reformulação do HTML 4 como aplicação XML 1.0.
Não serão mais lançadas versões do HTML, mas isto não significa que o HTML morreu, até porque os “zilhares” de sites escritos com HTML devem e vão continuar funcionando por muitos anos ainda.


Embora eu considere que projetar usando XHTML é um avanço em direção ao futuro a escolha é sua. Neste tutorial você verá como é fácil XHTML.

Objetivo

Este tutorial tem por objetivo descrever o que é, para que serve e porque adotar a linguagem de marcação XHTML, apresentando seus aspectos estruturais e semânticos, bem como ressaltando as vantagens do seu uso.

De onde veio XHTML ?

Todas as linguagens de marcação da web são baseadas em SGML, uma metalinguagem complexa, projetada para máquinas com a finalidade de servir de base para criação de outras linguagens. O SGML foi usado criar XML (Extensible Markup Language), também uma metalinguagem, porém bem mais simples.

Com XML você cria suas próprias tags e atributos para escrever seu documento web. Isto significa que é você quem cria sua linguagem de marcação. XHTML foi criado dentro deste conceito e por isso é uma aplicação XML. As tags e atributos do XHTML foram criadas ("inventadas") aproveitando-se as nossas conhecidas tags e atributos do HTML 4.01 e suas regras.

Conclui-se que ao usar XHTML, estamos escrevendo um código XML, onde
as tags e atributos já estão definidas e isto proporciona todos os benefícios de XML sem as complicações e complexidade do SGML.

XHTML é uma linguagem de marcação bastante familiar para quem conhece HTML e a transformação de um documento existente de HTML para XHTML é uma tarefa bem simples, como veremos adiante.

Qual a finalidade do XHTML ?

XHTML é a sigla em inglês para EXtensible HyperText Markup Language que em português resulta em Linguagem Extensível para Marcação de Hipertexto, uma aplicação XML, escrita para substituir o HTML e nada mais é do que um HTML "puro, claro e limpo".

Vantagens de se usar XHTML

Enumeram-se várias e efetivas vantagens de se usar XHTML nos novos documentos web produzidos ou migrar os documentos atuais escritos em HTML. E, dentre elas destaca-se em primeiro plano a compatibilidade da linguagem
XHTML com as futuras aplicações de usuários, garantindo desde já que as criações XHTML conservar-se-ão estáveis por longos anos. A tendência é a de que futuras versões de browsers e agentes de usuários em geral, deixem de suportar elementos e atributos já em desuso ("deprecated") segundo as recomendações do W3C, bem assim como antigos e ultrapassados esquemas e esboços do HTML.

XHTML é a linguagem da web do futuro desde já a disposição de projetistas e desenvolvedores web.

XHTML é um código consistente que dispensa uso de "truques" e "hacks" para contornar "bugs".

Editar um código XHTML existente é uma tarefa bem simples por se tratar de uma escrita limpa e evidente.

O tempo de carregamento de uma página XHTML é mais rápido pois os browsers tem a interpretar uma página limpa sem ter que interpretar e decidir sobre renderização de erros de código.

Uma página XHTML é mais acessível aos browsers e aplicações de suário padrão incrementando a interoperabilidade e a portabilidade dos documentos web.

Uma página XHTML é totalmente compatível com todas as aplicações de usuários para HTML, antigas e já ultrapassadas.

XHTML é uma "Web Standard"

XHTML 1.0 é uma recomendação do W3C e sua versão atual data de 26 de janeiro de 2000. Isto significa que trata-se de uma linguagem estável, oficialmente especificada pelo W3C, tendo sido projetada e revisada pelos seus membros e é uma "Web Standard".

Tradução para o português da Recomendação W3C de 26 de janeiro de 2000, revisada em 1 de agosto de 2002 – XHTML™ 1.0 The Extensible HyperText Markup Language (Segunda Edição) – Uma reformulação do HTML 4 em XML 1.0

As diferenças entre XHTML e HTML

As principais diferenças são:

  • todas as tags devem ser escritas em letras minúsculas;
  • os elementos (tags) devem estar convenientemente aninhados;
  • os documentos devem ser bem formados;
  • o uso de tags de fechamento é obrigatório;
  • elementos vazios devem ser fechados;
  • diferenças para os atributos.

Todas as tags devem ser escritas em letras minúsculas

A metalinguagem XML é case-sensitive (sensível ao tamanho da letra). De vez que XHTML é uma aplicação XML, também é case-sensitive.

Errado:

<DIV><P>Aqui um texto</P></DIV>

Certo:

<div><p>Aqui um texto</p></div>

Os elementos (tags) devem estar convenientemente aninhados

Errado:

<div><em><p>Aqui um texto negrito</em></p></div>

Certo:

<div><em><p>Aqui um texto negrito</p></em></div>

Os documentos devem ser bem formados

Um documento diz-se bem formado quando está estruturado de acordo
com as regras definidas nas Recomendações para XML 1.0 [ XML].
Todos os elementos XHTML devem estar corretamente aninhados dentro do elemento raiz <html>.

A estrutura básica do documento deve ser conforme abaixo:


<html>
<head>
 ... 
</head>
<body>
 ... 
</body>
</html>

O uso de tags de fechamento é obrigatório

Em HTML é permitido para determinados elementos, omitir-se a tag de fechamento. XML não permite omissão de qualquer tag de fechamento. Todos os elementos, excetuados aqueles vazios declarados nas DTD, tem que ter tag de fechamento. Os elementos vazios declarados nas DTD podem ter tag de fechamento ou usar uma abreviação para elemento vazio conforme veremos adiante.

Errado::

<p>Um parágrafo.<p>Outro parágrafo.

Certo:

<p>Um parágrafo.</p><p>Outro parágrafo.</p>

Elementos vazios devem ser fechados

Elementos vazios devem ter uma tag de fechamento ou a tag de abertura deve terminar
com />. Como exemplo, <br /> ou <hr></hr>.

Errado: Elementos vazios sem terminação


<br>  
<hr> 
<img src="imagem.gif" alt="minha imagem ">

Certo: Elementos vazios com terminação


<br /> 
<hr /> 
<img src="imagem.gif" alt="minhaimagem " />

Diferenças para os atributos

  • Nomes de atributos

    Assim como as tags, os atributos também são case-sensitive
    então deve-se escrever nomes de atributos em minúsculas;

    Errado:

    <td ROWSPAN="3">

    Certo:

    <td rowspan="3">

  • Valores de atributos

    Os valores de atributos devem estar entre "aspas";

    Errado:

    <td rowspan=3>

    Certo:

    <td rowspan="3">

  • Sintaxe dos atributos

    A sintaxe para atributos deve ser escrita por completo;

    Errado:

    <input checked />

    Certo:

    <input checked="checked" />

    Abaixo uma relação dos atributos que se enquadram nesta recomendação

    
    compact compact="compact" 
    checked checked="checked" 
    declare declare="declare" 
    readonly readonly="readonly" 
    disabled disabled="disabled" 
    selected selected="selected" 
    defer defer="defer" 
    ismap ismap="ismap" 
    nohref nohref="nohref" 
    noshade >
  • Os atributos id e name;

    O HTML 4 define o atributo name para os elementos a, applet, form, frame, iframe, img, e map. HTML 4 também introduziu o atribute id. Ambos estes atributos foram projetados para serem usados como identificadores.

    Em XML, os identificadores são do tipo ID, e poderá existir somente um atributo do tipo ID por elemento. Assim, em XHTML 1.0 o atributo id é definido como do tipo ID. Documentos XHTML 1.0 compatíveis com XML e bem estruturados, DEVEM usar o atributo id ao definir identificadores para os elementos listados acima.

    Notar que em XHTML 1.0, o atributo name destes elementos está formalmente
    em desuso e será excluido nas versões futuras de XHTML.

    Errado:

    <img src="imagem.gif" name="minha_imagem" />

    Certo:

    <img src="imagem.gif" id="minha_imagem" />

    Nota: Por razões de compatibilidade com browsers antigos você pode usar ambos os atributos como abaixo:

    <img src="imagem.gif" id="minha_imagem" name="minha_imagem"
    />

  • O atributo lang;

    Use o atributo lang para definir a lingua em que foi escrito o documento e o atributo xml:lang para definir a lingua em que foi escrita a versão do XML

Pontos de âncoras

Em HTML para criar um ponto de âncora, associamos um nome ao elemento <a>:

<p><a name="topo" >Início</a > do rágrafo..bla...</p>

Em XHTML adicione o atributo id:

<p><a id="topo" name="topo" >Início</a > do parágrafo..bla...</p>

O atributo alt para imagens

Em XHTML o uso do atributo alt para imagens é obrigatório

<img src="imagem.gif" alt ="minha_imagem " />

Se tratar-se de uma imagem decorativa pode-se usar o atributo alt vazio:

<img src="imagem.gif" alt =" " />

Separadores de blocos de códigos

É comum o uso de uma sequência de caracteres dentro da marcação de comentários
(<!--     --> ) para visualmente separar trechos do código com a finalidade de facilitar sua posterior leitura e manutenção.

Não use a clássica sequência de caracteres -------, para conseguir este efeito.

Alguns agentes de usuário mais antigos podem ter dificuldades na interpretação desta sequência.

Use, por exemplo, a sequência ====
ou
xxxxxx

Errado:


<!-- Aqui  começa o menu -->
<!-- -------------------------------------------- -->
código XHTML do menu
<!-- -------------------------------------------- -->

Certo:


<!-- Aqui começa o menu -->
<!-- =========================== -->
código XHTML do menu
<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->

Códigos gerados por editores

Cuidado com os códigos gerados por editores!

Este é um código gerado por editor: onMouseOver=function() não válido em XHTML

Errado:

onMouseOver=function()

Certo:

onmouseover=function()

Caracter & (ampersand)

Codifique o & ( e comercial)

Errado:

Comércio & Exportação

Certo:

Comércio &amp; Exportação

Elementos obrigatórios em um documento XHTML

É obrigatório a declaração do DOCTYPE assim como a existência dos elementos:
<html> <head> <title> e <body>

Um modelo mínimo de documento XHTML é conforme abaixo:


<!DOCTYPE bla..bla..bla> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Título do odcumento</title> 
</head>
<body> 
Conteúdo do documento
</body> </html>

A declaração DOCTYPE não faz parte da marcação XHTML e como tal não é também um elemento, razão pela qual não há necessidade de tag de fechamento.

Para que serve o DOCTYPE ?

A Definição do tipo de documento (Document Type Definitions DTD) especifica qual é a sintaxe SGML usada no documento. A DTD é usada pelas aplicações SGML ( tais como HTML ) para identificar as regras que se aplicam a linguagem de marcação usada no documento bem como o conjunto de elementos e entidades válidas naquela linguagem. Assim uma DTD para um documento XHTML descreve com precisão a sintaxe e a gramática da linguagem de marcação XHTML.

O DOCTYPE deve ser sempre a primeira declaração em um documento web.

Os tipos de DOCTYPE

São três os tipos de DOCTYPE para XHTML:

  • STRICT
  • TRANSITIONAL
  • FRAMESET

<XHTML; 1.0 Strict <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML; 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Esta é a mais rígida das declarações. Os documentos XHTML no modo Strict não admitem qualquer item de formatação dentro dos elementos e nem elementos em desuso "deprecated" segundo as recomendações do W3C. São indicados para uso com folhas de estilo em cascata, com marcação totalmente independente da apresentação

<XHTML; 1.0 Transitional <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML; 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Esta declaração permite uma maior flexibilidade e é indicada para documentos que ainda utilizem elementos em desuso ("deprecated"), regras de apresentação embutidas em tags e também para
documentos destinados a exibição em browsers sem suporte para CSS. Não admite qualquer tipo de marcação para frames.

<XHTML; 1.0 Frameset <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML; 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Esta declaração permite tudo da declaração transational e mais os elementos especificos para frames.

Validação do documento XHTML

W3C disponibiliza um validador gratuito para documentos XHTML. Ali, você
digita a URL ou o caminho para o arquivo no seu HD e um robo analisa o documento fornecendo um relatório completo e detalhado das não conformidades por ventura existentes. É uma ferramenta excelente para você
usar durante a elaboração ou migração do seu documento para XHTML. Serve como um verdadeiro revisor do código que você cria. Abaixo o link para o validador:

Validador XHTML do W3C

Maujor

Exerci o magistério paralelamente a minha carreira profissional por toda uma vida e ao longo destes trinta anos aprendi tanto quanto ensinei. Sou um apaixonado por Web Standards e desenvolvo o site de tutoriais CSS para Web Design.

View Comments

  • valeu pelo tutorial Maujor,me ajudou muito a entender passo a passo sobre o xhtml.

  • Hugo
    *não se deve colocar um elemento de bloco dentro de um elemento de linha*b - Correto.
    *se eu quiser, posso fechar as tags no HTML 4.01?* Pode.

  • Boa tarde Maujor,
    Um adendo e uma dúvida.
    Um adendo: no caso de elementos aninhados não se deve colocar um elemento de bloco dentro de um elemento de linha, correto? ([div][em][p]Aqui um texto negrito[/p][/em][/div]).
    Agora a dúvida: se eu quiser, posso fechar as tags no HTML 4.01?
    Abraços.

  • Precisava saber o que seria uma linguagem de desenvolvimento web,como funciona e se possível,alguns exemplos

  • reparei que esta linguagem de marcação é bem rigorosa a abertura e fechamentos de tags HTML. muito bacana este tipo de linguagem porem um puoco rigorosa com algumas mudanças de parâmetros mas acho que vou começar a adota-la para as minhas paginas futuras de HTML pois acredito que esse tipo de linguagem vai dar outra cara para meu codigo HTML.
    ops XML

  • Gosto muito das materias do site, elas tem me ajudado muito!
    Agora, só pra tirar uma duvida, o blog será utilizado para responder perguntas destinadas as materias?
    Obrigado...

  • Venho te dar os parabéns Mauricio, graças a seus artigos publicados no maujor e agora no blog estou iniciando bem o estudo do desenvolvimento web com qualidade.

  • Parabens Mauricio, muito bom seu Blog. Venho acompanhando seu trabalho ja algum tempo e com certeza essa sera mais uma fonte de estudo para nos desenvolvedores. Agradeço pelos artigos divulgados no site Maujor e agora aqui no Blog, pois aprendi muito atraves dele e com certeza e uma das melhores referencias em web standards.

Share
Published by
Maujor

Recent Posts

Teste seu conhecimento #20

Em 2006 comecei a publicar nesse blog uma série de desafios CSS que consistiam em…

7 anos ago

Teste seu conhecimento #19

Há muito tempo que eu não publico um "Teste seu conhecimento". Esta semana, revendo algumas…

10 anos ago

JavaScript bubbling e capturing

Introdução Elementos da marcação HTML podem ser aninhados uns dentro de outros, criando-se uma cadeia…

10 anos ago

HTML5 – W3C versus WHATWG

HTML5? Web universal? É comum eu me deparar com dúvidas sobre a HTML5 não só…

10 anos ago

Seria esse o futuro das imagens responsivas?

Quem é Tab Atkins Jr? Tab Atkins Jr, um desenvolvedor americano, trabalhou durante muitos anos…

11 anos ago

BrazilJS Conf 2013

Pessoal, a BrazilJS Conf 2013 disponibilizou para o Maujor cupons de desconto para serem oferecidos…

11 anos ago