El lenguaje de marcado de hipertexto (X)HTML

El lenguaje HTML nació como una aplicación SGML en 1991 y su mayor volumen de estandarización fue en la versión 4.0 de 1997. En 1998 el W3C publicó una simplificación de SGML llamada XML. En el 2000 el W3C publicó XHTML 1.0 como una adaptación de HTML sobre XML y actualizó HTML a 4.01 con el fin de que fuesen cercanamente compatibles. Después de ello, el W3C centró su atención en XHTML descontinuando HTML, hasta que un grupo independiente de interesados trabajaron en una especificación que se convertiría en (X)HTML5 compatible tanto con HTML 4.01 como XHTML 1.0.

El desarrollador web se puede estar preguntando cuál de estos dos lenguajes escoger para un sitio en que va a trabajar. Necesitará entender las diferencias para fundamentar su decisión. HTML es bastante liberal, mientras XHTML es inherentemente estricto. El xhtml_pure_html muestra un trozo de código HTML y el xhtml_pure_xhtml el mismo contenido en XHTML. Las principales diferencias entre estos dos lenguajes son las siguientes.

  1. Los identificadores en HTML no son sensitivos a mayúsculas ni minúsculas; mientras que en XHTML lo son y los definidos por la recomendación usan minúsculas consistentemente.
  2. HTML permite dejar elementos sin cerrar como p y li, otros nunca se cierran como br e img; mientras que en XHTML todo elemento debe cerrarse obligatoriamente.
  3. HTML permite minimizar atributos (attribute minimization), esto es, omitir las comillas alrededor de los valores de atributos que sólo contienen letras, números o los caracteres guión (-), punto (.), guión bajo (_) o dos puntos (:). XHTML exige que todo valor de atributo debe estar encerrado entre comillas.
  4. HTML permite que algunos atributos no tengan valor como disabled en <textarea disabled>, la presencia del atributo es suficiente para generar su efecto. XHTML exige que todo atributo tenga un valor entre comillas, y para estos casos, en XHTML el Consorcio Web tomó la convención de repetir el nombre del atributo en su valor, ejemplo: <textarea disabled="disabled"> [Cast06].
  5. Los elementos html, head y body son opcionales en HTML, pero obligatorios en XHTML. Sin embargo, es una mala práctica omitirlos en HTML.
  6. XHTML puede tener secciones CDATA, mientras que HTML no.



Mis libros

Compre uno de mis libros:

  • C++Ejercicios intrincados en C++
  • MateCómo ganarle al chofer de bus en mate
]]>
Un documento HTML 4.01 strict válido. Correr este ejemplo.





   
   Mis libros



   

Compre uno de mis libros:

  • C++Ejercicios intrincados en C++
  • MateCómo ganarle al chofer de bus en mate
]]>
Un documento XHTML 1.0 strict válido. Correr este ejemplo.

Es evidente que escribir HTML es más relajado que XHTML, si ambos producen el mismo efecto en el navegador ¿por qué molestarse con XHTML? HTML obliga al navegador a programar excepciones y reglas circunstanciales que dilatan el procesamiento y propician a la ambigüedad. XHTML obliga a una sintaxis restringida que facilita al navegador y otros software XML a interpretar código fácil y eficientemente. Además XML abre un conjunto de funcionalidades y tecnologías que no están disponibles para HTML, como la posibilidad de incrustar otras especificaciones como SVG y MathML en los documentos XHTML.

Si una persona piensa escribir algunas páginas manualmente, quizá HTML sea la mejor alternativa. Si planea que esas páginas formen parte de un sitio web grande, sean almacenadas en bases de datos o procesadas por algún tipo de software, es mejor que elija XHTML. En general se cumple que código XHTML válido es también código HTML válido (o con mínimas modificaciones), no el recíproco. Por eso este capítulo conferirá énfasis a XHTML y las diferencias importantes con HTML se resaltarán en su contexto.

10 pts.

El documento del convert_html_xhtml es HTML válido. Conviértalo en un documento XHTML 1.0 estricto válido. Revise la sección Declaración del tipo de documento para utilizar validadores automáticos.




Conversión HTML a XHTML

Conversión HTML a XHTML

  1. Cambie todos los identificadores a minúsculas.
  2. Asegúrese de que todos los elementos estén cerrados.
  3. Agregue comillas a todos los valores de atributos.
    Si hay atributos minimizados, repita su valor entre comillas.
  4. Agregue los elementos html, head y body si no lo están.

Conversión XHTML a HTML

  1. No cierre los elementos que se componen de sólo una etiqueta: img, br, hr, ...
  2. Si las hay, elimine las secciones CDATA y convierta los caracteres especiales (<, >, &) en sus respectivas referencias de entidad (&lt;, &gt;, &amp;).

]]>

Un documento HTML 4.01 strict válido. Correr este ejemplo.

Estructura global

Un documento web es muy similar a cualquier otro documento que una persona podría escribir en un procesador de palabras, y por ende tiene títulos, párrafos, tablas, imágenes, enlaces, estilos y otros elementos familiares. La principal diferencia es que un documento web debe seguir estrictamente la sintaxis de (X)HTML. Al hacerlo, cualquier software (X)HTML podrá manipular el documento, sea un navegador, un programa de diseño, un motor de bases de datos y hasta el mismo procesador de palabras mencionado anteriormente. Dado que el navegador es el más común, se usará en este texto por claridad en lugar de software (X)HTML.

Un documento web se compone de cuatro partes: la declaración del tipo de documento, el elemento documento, el encabezado y el cuerpo. El xhtml_outline muestra un ejemplo de documento XHTML con estas cuatro partes. Los comentarios utilizan la misma notación de XML y pueden aparecer en casi cualquier lugar del documento.






   
   Título del documento



   


]]>
Mínimo documento válido en XHTML 1.0

La declaración del tipo de documento web

La declaración del tipo de documento, expresada con la etiqueta <!DOCTYPE ...>, informa al navegador el tipo de documento (HTML o XHTML) y la versión usada en el resto del documento. Con esto el navegador sabrá cómo interpretar la sintaxis y contra cual especificación validar su código. La tabla html_doctypes muestra los tipos de documentos y sus versiones actualmente en uso. [Para una lista completa que incluye tipos de documentos para XHTML-Basic y XHTML Mobile Profile, resulta conveniente consultar la Wikipedia].

Language Ver. Variation Document type
HTML 4.01 strict <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
transitional <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
frameset <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 strict <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
transitional <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
frameset <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
1.1 -- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
(X)HTML 5.0 -- <!DOCTYPE html>
Tipos de documento (X)HTML de acuerdo a su versión y variación

Aunque en HTML es opcional, siempre es conveniente incluir el tipo de documento; y a menos de que se esté usando (X)HTML5 es difícil memorizarlos. Por eso los autores históricamente han tenido una fuente de la cual copiar y pegar los tipos de documentos en sus creaciones, o confiar en un programa de diseño web que haga el trabajo automáticamente.

