¿Qué es XHTML?

XHTML es un estándar Web

XHTML 1.0 es una recomendación oficial del W3C con fecha 26 de enero del 2000.

El ser una recomendación del W3C significa que la especificación es estable, que ha sido revisada por los miembros del W3C, y que la especificación es ahora un estándar Web.

XHTML es una combinación de HTML y XML (eXtensible Markup Language).

XHTML está integrado por todos los elementos del HTML 4.01 combinados con la sintaxis de XML.

¿Cómo prepararse para XHTML?

XHTML es la siguiente generación de HTML, pero tomará algún tiempo antes de que los navegadores y otros programas estén listos para él.

Mientras tanto hay algunas cosas importantes que puede ir haciendo para prepararse. XHTML no es muy diferente a HTML 4.01, así cumplir con el estándar 4.01 es un buen principio

Además debe empezar a escribir su código HTML en minúsculas, y jamás saltarse las etiquetas (tag) de finalización como </p>.

Las diferencias más importantes

El <!DOCTYPE> (tipo de documento) es obligatorio

Un documento XHTML está constituido por tres partes:

La declaración DOCTYPE debe ser siempre la primera línea del documento XHTML.

Un documento XHTML se valida contra un DTD (Document Type Definition). Antes de que un archivo XHTML pueda ser adecuadamente validado, un DTD debe ser agregado en la primera línea del archivo.

Los 3 DTD

El DTD especifica la sintaxis de una página web en SGML. Los DTD son usados por aplicaciones SGML como el HTML, para especificar reglas que se aplican al marcado de documentos de un tipo en particular, incluyendo un conjunto de declaraciones de elementos y entidades.

El XHTML está especificado en un DTD escrito en SGML. Un DTD de XHTML describe de forma precisa, en lenguaje legible por computadoras, la sintaxis y la gramática permitida en un documento XHTML.

La versión 1.0 de XHTML está integrada por 3 DTD:

XHTML 1.0 Strict

El DTD estricto incluye los elementos y atributos que no han sido desaprobados o que no aparecen en los framesets. Su declaración es:

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

Se debe usar siempre que se quiera un código limpio, libre de desorden. Debe ser usado junto con hojas de estilo CSS (Cascading Style Sheets) para mejorar la presentación visual.

XHTML 1.0 Transitional

El DTD de transición incluye todo lo del DTD estricto además de los elementos y atributos desaprobados. Su declaración es:

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

Se debe usar cuando se necesiten las ventajas de presentación visual del HTML o cuando se tenga que trabajar con navegadores que no entienden hojas de estilo CSS (Cascading Style Sheets).

XHTML 1.0 Frameset

El DTD para Frameset incluye todo lo del DTD de transición además de los elementos relacionados a los frames. Su declaración es:

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

Se debe usar cuando se necesiten hacer uso de los frames HTML para dividir la ventana del navegador.

Reglas de sintaxis

Casi todos los elementos XHTML comparten los siguientes atributos:

Atributos núcleo

No válidos en base, head, html, meta, param, script, style ni en title

AtributoValoresDescripción
classclass_rule o style_ruleLa clase de un elemento (se usa en CSS)
idid_nameUn identificador único para el elemento
titletooltip_textUn texto para desplegarse como ayuda

Atributos de idioma

No válidos en base, br, frame, frameset, hr, iframe, param ni en script

AtributoValoresDescripción
dirltr | rtlDirección de la escritura del texto
langlanguage_codeEstablece el código del idioma del texto

Atributos de teclado

AtributoValoresDescripción
accesskeycaracterEstablece un atajo de teclado para acceder al elemento
tabindexnúmeroEstablece el orden de tabulación (tab) del elemento

Eventos XHTML

Eventos de ventana

Sólo válidos en body y en frameset.

AtributoValoresDescripción
onloadscriptScript que se correrá cuando se cargue el documento
onunloadscriptScript que se correrá cuando se descargue el documento

Eventos de formas

Sólo válidos en elementos form.

AtributoValoresDescripción
onchangescriptScript que se corre cuando un elemento cambia
onsubmitscriptScript que se corre cuando la forma es enviada
onresetscriptScript que se corre cuando la forma es reseteada
onselectscriptScript que se corre cuando se selecciona un elemento
onblurscriptScript que se corre cuando un elemento pierde el foco
onfocusscriptScript que se corre cuando un elemento obtiene el foco

Eventos de teclado

No son válidos en base, bdo, br, frame, frameset, head, html, iframe, meta, param, script, style ni en title.

AtributoValoresDescripción
onkeydownscriptQue hacer cuando se presiona una tecla
onkeypressscriptQue hacer cuando se presiona y suelta una tecla
onkeyupscriptQue hacer cuando se suelta una tecla