Si se omite la declaración del tipo de documento, la mayoría de navegadores entran en "quirks mode", un modo de compatibilidad para poder desplegar páginas web obsoletas que contienen errores o "quirks", con resultados que eran dependientes del navegador. Si la declaración del tipo de documento está presente, el navegador entra en modo estándar, y si el documento es válido, el comportamiento debería ser homogéneo entre navegadores.

5 pts.

Descargue un DTD de HTML 4.01 ó XHTML 1.1 y averigüe si ¿es permitido escribir texto puro directamente en el contenido del elemento body? Justifique su respuesta.

Existen varias herramientas gratuitas de aseguramiento de la calidad (QA, Quality Assurance)que permiten someter un documento web a un conjunto de pruebas y obtener retroalimentación de si está bien formado, se conforma al tipo de documento que declara, no tiene enlaces rotos, sus estilos son válidos y otras pruebas. Algunas de estas herramientas son las siguientes:

Existen otros validadores disponibles no mencionados en la lista anterior. Un código que resulte ser válido tras someterse a varios validadores, se considerará de mejor calidad y con más garantía de funcionar apropiadamente entre navegadores.

5 pts.

Localice dos páginas web de su agrado y sométalas al validador del W3C. Al menos una de ella debe no conformarse al estándar que declara. Si usted tuviera que corregirla, describa rápidamente qué cambios tendría que hacerle.

10 pts.

Haga estadísticas. Someta al validador del W3C al menos diez páginas web que frecuenta (por ejemplo, las que tiene registradas en sus favoritos). ¿Cuántas de ellas son válidas? ¿Qué tipos de documentos (DTD) son los menos y más usados? ¿Reflejan sus resultados estadísticas generadas por otros autores (por ejemplo: 70% HTML, 30% XHTML)?

Cuando escriba un documento HTML, almacénelo con extensión .html y los documentos XHTML con extensión .xhtml. Aunque la extensión no debería ser algo de importancia, de forma lamentable, la mayoría del software web actual se guía por este detalle en lugar de la declaración del tipo de documento (incluso los validadores del W3C). Es probable que se tenga que hacer ajustes en la configuración del servidor web para que sirva los archivos XHTML correctamente. Además Internet Explorer 8 y anteriores no despliegan páginas XHTML sino que las ofrecen al usuario para que las guarde en disco; lo cual es una muestra de la reluctancia de Microsoft por los estándares.

(X)HTML5 pretende simplificar el web de un modo pragmático. Aunque aquí se incluye el "5" en "(X)HTML5" para diferenciarlo de sus predecesores, sus autores lo llaman realmente HTML, el estándar vivo, sin ningún número de versión, y por eso no se especifica en el DOCTYPE, ni tampoco su DTD como se aprecia en la línea 1 del xhtml5_outline, lo cual hace que deje de ser una aplicación XML válida. Por esto se dice que XHTML5 no existe como un estándar. El estándar es HTML5, el cual permite utilizar tanto la notación de HTML como XML, pero sin mezclarlos. Por esto XHTML5 no es una aplicación XML como sí lo es XHTML 1.0. XHTML5 simplemente es un término para referirse al HTML5 que utiliza notación XML.

Dado que XHTML5 no es una aplicación XML, los navegadores ignorarán la declaración XML (<?xml ...?>) en la primera línea del documento, por lo cual es común omitirla, como se hizo en el xhtml5_outline. La declaración de codificación debe hacerse entonces en el encabezado con un elemento meta (línea 4) mucho más sencilla que en XHTML 1.0 (compárese con la línea 7 del xhtml_outline).



   
      
      Título del documento
   
   
      
   

]]>
Mínimo documento válido en XHTML5. Ver archivo.

El elemento documento

El elemento documento o elemento raíz de un documento (X)HTML es html. Normalmente se escribe sin atributos, lo cual es válido tanto en HTML como XHTML. Su único atributo exclusivo en XHTML es el espacio de nombres xmlns, el cual sirve para indicar que sus identificadores pertenecen al espacio de nombres de XHTML y así evitar que colisionen con otras especificaciones. Los demás atributos son los comunes para casi todos los elementos XHTML, mostrados en la xhtml_common_att. El elemento raíz html sólo admite dos elementos hijos: un encabezado (head) y el cuerpo del documento (body).

Atributo Descripción
id Un nombre que identifica de forma única a un elemento, de tal forma que se le puede hacer referencia posteriomente, en especial en hojas de estilo y programas de JavaScript.
class Sirve para agrupar varios elementos bajo un identificador común. A todos los elementos de una misma clase se les puede aplicar estilos o acceder desde un programa de JavaScript. Por su parte, un elemento puede pertenecer a varias clases, las cuales se separan por espacios en blanco en el valor de este atributo.
xml:lang Indica el idioma en el que se encuentra el contenido del elemento. Su valor es un código de idioma en el estándar ISO-639. Sólo está disponible en XHTML. Tiene prioridad sobre lang.
lang Igual que xml:lang. Está disponible tanto en HTML como XHTML, por lo que se prefiere en (X)HTML5.
dir La dirección del texto que se encuentra en el contenido del elemento. Puede tomar tomar los valores ltr para izquierda a derecha y rlt para derecha a izquierda.
Atributos comunes para la mayoría de elementos (X)HTML
5 pts.

Obtenga una copia del archivo que hizo en el ejercicio html_to_xhtml. Cambie la dirección del texto de derecha a izquierda del elemento body u otros elementos. Pruebe en un navegador su efecto. ¿Es lo mismo que usar el estilo de justificación derecha del texto?

Encabezado del documento

El encabezado del documento (X)HTML contiene información sobre el documento mismo pero que no es considerado parte del contenido, a lo que frecuentemente se le llama "metadatos" y son útiles para los navegadores o motores de búsqueda. Los elementos que pueden aparecer en el encabezado son: el título del documento, metadatos, hojas de estilo, programas de JavaScript y otros objetos. En esta sección se estudiarán los dos primeros.

El título del documento se escribe como un texto simple en el contenido del elemento title y es obligatorio en XHTML. No es parte del contenido del documento porque las personas lo usarán antes de tener acceso a él. Por eso, es uno de los textos más importantes y siempre debe escogerse con cuidado, tratando de que sea corto y descriptivo. Aparece en la barra de título del navegador y en los resultados de los motores de búsqueda como Google y Yahoo. Los lectores lo verán en el historial de su navegador y con suerte en sus favoritos.

Los metadatos son detalles sobre el contenido del documento como el autor, palabras clave, codificación del texto, etc. Se escriben en forma de parejas atributo-valor con el elemento vacío meta. El nombre del metadato se escribe en el atributo name y el valor del metadato en el atributo content. Si el nombre del atributo es el mismo que una de las directivas del encabezado HTTP se puede escribir en el atributo http-equiv en lugar de name. Cuando un documento web es solicitado, el servidor web puede revisar el encabezado por estos metadatos http-equiv y agregar las respectivas directivas en el encabezado del mensaje de respuesta HTTP (HTTP Response header) que precede al documento.

La recomendación (X)HTML no define un conjunto de valores válidos para ninguno de los atributos de meta, sino que permite libremente construir perfiles (profiles) de metadatos. El xhtml_header_example muestra un ejemplo de encabezado con título y metadatos comunes en XHTML 1.0. Para más detalles, revísese la especificación HTML 4.01. En versiones más recientes de (X)HTML, el W3C ha adoptado una notación más elaborada para la especificación de metadatos llamada Marco de descripción de recursos (RDF, Resource Description Framework).


   
   
   
   
   Carta al estudiante

]]>
Encabezado de un documento XHTML 1.0 con metainformación y título

El metadato para declarar la codificación del documento (en la línea 2 del xhtml_header_example) es tan común que en (X)HTML5 se agregó el atributo charset [que conceptualmente debió llamarse encoding] al elemento meta. De esta forma, los documentos (X)HTML5 pueden especificar la codificación de la forma compacta <meta charset="utf-8"/>, como se hizo en la línea 4 del xhtml5_outline.

5 pts.

Nota: Para la serie de ejercicios identificados de la forma website_index_#, no cree una carpeta, sino un archivo index.html en la raíz de su sitio web personal. Cada ejercicio en esta secuencia debe generar un commit con cambios en este archivo.

Cree un archivo index.html en la raíz de su sitio web personal. Su documento debe ser HTML5 con el espacio de nombres XHTML y apegarse a la nomenclatura XML. Escriba el encabezado HTML. Su encabezado debe tener un título significativo y al menos los siguientes metadatos: codificación, autor, el generador (quién hizo el documento: usted mismo/a) y palabras clave. Puede revisar la recomendación HTML5 por documentación sobre estos metadatos.

Después del encabezado (elemento head) continúa el cuerpo del documento (elemento body). El cuerpo del documento almacena el contenido del documento. Esto es lo que ve o escucha el usuario una vez que se ha cargado. El contenido del elemento body puede ser texto puro en HTML, pero normalmente es una mezcla de los elementos que se explican en el resto de secciones de este capítulo.

Elementos de estructura del documento

Un sitio web es una colección intercomunicada de páginas web. Para hacer que la interacción de los visitantes con el sitio sea clara, todas las páginas que componen el sitio deben tener la misma estructura principal, presentación y comportamiento. La estructura principal de la página se refiere a las grandes partes o secciones de información que la componen. En la mayoría de sitios web, estas grandes partes son un encabezado del sitio, un pie de página, un menú de navegación y el contenido propio de cada página. La fig_xhtml_site_structure muestra estas partes rotuladas en verde y dos distribuciones en que se pueden formatear con hojas de estilo.

Estructura de página web
Una estructura de página y dos formas de distribuir sus partes con estilos

(X)HTML5 define elementos para describir cada una de las partes mencionadas. Los autores de versiones previas de (X)HTML utilizaron elementos genéricos (div), los cuales siguen siendo válidos en (X)HTML5, pero carentes de semántica. El xhtml_page_structure_outline presenta un ejemplo de cómo se pueden utilizar los nuevos elementos en (X)HTML5 para especificar la estructura principal de página de inicio de un sitio web. En la siguiente subsección se explica cada uno de estos elementos.




	
	
	Título de la página


	
	
	
...
...
...
...
...
]]>
Estructura general en XHTML5 de una página característica de un sitio web. Correr este ejemplo.

Debe aclararse que un sitio web está compuesto de páginas web. Si se quiere que la estructura principal, la presentación y el comportamiento sea uniforme en todo el sitio web, cada página que compone el sitio debe tener la misma estructura principal, reglas de estilo y código de JavaScript. Esto lleva a redundancia de código. Los estándares web permiten reutilizar hojas de estilo y archivos de JavaScript a lo largo de todo el sitio; pero no proveen un mecanismo natural para reutilizar contenido (como el encabezado o pie de página del sitio web). Por esto los autores deben recurrir a otras tecnologías para evitar la redundancia de código no controlada. Ejemplos de estas tecnologías son Server Side Includes, programación del lado del servidor (como PHP), documentos anidados (iframe), o programación del lado del cliente (JavaScript). En el capítulo sobre programación del lado del servidor se construirá un web framework minimalista para resolver este problema.

Elementos de estructura en (X)HTML5

En un sitio web puede haber publicaciones de diversa naturaleza y de distintos autores: artículos, entradas de un blog, comentarios enviados por los lectores, libros, tutoriales, encuestas, noticias, etc. Para representar estas creaciones (X)HTML5 define seis elementos genéricos para amoldarse y poder describir la estructura de un documento: header, footer, nav, aside, article y section.

En (X)HTML5 el elemento header sirve para describir el encabezado de página, de un artículo o una sección. En cuanto a un sitio web, el encabezado suele contener el logotipo de la empresa o del sitio, el título del sitio, algún lema, y un campo de texto para hacer búsquedas en el sitio web, entre otros elementos. En las líneas 10 a 14 del xhtml_page_structure se muestra un encabezado de sitio web. El sobreuso que se hizo en el xhtml_page_structure del atributo id en la mayoría de elementos de estructura es opcional, pero facilita la labor de presentación (hojas de estilo) y de comportamiento (JavaScript).

El elemento footer indica el pie de página, o el pie de una sección; el cual sirve para indicar información acerca de ella, como el autor, enlaces hacia documentos relacionados (como términos de servicio, u otro menú de navegación), derechos de autor, etc. Las líneas 54 a 56 del xhtml_page_structure presentan un pie de página, cuyo texto se escribió dentro de un elemento small, redefinido en (X)HTML5 para marcar textos con restricciones legales y similares.

El elemento nav sirve para indicar un conjunto de enlaces que proveen navegación de la página misma (como una tabla de contenidos), o del sitio web mismo, como se hizo en las líneas 16 a 25 del xhtml_page_structure. Enlaces de publicidad, referencias bibliográficas, resultados de búsquedas, y similares, no deben encerrarse dentro de un elemento nav, dado a que no representan navegación dentro del sitio. El elemento nav puede contener títulos; cero, una o varias listas no ordenadas; párrafos y otros elementos.

El contenido de la página web inicia con cualquier elemento que no sea uno de los anteriores. Sin embargo, es apremiante que el autor estructure el contenido utilizando elementos article y section.