Eventos de ratón

No son válidos en base, bdo, br, frame, frameset, head, html, iframe, meta, param, script, style ni en title.

AtributoValoresDescripción
onclickscriptQue hacer cuando se da un clic
ondblclickscriptQue hacer cuando se da un doble clic
onmousedownscriptQue hacer cuando se presiona el botón del ratón
onmousemovescriptQue hacer cuando se mueve el puntero
onmouseoverscriptQue hacer cuando se mueve el puntero dentro del elemento
onmouseoutscriptQue hacer cuando se mueve el puntero fuera del elemento
onmouseupscriptQue hacer cuando se libera el botón del ratón

Lista de elementos XHTML

Etiqueta (Tag)Descripción
<!-->Defines a comment
<!DOCTYPE> Defines the document type
<a>Defines an anchor
<abbr>Defines an abbreviation
<acronym>Defines an acronym
<address>Defines an address
<applet>Defines an applet
<area />Defines an area inside an image map
<b>Defines bold text
<base />Defines a base URL for all the links in a page
<basefont />Defines a base font
<bdo>Defines the direction of text display
<big>Defines big text
<blockquote>Defines a long quotation
<body>Defines the body element
<br />Inserts a single line break
<button>Defines a push button
<caption>Defines a table caption
<center>Defines centered text
<cite>Defines a citation
<code>Defines computer code text
<col>Defines attributes for table columns
<colgroup>Defines groups of table columns
<dd>Defines a definition description
<del>Defines deleted text
<dir>Defines a directory list
<dfn>Defines a definition term
<div>Defines a section in a document
<dl>Defines a definition list
<dt>Defines a definition term
<em>Defines emphasized text
<fieldset>Defines a fieldset
<font>Defines the font face, size, and color of text
<form>Defines a form
<frame>Defines a sub window (a frame)
<frameset>Defines a set of frames
<h1> to <h6>Defines header 1 to header 6
<head>Defines information about the document
<hr />Defines a horizontal rule
<html>Defines an html document
<i>Defines italic text
<iframe>Defines an inline sub window (frame)
<img />Defines an image
<input>Defines an input field
<ins>Defines inserted text
<isindex>
<kbd>Defines keyboard text
<label>Defines a label
<legend>Defines a title in a fieldset
<li>Defines a list item
<link>Defines a resource reference
<map>Defines an image map
<menu>Defines a menu list
<meta>Defines meta information
<noframes>Defines a noframe section
<noscript>Defines a noscript section
<object>Defines an embedded object
<ol>Defines an ordered list
<optgroup>Defines an option group
<option>Defines an option in a drop-down list
<p>Defines a paragraph
<param>Defines a parameter for an object
<pre>Defines preformatted text
<q>Defines a short quotation
<s>Defines strikethrough text
<samp>Defines sample computer code
<script>Defines a script
<select>Defines a selectable list
<small>Defines small text
<span>Defines a section in a document
<strike>Defines strikethrough text
<strong>Defines strong text
<style>Defines a style definition
<sub>Defines subscripted text
<sup>Defines superscripted text
<table>Defines a table
<tbody>Defines a table body
<td>Defines a table cell
<textarea>Defines a text area
<tfoot>Defines a table footer
<th>Defines a table header
<thead>Defines a table header
<title>Defines the document title
<tr>Defines a table row
<tt>Defines teletype text
<u>Defines underlined text
<ul>Defines an unordered list
<var>Defines a variable

Para hacer a XHTML compatible con los navegadores actuales se debe de agregar un espacio extra antes del símbolo terminal "/" en etiquetas como: <br /> y como <hr />

Codificación XML

Los documentos XML (un documento XHTML es un documento XML) pueden contener caracteres "extranjeros" para la lengua inglesa. Para que el parser (analizador gramatical) de XML los pueda interpretar correctamente se debe de agregar alguno de los siguientes encabezados:

Los siguientes encabezados son sólo válidos en documentos que únicamente contienen caracteres "nativos" de la lengua inglesa:

En caso de que se use un editor de textos compatible con unicode para generar el documento, se puede usar la siguiente declaración:

En resumen, se debería usar un editor de texto que soporte codificación unicode, en caso de que no se cuente con uno verificar el tipo de código que genera el que se usará y poner el encabezado respectivo.

Atributo xmlns

Con este atributo se debe de designar el idioma en el cual se encuentra escrito el documento XHTML:

Comentarios, scripts y estilos CSS

La etiqueta de comentario cambio:

HTML:
<!--Aquí va el comentario-->

XHTML:
<![CDATA[Aquí va el comentario]]>

Para la codificación de scripts y de estilos CSS:

<script type="text/javascript">//<![CDATA[
código de javascript
//]]></script>

Valida la página