De acuerdo a la especificación oficial, el elemento article se utiliza para especificar una obra auto-contenida en un documento, página, aplicación o sitio; y es, en principio, independientemente "distribuible" o reutilizable [Laws11]. Esto implica que un artículo es un trozo de información que puede ser movido de un lugar a otro dentro de la misma página web (a un margen, por ejemplo) y mantener su sentido. Son ejemplos: una entrada de un blog o foro, una noticia, un comentario de usuario, etc. Los elementos article se pueden anidar. En el xhtml_page_structure se indicó que la página web completa es un artículo (línea 9 a 57) y el contenido propio de la página, es decir, sin considerar el encabezado, menú de navegación y pie de página, es también un artículo (línea 27 a 52).

Los artículos se dividen en secciones temáticas. Por ejemplo, un libro se divide en partes, capítulos y secciones. Cada una de estas partes se identifica con un título. El elemento section permite dividir un artículo en partes o secciones, las cuales no son independientes, sino que tienen un orden. Como es de esperar, si una sección de contenido se mueve de lugar dentro de la misma página web (a un margen, por ejemplo), perderá su sentido. En el xhtml_page_structure cada entrada introductoria hacia una parte del sitio web, fue representada como una sección (líneas 34 a 40, y líneas 42 a 48). Las secciones se pueden anidar entre sí. La especificación (X)HTML5 también permite anidar artículos dentro de secciones; y las secciones también pueden tener encabezados, elementos de navegación y pie de sección.

El elemento aside sirve para indicar contenido que no es considerado parte del contenido principal del documento, por ejemplo, publicidad, noticias, artículos relacionados, etc. Si se quiere, el menú de navegación del sitio (nav) puede escribirse dentro de un elemento aside, para indicar que no es parte del contenido principal.




   
   
   Tres uves dobles


   

Bienvenido(a) a Tres uves dobles, un sitio web con consejos para crear sitios web. Todo el código aquí alojado puede utilizarlo libremente en sus propios proyectos. Además puede colaborar con nuevos trucos que considere útiles para otros desarrolladores. Los consejos en este sitio están separados en los siguientes grandes temas:

Sección XML

Trucos sobre XML

Trucos para representar información en XML. Escribir y documentar sus propios DTD. Hacer transformaciones con XSLT. Formatear documentos con XSL-FO. Ejemplos de API y DOM.

Sección (X)HTML

Trucos sobre (X)HTML

Trucos para representar contenido en HTML 4.01, XHTML 1.0 y (X)HTML5. Tipos de documento. Elementos de texto. Elementos de estructura. Elementos multimedia (imágenes, audio, vídeo).

© 2012. Jeisson Hidalgo-Céspedes. Todos los derechos reservados.

]]>
Estructura en XHTML5 de una página principal de un sitio web ficticio. Correr este ejemplo.
5 pts.

Identifique las partes o secciones de contenido que su sitio web personal debe tener, a partir del diseño de sitio que realizó en el ejercicio [student_site_design]. Refleje estas partes o secciones en su índice del sitio web (index.html) utilizando los elementos de estructura definidos en (X)HTML5.

Elementos genéricos de estructura

Cuando el autor quiere especificar la estructura de un trozo de información, pero no existe un elemento en el estándar (X)HTML para tal fin, debe recurrir a uno de los elementos genéricos: div o span. Nota: Los autores deben siempre preferir los elementos semánticos y recurrir a los elementos genéricos sólo en última circunstancia, cuando no existe un elemento para el fin requerido.

Según la recomendación, el elemento div carece completamente de semántica. Simplemente se utiliza para agrupar elementos hijos o texto, al cual se le puede dar algún tratamiento con los atributos comunes, como id, class, lang y title. El atributo id sirve para darle un identificador único en el documento a un elemento. El atributo class sirve para agrupar uno o más elementos con características comunes, es decir, crea una clase de elementos, de forma similar a las clases de programación orientada a objetos.

Por defecto el elemento div crea un bloque, de forma similar a los párrafos, títulos, tablas y otros elementos; que al ser colocados uno tras otros, son separados visualmente por "un cambio de línea". En algunas circunstancias, el autor necesita encerrar sólo unas letras o un trozo pequeño de texto dentro de un párrafo, dentro de un título, etc.; para darle un tratamiento especial. Este es el objetivo del elemento span, el cual carece de semántica al igual que div y es normalmente usado con los atributos class, id o lang.

Elementos de texto

En esta sección se presentarán los elementos más comunes para estructurar el texto del documento web: títulos de secciones, párrafos, texto preformateado, texto estructurado y listas de elementos.

Títulos de secciones

Los documentos en (X)HTML5 son divididos en partes con elementos como article y section. Por ejemplo, un libro se divide en capítulos y secciones. Tanto la obra como sus partes son identificadas con títulos (en inglés, headings). En el caso de libro, cada uno de sus capítulos, secciones, y el mismo libro, tienen un título que las identifica y distingue de las demás.

(X)HTML define 6 niveles de títulos en orden descendente de importancia h1, h2, ..., h6. El navegador u otro software podría usar los títulos del documento, por ejemplo, para construir una tabla de contenidos automáticamente. Es habitual que la primera actividad que realice un autor sea definir la estructura temática de su documento antes de empezar a escribir el contenido de cada sección.

El formato por defecto de cada título es dependiente del navegador. Es usual que empleen tamaños más grandes y mayor peso para que sean más vistosos. En general esto ocurre con todos los elementos visuales de (X)HTML y es bueno que el navegador escoja su formato por defecto. De esta forma, el autor se concentra en escribir el contenido del documento y el navegador escoge el formato ideal para un medio específico, por ejemplo, una limitada pantalla de un dispositivo móvil. Sin embargo, (X)HTML permite al autor controlar el formato utilizando hojas de estilo como se estudiará en el capítulo siguiente.

El xhtml_section_headings presenta un ejemplo de cómo se pueden usar los títulos de secciones dentro de los elementos article y section para estructurar las partes de una tesis en (X)HTML5. En este ejemplo, el título de nivel 1 (h1) se usa para el título de la tesis, los títulos de nivel 2 (h2) para los títulos de los capítulos, los títulos de nivel 3 (h3) para los títulos de las secciones, y así sucesivamente.




   
   Tesis: Representación de letras de canciones en XML



   

Tesis: Representación de letras de canciones en XML

Maicol Yaxon <myaxon@garach.edu>

Resumen

Dado que no existe un estándar para representar letras[...]

Objetivos

Objetivo general

El objetivo general de este trabajo es formular una espec[...]

Objetivos específicos

  1. Analizar estadísticamente los componentes típicos [...]
  2. Proponer una representación XML de los componentes[...]
  3. Generar tipos de documentos y esquemas de la repre[...]
  4. [...]
]]>
Secciones y títulos de un artículo en (X)HTML5. Correr este ejemplo.

En HTML 4.01 / XHTML 1.0 y versiones previas, no existen los elementos semánticos de estructura como article y section. Los autores recurrían a elementos genéricos de división del texto div o simplemente dejaban a los títulos flotar libremente entre el texto del documento, ya que el navegador asume que cada título está dentro de una sección implícita. Es decir, cuando se abre un título de igual o mayor nivel, el navegador asume que la sección anterior se debe cerrar. El uso de títulos fuera de artículos, secciones o elementos div, limita el poder de los estilos (CSS) o del comportamiento (JavaScript), y no se recomienda para documentos extensos o complejos.

5 pts.

Escriba el título de su sitio web en un título de nivel 1 (h1). No utilice elementos h1 para ningún otro título del documento. Su título del sitio debe estar en un elemento header.

Utilice un título de nivel 2 para el título de la página web (probablemente sea una répica del título del documento (X)HTML, el cual está en el elemento title). No utilice títulos de nivel 2 para otros títulos del documento.

Utilice títulos de nivel 3 (h3) para las secciones de contenido, que probablemente se repitan en su página web.

Párrafos

Un párrafo en (X)HTML se escribe con el elemento p como se aprecia en el listado xhtml_paragraphs_example. Aunque en HTML es opcional cerrarlo, es recomendable siempre hacerlo. A través de hojas de estilo se puede controlar el espaciado entre párrafos, la sangría y otros formatos. No escriba párrafos vacíos <p></p> para tratar de dejar espacio en blanco en el documento. La especificación (X)HTML recomienda al navegador ignorar estos elementos. Algunos autores, entonces, fuerzan el espaciado con párrafos que consisten de espacio no separable (<p>&nbsp;</p>), lo cual es el mal uso de la estructura (los párrafos) con fines de apariencia (el estilo).




   
   Programación en C++



Universidad de Costa Rica
Escuela de Ciencias de la Computación e Informática
CI1201 - Programación II

Programación en C++

Introducción a la programación

La computadora es un artefacto electro-matemático que puede ejecutar[...]

Hola mundo en C++

Desde el libro de Kernighan y Ritchie se ha seguido la tradición del primer programa a mostrar sea uno simple: escribir la cadena "Hola mundo" en la pantalla o algún otro medio. La forma de decir "Hola mundo en C++" se aprecia en el siguiente código:



           int main()
           {
            std::cout << "Hola mundo" << std::endl;
            return 0;
           }
         ]]>]]>

      
]]>
Párrafos y texto preformateado en (X)HTML. Correr este ejemplo.

A veces se quiere insertar un cambio de línea sin iniciar otro párrafo, por ejemplo, en un poema los versos se separan por cambios de línea y las estrofas por párrafos. Un cambio de línea se representa con el elemento vacío <br /> (acrónimo de break return). Algunos autores acostumbran dejar el espacio en blanco antes de la barra inclinada en las etiquetas vacías, ya que navegadores viejos que no implementan XHTML ignorarán la barra inclinada pensando que fue un "dedazo" del autor. Esta práctica ya no es necesaria.

Cuando la longitud de un párrafo excede el ancho de la ventana, el navegador inserta cambios de línea automáticos (word wrap). Cuando se quiere evitar que el navegador por esta característica separe dos palabras, estas deben separarse por un espacio no divisible (not breaking space) obtenible por la referencia de entidad &nbsp;. Por ejemplo, el código (506)&nbsp;905-LLAMEYA genera el texto "(506) 905-LLAMEYA". Si usted redimensiona la ventana del navegador, notará que el número de teléfono no será separado del código de país mientras se ajusta el párrafo automáticamente al tamaño de la ventana (probar en una ventana externa). La entidad &nbsp; está sólo disponible en HTML. En XHTML se puede usar su equivalente &#160;.

El hecho de que (X)HTML ignore los cambios de línea que usted escribe, no es práctico para escribir código fuente u otros tipos de escritos donde el espaciado en blanco es relevante. Para esas situaciones (X)HTML provee el elemento de texto preformateado pre, el cual instruye al navegador mantener los espacios en blanco, usar una fuente mono-espaciada y desactivar el ajuste automático de línea (word wrap). La especificación recomienda a los navegadores reemplazar tabuladores por 8 espacios en blanco, lo cual muchas veces resulta molesto, por eso, es recomendable utilizar espacios en blanco en lugar de tabuladores en las secciones pre o hacer modificaciones con programación del lado del servidor o JavaScript.

El navegador intentará interpretar el marcado (X)HTML que escriba dentro de un elemento pre, por esto debe al menos reemplazar los tres caracteres especiales (<, > y &) con sus referencias de entidad respectivas (&lt;, &gt; y &amp;), o escribir el texto dentro de una sección CDATA como se hizo en las líneas 26 a 34 del xhtml_paragraphs_example, lo cual tendrá efecto sólo si su documento es XHTML.

Un elemento hr (hard return) crea una línea horizontal que sirve para separar párrafos tratando de hacer una separación más visible entre ellos, por ejemplo, para separar los cambios temáticos entre estrofas de un poema. Es un elemento vacío y su apariencia debe ser estrictamente controlada con estilos.

5 pts.

Los elementos blockquote y q sirven para citar ideas de otro autor. Investigue en la especificación:

  1. ¿Cuál es la diferencia entre blockquote y q?
  2. ¿Debe el autor proveer comillas o estos elementos las agregan automáticamente?
  3. ¿Estos dos elementos permiten agregar varios párrafos p en su contenido?
  4. ¿En qué afecta indicar el idioma de la cita?
  5. ¿Cuáles de estos elementos se pueden anidar?
  6. ¿Qué abuso han históricamente cometido los autores de páginas web con el elemento blockquote
5 pts.

Su index.html debe hacer referencia a las grandes secciones de contenido de su sitio web (intro, xml, html, css, js, php). Escriba una sección "entrada de contenido" (y por tanto algo como <section class="content_entry"> para cada una de las secciones de su sitio web. Cada sección de contenido debe tener al menos un título, una imagen y un párrafo. El párrafo debe explicar al visitante de qué se trata esa sección.

Texto estructurado

(X)HTML define los elementos de frase (phrase elements) para agregar información a fragmentos de texto. Son elementos que afectan no a un párrafo sino sólo a algunas palabras de un párrafo, por ejemplo, denotan énfasis en una palabra, un trozo de código, una abreviatura, etc. La xhtml_phrase_elements lista los elementos de frase definidos en (X)HTML.

Elemento Descripción
abbr Indica una abreviatura, ej.: WWW, HTTP, etc., PhD. Son siglas o palabras reducidas.
acronym Indica un acrónimo, ej.: sonar, codec, JSON. Son abreviaturas que se leen como si fueran una palabra normal.
cite Indica una cita o referencia a otras fuentes. No soportado en la mayoría de navegadores.
code Indica un fragmento de código informático.
dfn Indica un término que se está definiendo.
em Indica énfasis.
kbd Indica que el texto debe ser ingresado o tecleado por el usuario.
samp Indica salida de programas informáticos.
strong Indica mayor énfasis.
var Indica una variable de un programa informático.
Elementos de frase en (X)HTML

Los dos elementos de frase de uso más común son em y strong. Normalmente los navegadores los despliegan en itálicas y negritas respectivamente, pero se puede alterar con hojas de estilo. Los demás elementos de frase están orientados a documentos técnicos. El listado xhtml_phrase_elements_example muestra el uso de algunos de estos elementos.


   Se dice que las entidades describen la estructura física
   y los elementos la estructura lógica de los documentos
   XML.
   La estructura lógica (elementos) y física (entidades) se representa dentro del
   documento 
   XML agregando el marcado, el cual
   se delimita de los datos de carácter encerrando la descripción de los
   elementos dentro de paréntesis angulares ("<" y ">"),
   que se conocen como etiquetas y las referencias a entidades entre
   el signo "&" y el punto y coma (";"). Es decir, el
   texto encerrado dentro de estos cuatro caracteres se conoce como marcado,
   lo restante como datos de carácter. La combinación del marcado
   más los datos de carácter son el texto XML [Gold99].

]]>
Elementos de frase en (X)HTML. Correr este ejemplo.

Todos los elementos de frase tienen un atributo title, en el cual se puede escribir información adicional que aparece cuando hay cierta interacción con el elemento, normalmente un "tooltip" cuando el puntero del ratón pasa sobre ellos. Esto es útil para expandir el significado de las abreviaturas y acrónimos sin tener que incluir estas definiciones explícitamente en el texto cada vez que se quiere usar la abreviatura. Nótese que esto se hizo en el listado xhtml_phrase_elements_example para la abreviatura "XML" que aparece dos veces (líneas 4 y 6), lo que genera redundancia de código. Teóricamente esta redundancia se puede evitar en XHTML definiendo entidades generales en el parámetro interno del tipo de documento, sin embargo, los navegadores actuales las ignoran, por lo que la mayoría de autores prefieren hacer algún tipo de programación del lado del servidor antes de despachar la página web.

Los elementos sub y sup sirven para declarar subíndices y superíndices respectivamente. Aunque tienen utilidad matemática y en otras notaciones científicas, realmente se mantienen en la recomendación para otros textos. Ejemplos:

Subíndices y superíndices en (X)HTML
Texto Código (X)HTML
El 1ro de la clase El 1<sup>ro</sup> de la clase
May 3rd, 2011 May 3<sup>rd</sup>, 2011
C6H12O6 C<sub>6</sub>H<sub>12</sub>O<sub>6</sub>

El elemento time aparecido en (X)HTML5 permite especificar que un trozo de texto representa una fecha, una hora o ambas; lo que posibilita a los programas su procesamiento, por ejemplo, para agregar un evento a la agenda del usuario, hacer conversiones de huso horario, guiar a los motores de búsqueda a indexar la fecha correcta, etc. El contenido del elemento time permite escribir la fecha en el formato que prefiera el autor, y el atributo datetime en formato "YYYY-MM-DDThh:mm:ss.sss±HH", el cual puede ser entendido por las computadoras. Ejemplos:

Estimado cliente. Su tiquete para el vuelo LA389 del

ha sido reservado con éxito. La hora actual de su destino, San Pedro Sula, es
 Recuerde registrar este evento en su agenda.

©2012 Tali Van Airlines Group. Documento generado el

]]>
Ejemplos de uso del elemento time

5 pts. Investigue los elementos del e ins en la especificación HTML 4.01, haga un ejemplo y describa cuál es su utilidad.

5 pts. Investigue los elementos i, b, s, small y mark en la especificación HTML5. ¿Cuál es la diferencia entre em e i? ¿Cuál es la diferencia entre strong y b? ¿Cuál es la diferencia entre del y s? Si un documento (X)HTML sólo debe representar contenido y no presentación ni comportamiento ¿por qué el estándar (X)HTML5 los mantiene?

Listas

(X)HTML permite definir listas de ítemes. Las hay en tres tipos: listas ordenadas, listas no ordenadas, y listas de definiciones. Las tres se pueden anidar. El xhtml_lists_example muestra un ejemplo de los tres tipos de listas y su anidamiento:


   

Puesto: Desarrollador web

Requisitos:

  • Conocimiento de estándares web
  • Programación en PHP o JSP
  • DBMS libres: PosgreSQL, MySQL o SQLite
  • Afiliado al colegio respectivo

Procedimiento de reclutación

  1. Llenar la fórmula RE-TI-C-2348 a mano
  2. Presentarla en las oficinas centrales
  3. Si es seleccionado:
    1. Presentarse a realizar el examen RE-TI-E-23
    2. Presentarse a realizar el examen RE-LG-E-02
    3. Si es seleccionado: presentarse a trabajar

Definiciones

DBMS
Database Management System
RE-TI-C-2348
Fórmula de cualidades para TI
RE-TI-E-23
Examen de tecnologías web
RE-LG-E-02
Examen básico de inglés
]]>
Listas de elementos en (X)HTML. Correr este ejemplo.

Las listas ordenadas se escriben con el elemento ol (ordered list). Sirven para indicar que los ítemes en la lista siguen cierto orden, como en una serie de pasos a ejecutar o cuando se quiere simplemente enumerar ítemes. Cada ítem de la lista se escribe dentro del elemento li (list item). Los navegadores les anteponen números arábigos por defecto, pero con estilos estos se pueden cambiar por números romanos, letras u otras formas. El atributo start del elemento ol en (X)HTML5 permite indicar el número con el cual se inicia el conteo, y si no se incluye se asume que es 1.

Las listas no ordenadas se escriben con el elemento ul (unordered list). Sirven para indicar una lista de ítemes que no siguen un orden inherente. Visualmente se anteceden con una viñeta circular que puede cambiarse con estilos a rectángulos u otras figuras.

Las listas de definiciones se escriben con el elemento dl (definition list). Sirven para escribir glosarios u otros tipos de estructuras similares. A diferencia de los tipos de listas anteriores, los ítemes de las listas de definiciones constan de parejas término-definición. El término se escribe con el elemento dt (definition term) y su definición con el término dd (definition description).

Imágenes

La característica más notable del hipertexto es el soporte de varios medios, entre los que se incluyen las imágenes, las cuales se almacenan en recursos (archivos) separados al documento web y se referencian desde éste. Para incluir una imagen se utiliza el elemento vacío img, cuyo atributo src debe tener el URL que identifica el archivo con la imagen, y puede ser absoluto o relativo al documento. La sintaxis más básica del elemento img es como sigue.

<img src="imagen.url" alt="descripción de la imagen" />

(X)HTML requiere un texto alternativo que será desplegado cuando la imagen no es cargada por alguna razón, como imagen inexistente o porque el usuario ha deshabilitado las imágenes en su navegador. Algunos navegadores muestran este texto como un "tooltip" cuando el puntero del ratón pasa sobre ellas, pero esa función es realmente responsabilidad del atributo title, el mismo que se usa en los elementos de frase estudiados en la sección de texto estructurado. Si la imagen se va a usar como una decoración y no se quieren "tooltips", asigne un valor vacío en estos atributos, de la forma <img alt="" title="" ... />. La apariencia del texto alternativo se puede ajustar con hojas de estilo.

Tamaños de imagen

Cuando el navegador está cargando un documento web y encuentra una etiqueta <img src="imagen.url" alt="algún texto" /> con esos atributos, solicita al servidor web que le envíe una copia de la imagen. Mientras ésta llega, el navegador sigue cargando (rendering) el resto del documento (X)HTML. Es muy probable que termine de mostrar el documento antes de que la imagen llegue y que el visitante empiece a leer el documento. Cuando finalmente la imagen es recibida, el navegador la insertará en el lugar donde encontró el elemento img correspondiente, desplazando el texto que se encuentre debajo. Esto es molesto para el lector, en especial si el documento tiene un considerable número de imágenes o son de gran tamaño o ambas.

El problema anterior se soluciona especificando las dimensiones de la imagen en el documento (X)HTML, de tal forma que el navegador pueda reservar espacio para la imagen antes de que esta sea recibida. Simplemente especifique las dimensiones en pixeles con los atributos width y hight.

<img src="imagen.url" alt="texto alternativo" width="320" height="280" />

Si el valor indicado en los atributos ancho o alto de img no coincide con el tamaño real de la imagen, el navegador la escalará. También se puede especificar en ellos un porcentaje de la ventana, algo como width="75%". Normalmente las aplicaciones de diseño web se encargan de asignar los valores reales de la imagen en forma automática. El ancho y alto de una o varias imágenes y otros detalles se pueden controlar con estilos, lo cual es muy útil para un conjunto grande de imágenes que comparten las mismas dimensiones.

Formatos de imágenes

Aunque existen muchos formatos de imágenes, sólo unos pocos se pueden utilizar en la web. La tab_formatos_imagen muestra una comparación de los formatos más soportados entre los navegadores actuales. Es tentador publicar imágenes de alta calidad, pero su tamaño será considerable y tardarán en cargarse en proporción inversa al ancho de banda del visitante. Si una o muchas imágenes hacen lento el cargado de una página web, es una invitación al lector para abandonarla. El autor debe hacer un balance entre la calidad de la imagen y su tamaño en bytes. Por esto es importante que conozca la diferencia entre los formatos disponibles y cómo ajustar este balance.

Formato Tipo Colores Transparencia Pérdida Utilidad
PNG Escalar 256 / 16M No Ilustraciones
JPEG Escalar 16M No Fotografías
GIF Escalar 256 No Animaciones sencillas
SVG Vectorial 16M No Ilustraciones
Formatos de imagen soportados por navegadores

Cuando un autor quiere representar alguna pieza de información en forma gráfica, debe decidir si utilizar una fotografía, una ilustración o una animación. Esta decisión ayuda en gran medida a delimitar el formato a escoger.

Una fotografía tiene millones de colores o grises. Se obtienen por cámaras digitales o escáneres. Ambos dispositivos no proveen información de transparencia. El formato más recomendable para fotografías es el JPEG, creado en 1992 por el Joint Photographic Experts Group. Es un algoritmo de pérdida de calidad que trata de descartar detalles que el ojo humano no percibe con el fin de ahorrar espacio. El formato PNG (Portable Network Graphics) también puede almacenar fotografías, pero sin pérdida de calidad, lo cual es poco recomendable para el web ya que su tamaño compromete la velocidad de carga del documento.

Una ilustración es una imagen, normalmente en dos dimensiones, que contiene texto o lo complementa. Suelen contener diagramas o dibujos hechos en un programa de cómputo, en contraposición a los obtenidos por una cámara o escáner. La cantidad de colores de una ilustración suele ser reducida. El formato PNG o SVG (Scalar Vector Graphics) son aptos para ilustraciones, la diferencia entre ambos es el tipo de imagen: escalar o vectorial respectivamente.

Una imagen escalar es un mapa de bits, es decir, una matriz de tamaño definido donde cada celda o pixel almacena un color codificado en forma numérica. "Redimensionar" a menor tamaño una imagen escalar provoca que ésta se deforme en especial si no se mantiene su proporción. Si se agranda una imagen escalar provocará que los pixeles se propaguen a las celdas adyacentes, generando zonas de colores poco agradables a la vista humana.

Una imagen vectorial está compuesta por figuras geométricas como puntos, líneas, curvas o polígonos. Sus atributos como posición y tamaño son los que se almacenan en el archivo. "Redimensionar" una imagen vectorial a cualquier tamaño significa reajustar las posiciones de las figuras geométricas y volverlas a pintar, lo que provoca que la imagen siempre se vea agradable a la vista humana.

La explicación anterior facilita la decisión hacia SVG como formato de elección para ilustraciones, sin embargo hay que tener en cuenta que, aunque SVG es un estándar abrigado por el W3C, su implementación en los navegadores actuales es parcial y quizá ausente en aquellos de dispositivos móviles, debido a que su despliegue requiere de mayor poder de cómputo que los otros formatos. Algunos sitios web como Wikipedia usan SVG, pero si el navegador no soporta este formato, el servidor web envía a cambio un PNG autogenerado.

Si el autor encuentra que una animación es el mejor medio de comunicar algo, puede usar una imagen GIF (Graphics Interchange Format), que permite animaciones escalares muy sencillas y limitadas a 256 colores. Si se requiere animaciones vectoriales, el autor podría programar un elemento canvas con JavaScript, o tecnologías propietarias como Adobe Flash. Si se requiere animaciones de más de 256 colores, se trata de un video y estos pueden incrustarse con objetos como se estudiará en la sección Objetos multimedia.

Indiferentemente de si se utilizan imágenes escalares o vectoriales, el autor debe conseguir reducir el tamaño tanto como se pueda sin que la imagen se vea desagradable al lector. El autor necesita que el editor de imágenes lo apoye en esta labor. Normalmente estos programas proveen una opción que permite variar el tamaño en bytes de la imagen u otros parámetros y ver el efecto en tiempo real en la visualización de la misma. Es importante que el autor guarde además la imagen original en un formato con mayor calidad o sin pérdida alguna.

Existe considerable cantidad de editores de imágenes disponibles, desde los renombrados paquetes de Adobe: Photoshop para imágenes escalares e Illustrator para imágenes vectoriales. Como opciones libres a estos programas se puede citar Gimp e Inkscape respectivamente.

5 pts. Suponga que está escribiendo un manual de usuario en (X)HTML ¿Qué formato de imagen utilizaría para una captura de pantalla (screenshot) del programa en cuestión? Justifique la respuesta.

Figuras

Cuando se inserta una imagen, vídeo, un listado de código u otro objeto en un documento, es muy común agregar algún texto que dé una explicación corta, los derechos de copia u otros detalles del objeto. Este texto, a veces conocido como leyenda, rótulo o título del objeto (caption), forma junto con el objeto una unidad; es decir, deben estar juntos en el documento. Por ejemplo, si la imagen se mueve de lugar en el documento, el rótulo debe viajar con ella, de lo contario pierde su sentido. (X)HTML5 provee el elemento figure para unir una imagen o cualquier objeto con su leyenda, la cual se indica con el elemento figcaption como se muestra en el xhtml_figure_example.


   
   
Una imagen escalar incrementada 4x
]]>
Agrupar una imagen con una leyenda en (X)HTML5. Correr ejemplo completo.

En caso de proveerse una leyenda con el elemento figcaption, se convierte en opcional el proveer un texto alternativo con el atributo alt de img, como ocurrió en la línea 2 del xhtml_figure_example. Es importante reiterar que el elemento figure no está limitado sólo a imágenes, si no a cualquier objeto o trozo de texto que necesite una leyenda.

Icono de favoritos

Se ha convertido en una práctica común proveer un pequeño icono que ayuda al visitante a identificar la página web. A este icono se le suele llamar icono de favoritos ó simplemente favicon (contracción de favorites icon), porque el navegador lo almacena junto a los favoritos, y lo despliega en la barra de direcciones o en las pestañas. Usualmente el mismo icono se utiliza en todas las páginas de un sitio web, lo que le da identidad al sitio entero y por ende también se le llama icono de sitio web (web site icon).

El favicon es un archivo PNG, o uno con extensión .ico que puede contener imágenes de varios tamaños. Normalmente son de 16x16 pixeles y utilizan fondo transparente. El documento web debe indicar el favicon en su encabezado (head) utilizando el elemento vacío link, el tipo de imagen y su URL, como se muestra en xhtml_favicon_inclusion. A modo de conveniencia véase Wikipedia para otros tipos de imágenes, enlaces y restricciones a la hora de declarar favicons.


   ...
   

]]>
Método más común de incluir un icono dentro de una página web.

Tablas

(X)HTML permite organizar datos en forma tabular con el elemento table. Una tabla es una secuencia de filas declaradas con el elemento tr (table record); y cada fila se compone de celdas td (table data). El xhtml_simple_table muestra una tabla sencilla compuesta de cuatro filas y tres columnas.


    (1,1) (1,2) (1,3) 
    (2,1) (2,2) (2,3) 
    (3,1) (3,2) (3,3) 
    (4,1) (4,2) (4,3) 

]]>
Una tabla sencilla en (X)HTML compuesta de 4 filas y 3 columnas

Como se dijo antes, una tabla es una secuencia de filas, y las filas se pueden clasificar en tres tipos: filas que forman el encabezado de la tabla, filas que forman el cuerpo de la tabla y filas que forman el pie de tabla. Es importante poder indicarle al navegador cuáles filas conforman cada parte de tabla, de esta forma, el navegador podrá resaltar las filas especiales, repetir el encabezado cuando al imprimir el documento la tabla se extiende por varias páginas y funcionalidades similares. El estándar (X)HTML provee los elementos: thead (acrónimo de table head) para distinguir las filas que conforman el encabezado de la tabla; tbody para aquellas que conforman el cuerpo de la tabla; y tfoot para las que conforman el pie de la tabla, tal como se hizo en el xhtml_table_tiobe.


   Lenguajes de programación más populares según TIOBE
   
       #  Lenguaje     Popularidad 
   
   
       1  Java         17.11% 
       2  C            17.09% 
       3  C#            8.24% 
       4  C++           8.05% 
       5  Objective-C   7.74% 
       6  PHP           5.56% 
       7  Visual Basic  4.37% 
       8  JavaScript    3.39% 
       9  Python        3.29% 
       10 Perl          2.70% 
   
   
       Total         77.54% 
   

]]>
Encabezado, cuerpo y pie de tabla en (X)HTML. Correr ejemplo completo.

(X)HTML permite al autor diferenciar las celdas de encabezado con el elemento th (table head) de las celdas de datos td (table data). Nótese que las celdas de encabezado pueden estar tanto en las columnas como en las filas. Esta diferenciación permite al navegador dar mayor énfasis a los encabezados. El autor puede proveer un valor abreviado en el atributo abbr de una celda encabezado th; en caso de que el navegador no tenga suficiente espacio para desplegar la tabla, utilizará la abreviatura indicada.

Es válido tener en una tabla celdas sin contenido. También una celda (de datos o encabezado) puede ocupar dos o más columnas, dos o más filas, o ambas. La cantidad de columnas que ocupa una celda se indica con el atributo colspan y la cantidad de filas que ocupa una celda se indica con el atributo rowspan. El valor por defecto para ambos atributos es 1. En la línea 19 del xhtml_table_tiobe se indica que la celda con el valor "Total" ocupa dos columnas: la columna # y la columna Lenguaje.

Es conveniente que el autor provea una leyenda explicando al lector el objetivo de la tabla, con el elemento caption como se hizo en la línea 2 del xhtml_table_tiobe. Con estilos se puede controlar si la leyenda debe aparecer arriba o debajo de la tabla. Una forma alternativa en (X)HTML5 es introducir tanto la tabla como su leyenda en un elemento figure como se explica en la sección Figuras.

Por defecto el navegador no dibuja bordes en las celdas ni en la tabla. Esto puede ser confuso para el autor, pero es una responsabilidad de las hojas de estilo (CSS) y no de (X)HTML, lo cual se estudiará en el próximo capítulo. Si se requiere de bordes, el autor puede rápidamente agregar en el encabezado de su documento (X)HTML las reglas de estilo de las líneas 7 y 8 del xhtml_table_border_css.




   
   ...
   


...


]]>
Dos reglas de estilo CSS para agregar bordes en las tablas de un documento web.

Objetos multimedia

El elemento img sirve para incrustar una imagen externa en un documento web. Pero cuando se quiere insertar un recurso de otra naturaleza, como un sonido, un video, otra página web, un applet de Java, u otro tipo de recurso, se debe emplear el elemento object. Según el estándar, un object es un elemento que puede representar un recurso externo como una imagen, contexto anidado de navegación, o un recurso que debe ser procesado por una extensión del navegador (plugin).

El uso del elemento object ha caído significativamente debido a que (X)HTML5 define nuevos elementos para representar contenido multimedia, principalmente: video, audio, y canvas. En cuanto a los applets de Java son desalentados en favor de JavaScript. Y la posibilidad de incrustar un documento web dentro de otro nunca ha sido implementado de una forma natural por los navegadores, en especial es difícil de presentar con estilos CSS; lo mismo ocurre con el elemento iframe. De esta forma, la utilidad del elemento object queda casi limitada a incrustar contenido manipulado por extensiones (plugins), en especial contenido para Adobe Flash.

[Contenido pendiente]