Upload
cmgg19846351
View
30
Download
0
Embed Size (px)
Citation preview
LIBROSWEB
JAVIER EGUILUZXHTMLINTRODUCCIN A
Introduccin a XHTMLJavier Eguiluz
Fecha publicacin: 14/03/2013
Este libro fue publicado con la aplicacin easybook (http://easybook-project.org) , una herramien-ta de software libre para la publicacin de libros digitales.
LicenciaEste libro se publica bajo la licencia Creative Commons Reconocimiento - No Comercial - Compartir Igual 3.0,cuyos detalles puedes consultar en http://creativecommons.org/licenses/by-nc-sa/3.0/es/
Puedes copiar, distribuir y comunicar pblicamente la obra, incluso transformndola, siempre quecumplas todas las condiciones siguientes:
Reconocimiento: debes reconocer siempre la autora de la obra original, indicando tanto elnombre del autor (Javier Eguiluz) como el nombre del sitio donde se public originalmente(librosweb.es). Este reconocimiento no debe hacerse de una manera que sugiera que el autor oel sitio apoyan el uso que haces de su obra.
No comercial: no puedes utilizar esta obra con fines comerciales de ningn tipo. Entre otros,no puedes vender esta obra bajo ningn concepto y tampoco puedes publicar estos contenidosen sitios web que incluyan publicidad de cualquier tipo.
Compartir igual: si alteras o transformas esta obra o si realizas una obra derivada, debescompartir tu trabajo obligatoriamente bajo esta misma licencia.
ndice de contenidosCaptulo 1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1. Qu es HTML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2. Breve historia de HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.3. Especificacin oficial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.4. HTML y XHTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.5. HTML y CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Captulo 2. Caractersticas bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.1. Lenguajes de etiquetas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2. El primer documento HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3. Etiquetas y atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4. Elementos HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.5. Sintaxis de las etiquetas XHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Captulo 3. Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.1. Estructurar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.2. Marcado bsico de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3. Marcado avanzado de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.4. Marcado genrico de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.5. Espacios en blanco y nuevas lneas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.6. Codificacin de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Captulo 4. Enlaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.1. URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.2. Enlaces relativos y absolutos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.3. Enlaces bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.4. Enlaces avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.5. Otros tipos de enlaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664.6. Ejemplos de enlaces habituales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Captulo 5. Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.1. Listas no ordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.2. Listas ordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745.3. Listas de definicin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Captulo 6. Imgenes y objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.1. Imgenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.2. Mapas de imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826.3. Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Captulo 7. Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897.1. Tablas bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907.2. Tablas avanzadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Captulo 8. Formularios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078.1. Formularios bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078.2. Elementos de formulario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098.3. Formularios avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168.4. Otros elementos de formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Captulo 9. Estructura y layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Captulo 10. Metainformacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
10.1. Estructura de la cabecera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13110.2. Metadatos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13310.3. DOCTYPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Captulo 11. Otras etiquetas importantes. . . . . . . . . . . . . . . . . . . . . 13711.1. Comentarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13711.2. JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13811.3. CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13911.4. Iframes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14011.5. Otras etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Captulo 12. Accesibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14512.1. Requisitos del nivel A de accesibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Captulo 13. Validacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14913.1. Validacin con Dreamweaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14913.2. Validador del W3C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15113.3. Otros validadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Captulo 14. Fragmentos de cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . 15514.1. Documento XHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16014.2. Cabecera XHTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
14.3. Tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16114.4. Formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Captulo 15. Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16515.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16515.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16515.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16615.4. Ejercicio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16715.5. Ejercicio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16815.6. Ejercicio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16815.7. Ejercicio 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17015.8. Ejercicio 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17115.9. Ejercicio 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17215.10. Ejercicio 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17315.11. Ejercicio 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17415.12. Ejercicio 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17515.13. Ejercicio 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17615.14. Ejercicio 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17815.15. Ejercicio 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17915.16. Ejercicio 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Esta pgina se ha dejado vaca a propsito
6
Captulo 1.
Introduccin1.1. Qu es HTML?Definindolo de forma sencilla, "HTML es lo que se utiliza para crear todas las pginas web de Internet". Msconcretamente, HTML es el lenguaje con el que se "escriben" la mayora de pginas web.
Los diseadores utilizan el lenguaje HTML para crear sus pginas web, los programas que utilizan losdiseadores generan pginas escritas en HTML y los navegadores que utilizamos los usuarios mues-tran las pginas web despus de leer su contenido HTML.
Aunque HTML es un lenguaje que utilizan los ordenadores y los programas de diseo, es muy fcil deaprender y escribir por parte de las personas. En realidad, HTML son las siglas de HyperText MarkupLanguage y ms adelante se ver el significado de cada una de estas palabras.
El lenguaje HTML es un estndar reconocido en todo el mundo y cuyas normas define un organismosin nimo de lucro llamado World Wide Web Consortium (http://www.w3.org/) , ms conocido comoW3C. Como se trata de un estndar reconocido por todas las empresas relacionadas con el mundo deInternet, una misma pgina HTML se visualiza de forma muy similar en cualquier navegador de cual-quier sistema operativo.
El propio W3C define el lenguaje HTML como "un lenguaje reconocido universalmente y que permite pu-blicar informacin de forma global". Desde su creacin, el lenguaje HTML ha pasado de ser un lenguajeutilizado exclusivamente para crear documentos electrnicos a ser un lenguaje que se utiliza en mu-chas aplicaciones electrnicas como buscadores, tiendas online y banca electrnica.
1.2. Breve historia de HTMLLa historia completa de HTML es tan interesante como larga, por lo que a continuacin se muestra suhistoria resumida a partir de la informacin que se puede encontrar en la Wikipedia.
El origen de HTML se remonta a 1980, cuando el fsico Tim Berners-Lee, trabajador del CERN(http://www.cern.ch/) (Organizacin Europea para la Investigacin Nuclear) propuso un nuevo sistemade "hipertexto" para compartir documentos.
7
Los sistemas de "hipertexto" haban sido desarrollados aos antes. En el mbito de la informtica, el"hipertexto" permita que los usuarios accedieran a la informacin relacionada con los documentoselectrnicos que estaban visualizando. De cierta manera, los primitivos sistemas de "hipertexto" po-dran asimilarse a los enlaces de las pginas web actuales.
Tras finalizar el desarrollo de su sistema de "hipertexto", Tim Berners-Lee lo present a una convoca-toria organizada para desarrollar un sistema de "hipertexto" para Internet. Despus de unir sus fuerzascon el ingeniero de sistemas Robert Cailliau, presentaron la propuesta ganadora llamada WorldWide-Web (W3).
El primer documento formal con la descripcin de HTML se public en 1991 bajo el nombre HTML Tags(http://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/Tags.html) (EtiquetasHTML) y todava hoy puede ser consultado online a modo de reliquia informtica.
La primera propuesta oficial para convertir HTML en un estndar se realiz en 1993 por parte del or-ganismo IETF (http://www.ietf.org/) (Internet Engineering Task Force). Aunque se consiguieron avancessignificativos (en esta poca se definieron las etiquetas para imgenes, tablas y formularios) ningu-na de las dos propuestas de estndar, llamadas HTML y HTML+ consiguieron convertirse en estndaroficial.
En 1995, el organismo IETF organiza un grupo de trabajo de HTML y consigue publicar, el 22 de sep-tiembre de ese mismo ao, el estndar HTML 2.0. A pesar de su nombre, HTML 2.0 es el primer estn-dar oficial de HTML.
A partir de 1996, los estndares de HTML los publica otro organismo de estandarizacin llamado W3C(http://www.w3.org/) (World Wide Web Consortium). La versin HTML 3.2 se public el 14 de Enero de1997 y es la primera recomendacin de HTML publicada por el W3C. Esta revisin incorpora los lti-mos avances de las pginas web desarrolladas hasta 1996, como applets de Java y texto que fluye alre-dedor de las imgenes.
HTML 4.0 se public el 24 de Abril de 1998 (siendo una versin corregida de la publicacin original del18 de Diciembre de 1997) y supone un gran salto desde las versiones anteriores. Entre sus novedadesms destacadas se encuentran las hojas de estilos CSS, la posibilidad de incluir pequeos programaso scripts en las pginas web, mejora de la accesibilidad de las pginas diseadas, tablas complejas ymejoras en los formularios.
La ltima especificacin oficial de HTML se public el 24 de diciembre de 1999 y se denomina HTML4.01. Se trata de una revisin y actualizacin de la versin HTML 4.0, por lo que no incluye novedadessignificativas.
Desde la publicacin de HTML 4.01, la actividad de estandarizacin de HTML se detuvo y el W3C secentr en el desarrollo del estndar XHTML. Por este motivo, en el ao 2004, las empresas Apple, Mo-zilla y Opera mostraron su preocupacin por la falta de inters del W3C en HTML y decidieron orga-nizarse en una nueva asociacin llamada WHATWG (http://www.whatwg.org/) (Web Hypertext Appli-cation Technology Working Group).
La actividad actual del WHATWG se centra en el futuro estndar HTML 5, cuyo primer borrador oficial(http://www.w3.org/TR/html5/) se public el 22 de enero de 2008. Debido a la fuerza de las empresas
Captulo 1. Introduccin Introduccin a XHTML
8
que forman el grupo WHATWG y a la publicacin de los borradores de HTML 5.0, en marzo de 2007el W3C decidi retomar la actividad estandarizadora de HTML (http://www.w3.org/2007/03/html-pressrelease) .
De forma paralela a su actividad con HTML, W3C ha continuado con la estandarizacin de XHTML,una versin avanzada de HTML y basada en XML. La primera versin de XHTML se denomina XHTML1.0 y se public el 26 de Enero de 2000 (y posteriormente se revis el 1 de Agosto de 2002).
XHTML 1.0 es una adaptacin de HTML 4.01 al lenguaje XML, por lo que mantiene casi todas sus eti-quetas y caractersticas, pero aade algunas restricciones y elementos propios de XML. La versinXHTML 1.1 ya ha sido publicada en forma de borrador y pretende modularizar XHTML. Tambin hasido publicado el borrador de XHTML 2.0, que supondr un cambio muy importante respecto de lasanteriores versiones de XHTML.
1.3. Especificacin oficialEl organismo W3C (http://www.w3.org/) (World Wide Web Consortium) elabora las normas que debenseguir los diseadores de pginas web para crear las pginas HTML. Las normas oficiales estn escri-tas en ingls y se pueden consultar de forma gratuita en las siguientes direcciones:
Especificacin oficial de HTML 4.01 (http://www.w3.org/TR/html401/)
Especificacin oficial de XHTML 1.0 (http://www.w3.org/TR/xhtml1/)
El estndar XHTML 1.0 incluye el 95% del estndar HTML 4.01, ya que slo aade pequeas mejorasy modificaciones menores. Afortunadamente, no es necesario leer las especificaciones y recomenda-ciones oficiales de HTML para aprender a disear pginas con HTML o XHTML. Las normas oficialesestn escritas con un lenguaje bastante formal y algunas secciones son difciles de comprender. Porello, en los prximos captulos se explica de forma sencilla y con decenas de ejemplos la especifica-cin oficial de XHTML.
1.4. HTML y XHTMLEl lenguaje XHTML es muy similar al lenguaje HTML. De hecho, XHTML no es ms que una adaptacinde HTML al lenguaje XML. Tcnicamente, HTML es descendiente directo del lenguaje SGML, mientrasque XHTML lo es del XML (que a su vez, tambin es descendiente de SGML).
Figura 1.1 Esquema de la evolucin de HTML y XHTML
Introduccin a XHTML Captulo 1. Introduccin
9
Las pginas y documentos creados con XHTML son muy similares a las pginas y documentos HTML.Las discusiones sobre si HTML es mejor que XHTML o viceversa son recurrentes en el mbito de lacreacin de contenidos web, aunque no existe una conclusin ampliamente aceptada.
Actualmente, entre HTML 4.01 y XHTML 1.0, la mayora de diseadores escogen XHTML. En un futurocercano, si los diseadores deben elegir entre HTML 5 y XHTML 1.1 o XHTML 2.0, quizs la eleccinsea diferente.
1.5. HTML y CSSOriginalmente, las pginas HTML slo incluan informacin sobre sus contenidos de texto e imagenes.Con el desarrollo del estndar HTML, las pginas empezaron a incluir tambin informacin sobre elaspecto de sus contenidos: tipos de letra, colores y mrgenes.
La posterior aparicin de tecnologas como JavaScript, provocaron que las pginas HTML tambin in-cluyeran el cdigo de las aplicaciones (llamadas scripts) que se utilizan para crear pginas web din-micas.
Incluir en una misma pgina HTML los contenidos, el diseo y la programacin complica en excesosu mantenimiento. Normalmente, los contenidos y el diseo de la pgina web son responsabilidad dediferentes personas, por lo que es conveniente separarlos.
CSS es el mecanismo que permite separar los contenidos definidos mediante XHTML y el aspecto quedeben presentar esos contenidos:
Figura 1.2 Esquema de la separacin de los contenidos y su presentacin
Una ventaja aadida de la separacin de los contenidos y su presentacin es que los documentosXHTML creados son ms flexibles, ya que se adaptan mejor a las diferentes plataformas: pantallas deordenador, pantallas de dispositivos mviles, impresoras y dispositivos utilizados por personas disca-pacitadas.
De esta forma, utilizando exclusivamente XHTML se crean pginas web "feas" pero correctas. Aplican-do CSS, se pueden crear pginas "bonitas" a partir de las pginas XHTML correctas.
Captulo 1. Introduccin Introduccin a XHTML
10
Captulo 2.
Caractersticas bsicas2.1. Lenguajes de etiquetasUno de los retos iniciales a los que se tuvo que enfrentar la informtica fue el de cmo almacenar lainformacin en los archivos digitales. Como los primeros archivos slo contenan texto sin formato,la solucin utilizada era muy sencilla: se codificaban las letras del alfabeto y se transformaban en n-meros.
De esta forma, para almacenar un contenido de texto en un archivo electrnico, se utiliza una tablade conversin que transforma cada carcter en un nmero. Una vez almacenada la secuencia de n-meros, el contenido del archivo se puede recuperar realizando el proceso inverso.
Figura 2.1 Ejemplo sencillo de codificacin de caracteres
El proceso de transformacin de caracteres en secuencias de nmeros se denomina codificacin decaracteres y cada una de las tablas que se han definido para realizar la transformacin se conocencon el nombre de pginas de cdigo. Una de las codificaciones ms conocidas (y una de las primerasque se publicaron) es la codificacin ASCII. La importancia de las codificaciones en HTML se ver msadelante.
11
Una vez resuelto el problema de almacenar el texto simple, se presenta el reto de almacenar los con-tenidos de texto con formato. En otras palabras, cmo se almacena un texto en negrita? y un textode color rojo? y otro texto azul, en negrita y subrayado?
Utilizar una tabla de conversin similar a las que se utilizan para textos sin formato no es posible, yaque existen infinitos posibles estilos para aplicar al texto. Una solucin tcnicamente viable consis-te en almacenar la informacin sobre el formato del texto en una zona especial reservada dentro delpropio archivo. En esta zona se podra indicar dnde comienza y dnde termina cada formato.
No obstante, la solucin que realmente se emplea para guardar la informacin con formato es muchoms sencilla: el archivo electrnico almacena tanto los contenidos como la informacin sobre el for-mato de esos contenidos. Si por ejemplo se quiere dividir el texto en prrafos y se desea dar especialimportancia a algunas palabras, se podra indicar de la siguiente manera:
Contenido de texto con algunas palabras resaltadas de forma
especial.
El principio de un prrafo se indica mediante la palabra y el final de un prrafo se indicamediante la palabra . De la misma manera, para asignar ms importancia a ciertas palabrasdel texto, se encierran entre y .
El proceso de indicar las diferentes partes que componen la informacin se denomina marcar (mar-kup en ingls). Cada una de las palabras que se emplean para marcar el inicio y el final de una seccinse denominan etiquetas.
Aunque existen algunas excepciones, en general las etiquetas se indican por pares y se forman de lasiguiente manera:
Etiqueta de apertura: carcter
Etiqueta de cierre: carcter
As, la estructura tpica de las etiquetas HTML es:
...
HTML es un lenguaje de etiquetas (tambin llamado lenguaje de marcado) y las pginas web habi-tuales estn formadas por cientos o miles de pares de etiquetas. De hecho, las letras "ML" de la siglaHTML significan "markup language", que es como se denominan en ingls a los lenguajes de marcado.Adems de HTML, existen muchos otros lenguajes de etiquetas como XML, SGML, DocBook y MathML.
La principal ventaja de los lenguajes de etiquetas es que son muy sencillos de leer y escribir por partede las personas y de los sistemas electrnicos. La principal desventaja es que pueden aumentar mu-cho el tamao del documento, por lo que en general se utilizan etiquetas con nombres muy cortos.
Captulo 2. Caractersticas bsicas Introduccin a XHTML
12
2.2. El primer documento HTMLLas pginas HTML se dividen en dos partes: la cabecera y el cuerpo. La cabecera incluye informacinsobre la propia pgina, como por ejemplo su ttulo y su idioma. El cuerpo de la pgina incluye todossus contenidos, como prrafos de texto e imgenes.
Figura 2.2 Esquema de las partes que forman un documento HTML
El cuerpo (llamado body en ingls) contiene todo lo que el usuario ve en su pantalla y la cabecera (lla-mada head en ingls) contiene todo lo que no se ve (con la nica excepcin del ttulo de la pgina, quelos navegadores muestran como ttulo de sus ventanas).
A continuacin se muestra el cdigo HTML de una pgina web muy sencilla:
El primer documento HTML
El lenguaje HTML es tan sencillo que
prcticamente se entiende sin estudiar el significado
de sus etiquetas principales.
Si quieres probar este primer ejemplo, debes hacer lo siguiente:
1. Abre un editor de archivos de texto y crea un archivo nuevo
2. Copia el cdigo HTML mostrado anteriormente y pgalo tal cual en el archivo que has creado
3. Guarda el archivo con el nombre que quieras, pero con la extensin .html
Para que el ejemplo anterior funcione correctamente, es imprescindible que utilices un editor de tex-to sin formato. Si tu sistema operativo es Windows, puedes utilizar el Bloc de notas, Wordpad, EmEditor,UltraEdit, Notepad++, etc. pero no puedes utilizar un procesador de textos como Word o Open Office. Siutilizas sistemas operativos tipo Linux, puedes utilizar editores como Gedit, Kedit, Kate e incluso Vi,pero no utilices KOffice ni Open Office.
Despus de crear el archivo con el contenido HTML, ya se puede abrir con cualquier navegador paraque se muestre con el siguiente aspecto:
Introduccin a XHTML Captulo 2. Caractersticas bsicas
13
Figura 2.3 Aspecto que muestra el primer documento HTML en cualquier navegador
Si ya ests viendo tu primera pgina HTML en el navegador, prueba a pulsar sobre el men Ver >Cdigo fuente y podrs ver el cdigo HTML de la pgina que est cargada en el navegador. De hecho,puedes ver el cdigo HTML de cualquier pgina de Internet mediante la opcin Ver > Cdigo fuente.Prueba a ver el cdigo HTML de tu pgina preferida y vers cuantas etiquetas puede llegar a teneruna pgina compleja.
Volviendo al cdigo HTML del primer ejemplo, es importante conocer las tres etiquetas principalesde un documento HTML (, , ):
: indica el comienzo y el final de un documento HTML. Ninguna etiqueta o contenidopuede colocarse antes o despus de la etiqueta (con una sola excepcin que se ver msadelante). En el interior de la etiqueta se definen la cabecera y el cuerpo del documentoHTML y todo lo que se coloque fuera de la etiqueta se ignora.
: delimita la parte de la cabecera del documento. La cabecera contiene informacin sobreel propio documento HTML, como por ejemplo su ttulo y el idioma de la pgina. Los contenidosindicados en la cabecera no son visibles para el usuario, con la excepcin de la etiqueta ,que se utiliza para indicar el ttulo del documento y que los navegadores lo visualizan en laparte superior izquierda de la ventana del navegador (si no te has fijado anteriormente, vuelvea abrir el primer ejemplo en cualquier navegador y observa dnde se muestra el ttulo de lapgina).
: delimita el cuerpo del documento HTML. El cuerpo encierra todos los contenidos que semuestran al usuario (prrafos de texto, imgenes, tablas). En general, el de undocumento contiene cientos de etiquetas HTML, mientras que el no contiene ms queunas pocas.
Captulo 2. Caractersticas bsicas Introduccin a XHTML
14
Figura 2.4 Esquema de las etiquetas principales que contiene un documento HTML
Ejercicio 1
Determinar el cdigo HTML correspondiente a la siguiente pgina:
Figura 2.5 Pgina HTML sencilla que resalta algunas partes del texto
Pistas: y
2.3. Etiquetas y atributosHTML define 91 etiquetas que los diseadores pueden utilizar para marcar los diferentes elementosque componen una pgina:
a, abbr, acronym, address, applet, area, b, base, basefont, bdo, big, blockquote, body, br, button,caption, center, cite, code, col, colgroup, dd, del, dfn, dir, div, dl, dt, em, fieldset, font, form, frame,frameset, h1, h2, h3, h4, h5, h6, head, hr, html, i, iframe, img, input, ins, isindex, kbd, label, legend, li,link, map, menu, meta, noframes, noscript, object, ol, optgroup, option, p, param, pre, q, s, samp, script,select, small, span, strike, strong, style, sub, sup, table, tbody, td, textarea, tfoot, th, thead, title,tr, tt, u, ul, var.
Introduccin a XHTML Captulo 2. Caractersticas bsicas
15
De todas las etiquetas disponibles, las siguientes se consideran obsoletas y no se pueden utilizar:applet, basefont, center, dir, font, isindex, menu, s, strike, u.
A pesar de que se trata de un nmero de etiquetas muy grande, no es suficiente para crear pginascomplejas. Algunos elementos como las imgenes y los enlaces requieren cierta informacin adicio-nal para estar completamente definidos.
La etiqueta por ejemplo se emplea para incluir un enlace en una pgina. Utilizando slo la etique-ta no es posible establecer la direccin a la que apunta cada enlace. Como no es viable crear unaetiqueta por cada enlace diferente, la solucin consiste en personalizar las etiquetas HTML mediantecierta informacin adicional llamada atributos.
De esta forma, se utiliza la misma etiqueta para todos los enlaces de la pgina y se utilizan losatributos para indicar la direccin a la que apunta cada enlace.
Ejemplo de atributos en las etiquetas
Los enlaces son muy fciles de indicar:
Soy un enlace incompleto, porque no tengo direccin de destino.
Este otro enlace apunta a la pgina de Google.
Figura 2.6 Los atributos permiten personalizar las etiquetas HTML
Captulo 2. Caractersticas bsicas Introduccin a XHTML
16
El primer enlace del ejemplo anterior no est completamente definido, ya que no apunta a ningunadireccin. El segundo enlace, utiliza la misma etiqueta , pero aade informacin adicional median-te un atributo llamado href. Los atributos se incluyen dentro de la etiqueta de apertura. Por ahora noes importante comprender la etiqueta ni el atributo href, ya que se explicarn con todo detallems adelante.
No todos los atributos se pueden utilizar en todas las etiquetas. Por ello, cada etiqueta define su pro-pia lista de atributos disponibles. Adems, cada atributo tambin indica el tipo de valor que se le pue-de asignar. Si el valor de un atributo no es vlido, el navegador ignora ese atributo.
Aunque cada una de las etiquetas HTML define sus propios atributos, algunos de los atributos son co-munes a muchas o casi todas las etiquetas. De esta forma, es habitual explicar por separado los atri-butos comunes de las etiquetas para no tener que volver a hacerlo cada vez que se explica una nuevaetiqueta. Los atributos comunes se dividen en cuatro grupos segn su funcionalidad:
Atributos bsicos: se pueden utilizar prcticamente en todas las etiquetas HTML.
Atributos para internacionalizacin: los utilizan las pginas que muestran sus contenidos envarios idiomas.
Atributos de eventos: slo se utilizan en las pginas web dinmicas creadas con JavaScript.
Atributos de foco: relacionados principalmente con la accesibilidad de los sitios web.
2.3.1. Atributos bsicosLos siguiente cuatro atributos bsicos se pueden aplicar prcticamente a todas las etiquetas HTML:
Atributo Descripcin
id = "texto" Establece un identificador nico a cada elemento dentro de una pgina HTML
class = "texto" Establece la clase CSS que se aplica a los estilos del elemento
style = "texto" Establece de forma directa los estilos CSS de un elemento
title = "texto" Establece el ttulo a un elemento (mejora la accesibilidad y los navegadores lomuestran cuando el usuario pasa el ratn por encima del elemento)
La mayora de pginas web actuales utilizan los atributos id y class de forma masiva. Sin embargo,estos atributos slo son realmente tiles cuando se trabaja con CSS y con Javascript.
Respecto al valor de los atributos id y class, slo pueden contener guiones medios (-), guiones bajos(_), letras y/o nmeros, pero no pueden empezar por nmeros. Adems, los navegadores distinguenmaysculas de minsculas y no se recomienda utilizar letras como y acentos, ya que no es seguroque funcionen correctamente en todas las versiones de todos los navegadores.
2.3.2. Atributos para internacionalizacinEstos atributos son tiles para aquellas pginas que muestran sus contenidos en varios idiomas y paraaquellas que quieren indicar de forma expltica el idioma de sus contenidos:
Introduccin a XHTML Captulo 2. Caractersticas bsicas
17
Atributo Descripcin
lang = "codigo de idioma" Indica el idioma del elemento mediante un cdigo predefinido
xml:lang = "codigo de idioma" Indica el idioma del elemento mediante un cdigo predefinido
dir Indica la direccin del texto (til para los idiomas que escribende derecha a izquierda)
En las pginas XHTML, el atributo xml:lang tiene ms prioridad que lang y es obligatorio incluirlosiempre que se incluye el atributo lang. Los idiomas se indican mediante un cdigo estandarizado (espara espaol, en para ingls, etc.), tal y como se explicar ms adelante en la seccin idioma del enla-ce (pgina 64) del captulo 4.
Como la palabra internacionalizacin es muy larga, se suele sustituir por la abreviatura i18n (elnmero 18 se refiere al nmero de letras que existen entre la letra i y la letra n de la palabrainternacionalizacin).
2.3.3. Atributos de eventosEstos atributos slo se utilizan en las pginas web que incluyen cdigo JavaScript para realizar accio-nes dinmicas sobre los elementos de la pgina. Cada vez que el usuario pulsa una tecla, mueve suratn o pulsa cualquier botn del ratn, se produce un evento dentro del navegador. Utilizando Ja-vaScript y los siguientes atributos, es posible responder de forma adecuada a cada evento.
Atributo Descripcin Elementos que pueden usarlo
onblur Deseleccionar el elemento , , , ,,
onchange Deseleccionar un elemento que se hamodificado
, ,
onclick Pinchar y soltar el ratn Todos los elementos
ondblclick Pinchar dos veces seguidas con el ratn Todos los elementos
onfocus Seleccionar un elemento , , , ,,
onkeydown Pulsar una tecla (sin soltar) Elementos de formulario y
onkeypress Pulsar una tecla Elementos de formulario y
onkeyup Soltar una tecla pulsada Elementos de formulario y
onload La pgina se ha cargado completamente
onmousedown Pulsar (sin soltar) un botn del ratn Todos los elementos
onmousemove Mover el ratn Todos los elementos
Captulo 2. Caractersticas bsicas Introduccin a XHTML
18
Atributo Descripcin Elementos que pueden usarlo
onmouseout El ratn "sale" del elemento (pasa porencima de otro elemento)
Todos los elementos
onmouseover El ratn "entra" en el elemento (pasa porencima del elemento)
Todos los elementos
onmouseup Soltar el botn que estaba pulsado en elratn
Todos los elementos
onreset Inicializar el formulario (borrar todos susdatos)
onresize Se ha modificado el tamao de la ventanadel navegador
onselect Seleccionar un texto ,
onsubmit Enviar el formulario
onunload Se abandona la pgina (por ejemplo alcerrar el navegador)
2.3.4. Atributos de focoCuando el usuario selecciona un elemento en una aplicacin, se dice que "el elemento tiene el foco delprograma". Si por ejemplo un usuario pincha con su ratn sobre un cuadro de texto y comienza a es-cribir, ese cuadro de texto tiene el foco del programa, llamado "focus" en ingls. Si el usuario seleccio-na despus otro elemento, el elemento original pierde el foco y el nuevo elemento es el que tiene elfoco del programa.
Los elementos de las pginas web tambin pueden obtener el foco de la aplicacin (en este caso, elfoco del navegador) y HTML define algunos atributos especficos para controlar cmo se seleccionanlos elementos.
Atributo Descripcin
accesskey = "letra" Establece una tecla de acceso rpido a un elemento HTML
tabindex = "numero" Establece la posicin del elemento en el orden de tabulacin de la pgina.Su valor debe estar comprendido entre 0 y 32.767
onfocus, onblur Controlan los eventos JavaScript que se ejecutan cuando el elementoobtiene o pierde el foco
Cuando se pulsa repetidamente la tecla del tabulador sobre una pgina web, el navegador seleccionade forma alternativa todos los elementos de la pgina que se pueden seleccionar (principalmente losenlaces y los elementos de formulario). El atributo tabindex permite alterar el orden en el que se se-leccionan los elementos, por lo que es muy til cuando se quiere controlar de forma precisa cmo seseleccionan los campos de un formulario complejo.
Introduccin a XHTML Captulo 2. Caractersticas bsicas
19
Por su parte, el atributo accesskey permite establecer una tecla para acceder de forma rpida a cual-quier elemento. Aunque la tecla de acceso rpido se establece mediante HTML, la combinacin deteclas necesarias para activar ese acceso rpido depende del navegador. En el navegador Internet Ex-plorer se pulsa la tecla ALT + la tecla definida; en el navegador Firefox se pulsa Alt + Shift + la tecladefinida; en el navegador Opera se pulsa Shift + Esc + la tecla definida; en el navegador Safari se pulsaCtrl + la tecla definida.
2.4. Elementos HTMLAdems de etiquetas y atributos, HTML define el trmino elemento para referirse a las partes quecomponen los documentos HTML.
Aunque en ocasiones se habla de forma indistinta de "elementos" y "etiquetas", en realidad un ele-mento HTML es mucho ms que una etiqueta, ya que est formado por:
Una etiqueta de apertura.
Cero o ms atributos.
Texto encerrado por la etiqueta.
Una etiqueta de cierre.
El texto encerrado por la etiqueta es opcional, ya que algunas etiquetas de HTML no pueden encerrarningn texto. El siguiente esquema muestra un elemento HTML, formado por una etiqueta , atri-butos y contenidos de texto:
Figura 2.7 Esquema de las partes que componen un elemento HTML
La estructura mostrada en el esquema anterior es un elemento HTML ya que comienza con una eti-queta de apertura (), contiene cero o ms atributos (class="normal"), dispone de un contenido detexto (Esto es un prrafo) y finaliza con una etiqueta de cierre ().
Por tanto, si una pgina web tiene dos prrafos de texto, la pgina contiene dos elementos y cuatroetiquetas (dos etiquetas de apertura y dos etiquetas de cierre). De todas formas, aunque es-trictamente no son lo mismo, es habitual intercambiar las palabras "elemento" y "etiqueta".
Por otra parte, el lenguaje HTML clasifica a todos los elementos en dos grupos: elementos en lnea(inline elements en ingls) y elementos de bloque (block elements en ingls).
La principal diferencia entre los dos tipos de elementos es la forma en la que ocupan el espacio dis-ponible en la pgina. Los elementos de bloque siempre empiezan en una nueva lnea y ocupan todoel espacio disponible hasta el final de la lnea, aunque sus contenidos no lleguen hasta el final de la
Captulo 2. Caractersticas bsicas Introduccin a XHTML
20
lnea. Por su parte, los elementos en lnea slo ocupan el espacio necesario para mostrar sus conteni-dos.
Si se considera el siguiente ejemplo:
Ejemplo de elementos en lnea y elementos de bloque
Los prrafos son elementos de bloque.
Los enlaces son elementos en lnea
Dentro de un prrafo, los enlaces
siguen siendo elementos en lnea.
La siguiente imagen muestra cmo visualizan los navegadores el cdigo HTML anterior (medianteCSS se han aadido bordes que muestran el espacio ocupado por cada elemento):
Figura 2.8 Diferencias entre elementos en lnea y elementos de bloque
El primer prrafo contiene un texto corto que slo ocupa la mitad de la anchura de la ventana delnavegador. No obstante, el espacio reservado por el navegador para el primer prrafo llega hasta elfinal de esa lnea, por lo que resulta evidente que los elementos son elementos de bloque.
Por otra parte, el primer enlace del ejemplo anterior tambin tiene un texto corto que ocupa sola-mente la mitad de la anchura de la ventana del navegador. En este caso, el navegador slo reservapara el enlace el sitio necesario para mostrar sus contenidos. Si se aade otro enlace en esa mismalnea, se mostrara a continuacin del primer enlace. Por tanto, los elementos son elementos enlnea.
Introduccin a XHTML Captulo 2. Caractersticas bsicas
21
Por ltimo, el segundo prrafo sigue ocupando todo el espacio disponible hasta el final de cada lnea(por ser un elemento de bloque) y el enlace que se encuentra dentro del prrafo slo ocupa el sitionecesario para mostrar sus contenidos (por ser un elemento en lnea).
La mayora de elementos de bloque pueden contener en su interior elementos en lnea y otros ele-mentos de bloque. Los elementos en lnea slo pueden contener texto u otros elementos en lnea. Enotras palabras, un elemento de bloque no puede aparecer dentro de un elemento en lnea. En cambio,un elemento en lnea puede aparecer dentro de un elemento de bloque y dentro de otro elemento enlnea.
Los elementos en lnea definidos por HTML son: a, abbr, acronym, b, basefont, bdo, big, br, cite, code,dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea,tt, u, var.
Los elementos de bloque definidos por HTML son: address, blockquote, center, dir, div, dl, fieldset,form, h1, h2, h3, h4, h5, h6, hr, isindex, menu, noframes, nos-cript, ol, p, pre, table, ul.
Los siguientes elementos tambin se considera que son de bloque: dd, dt, frame-set, li, tbody, td,tfoot, th, thead, tr.
Los siguientes elementos pueden ser en lnea y de bloque segn las circunstancias: button, del,iframe, ins, map, object, script.
2.5. Sintaxis de las etiquetas XHTMLEl lenguaje HTML original era muy permisivo en su sintaxis, por lo que era posible escribir sus etique-tas y atributos de muchas formas diferentes. Las etiquetas por ejemplo podan escribirse en mays-culas, en minsculas e incluso combinando maysculas y minsculas. El valor de los atributos de lasetiquetas se podan indicar con y sin comillas ("). Adems, el orden en el que se abran y cerraban lasetiquetas no era importante.
La flexibilidad de HTML puede parecer un aspecto positivo, pero el resultado final son pginas con uncdigo HTML desordenado, difcil de mantener y muy poco profesional. Afortunadamente, XHTMLsoluciona estos problemas aadiendo ciertas normas en la forma de escribir las etiquetas y atributos.
A continuacin se muestran las cinco restricciones bsicas que introduce XHTML respecto a HTML enla sintaxis de sus etiquetas:
1) Las etiquetas se tienen que cerrar de acuerdo a como se abren:
Ejemplo correcto en XHTML:
Este es un prrafo con un enlace
Ejemplo incorrecto en XHTML (pero correcto en HTML):
Este es un prrafo con un enlace
2) Los nombres de las etiquetas y atributos siempre se escriben en minsculas:
Captulo 2. Caractersticas bsicas Introduccin a XHTML
22
Ejemplo correcto en XHTML:
Este es un prrafo con un enlace
Ejemplo incorrecto en XHTML (pero correcto en HTML):
Este es un prrafo con un enlace
3) El valor de los atributos siempre se encierra con comillas:
Ejemplo correcto en XHTML:
Este es un prrafo con un enlace
Ejemplo incorrecto en XHTML (pero correcto en HTML):
Este es un prrafo con un enlace
4) Los atributos no se pueden comprimir:
Ejemplo correcto en XHTML:
...
Ejemplo incorrecto en XHTML (pero correcto en HTML):
...
Este tipo de atributos en los que el nombre coincide con su valor no son muy habituales.
5) Todas las etiquetas deben cerrarse siempre:
La mayora de etiquetas HTML encierran un contenido de texto entre la etiqueta de apertura y la eti-queta de cierre. Sin embargo, algunas etiquetas especiales llamadas "etiquetas vacas" no necesitan en-cerrar ningn texto.
La etiqueta por ejemplo, se utiliza para indicar el comienzo de una nueva lnea, tal y como sever ms adelante. Por sus caractersticas, la etiqueta nunca encierra ningn contenido de texto.
Como el estndar XHTML obliga a cerrar todas las etiquetas abiertas, siempre que se incluya la eti-queta se debera cerrar de forma seguida: . Para que el cdigo resulte ms cmodo deescribir, XHTML permite en estos casos escribir de forma abreviada una etiqueta que se abre y se cie-rra de forma consecutiva.
En lugar de abrir y cerrar de forma consecutiva la etiqueta () se puede utilizar la sintaxis para indicar que es una etiqueta vaca que se abre y se cierra en ese mismo punto. En la formacompacta es habitual equivocarse con la posicin del carcter /.
Ejemplo correcto en XHTML:
Introduccin a XHTML Captulo 2. Caractersticas bsicas
23
Ejemplo incorrecto en XHTML (pero correcto en HTML):
Adems de estas cinco restricciones bsicas, XHTML incluye otros cambios ms avanzados respecto aHTML:
1. Antes de acceder al valor de un atributo, se eliminan todos los espacios en blanco que seencuentran antes y despus del valor. Adems, se eliminan todos los espacios en blancosobrantes dentro del valor de un atributo. En otras palabras, si en el interior de un atributo seincluyen varios espacios en blanco seguidos, se eliminan todos salvo un nico espacio en blancoutilizado para separar las diferentes palabras.
2. Como se explicar ms adelante al hablar de la etiqueta , el cdigo JavaScript debeencerrarse entre unas etiquetas especiales () para evitar que el navegadorinterprete de forma errnea caracteres como & y
Captulo 3.
TextoLa mayor parte del contenido de las pginas HTML habituales est formado por texto, llegando a serms del 90% del cdigo de la pgina. Por este motivo, es muy importante conocer los elementos y eti-quetas que define HTML para el manejo del texto.
El lenguaje HTML incorpora al tratamiento del texto muchas de las ideas y normas establecidas enotros entornos de publicacin de contenidos. De esta forma, HTML define etiquetas para estructu-rar el contenido en secciones y prrafos y define otras etiquetas para marcar elementos importantesdentro del texto.
La tarea inicial del editor de contenidos HTML consiste en estructurar el texto original definiendo susprrafos, titulares y ttulos de seccin, como se muestra en la siguiente imagen:
Figura 3.1 Resultado de estructurar un texto sencillo
25
El proceso de estructurar un texto simple consiste en indicar las diferentes zonas o secciones quecomponen el texto. De esta forma, los textos estructurados utilizan etiquetas para delimitar cada p-rrafo y ttulos de seccin para delimitar cada una de las secciones que forman el texto.
Una vez definida la estructura bsica de los contenidos de la pgina, el siguiente paso consiste en mar-car los diferentes elementos dentro del propio texto: definiciones, abreviaturas, textos importantes,textos modificados, citas a otras referencias, etc.
Figura 3.2 Resultado de marcar un texto sencillo
El anterior ejemplo muestra la transformacin de un prrafo con un texto simple en un prrafo cuyotexto contiene elementos marcados de forma especial. As, algunas palabras del texto se muestran ennegrita porque se consideran importantes; otras palabras aparecen en cursiva, ya que se han marca-do como destacadas e incluso una frase aparece tabulada y entre comillas, indicando que es una citatextual de otro contenido.
En las secciones siguientes se muestran todas las etiquetas que define HTML para estructurar y mar-car el texto. Adems, se hace una mencin especial al tratamiento que hace HTML de los espacios enblanco y las nuevas lneas.
3.1. EstructurarLa forma ms sencilla de estructurar un texto consiste en separarlo por prrafos. Adems, HTML per-mite incluir ttulos que delimitan cada una de las secciones.
3.1.1. PrrafosUna de las etiquetas ms utilizadas de HTML es la etiqueta , que permite definir los prrafos queforman el texto de una pgina. Para delimitar el texto de un prrafo, se encierra ese texto con la eti-queta , como muestra el siguiente ejemplo:
Ejemplo de texto estructurado con prrafos
Captulo 3. Texto Introduccin a XHTML
26
Este es el texto que forma el primer prrafo de la pgina.
Los prrafos pueden ocupar varias lneas y el navegador se encarga
de ajustar su longitud al tamao de la ventana.
El segundo prrafo de la pgina tambin se define encerrando
su texto con la etiqueta p. El navegador tambin se encarga de
separar automticamente cada prrafo.
El ejemplo anterior se visualiza de la siguiente manera en cualquier navegador:
Figura 3.3 Ejemplo de texto HTML estructurado con prrafos
La siguiente tabla recoge la definicin formal de la etiqueta :
Delimita el contenido de un prrafo de textoAtributos comunes bsicos, internacionalizacin y eventos Tipo de elemento Bloque
Atributos propios -
Introduccin a XHTML Captulo 3. Texto
27
Los prrafos creados con HTML son elementos de bloque, por lo que siempre ocupan toda la anchurade la ventana del navegador. Adems, no tienen atributos especficos, pero s que se les pueden asig-nar los atributos comunes de HTML bsicos, de internacionalizacin y de eventos.
3.1.2. SeccionesLas pginas HTML habituales suelen tener una estructura ms compleja que la que se puede crear so-lamente mediante prrafos. De hecho, es habitual que las pginas se dividan en diferentes seccionesjerrquicas.
Los ttulos de seccin se utilizan para delimitar el comienzo de cada seccin de la pgina. HTML per-mite crear secciones de hasta seis niveles de importancia. De esta forma, aunque una pgina puededefinir cualquier nmero de secciones, slo puede incluir seis niveles jerrquicos.
Las etiquetas que definen los ttulos de seccin son , , , , y . La etiqueta es la de mayor importancia y por tanto se utiliza para definir los titulares de la pgina. La importanciadel resto de etiquetas es descendiente, de forma que la etiqueta es la que se utiliza para delimitarlas secciones menos importantes de la pgina.
A continuacin se muestra la definicin formal de la etiqueta , siendo idntica la definicin delresto de etiquetas referidas a los ttulos de seccin:
Define los ttulos de las secciones de mayor importancia de la pgina.Atributos comunes bsicos, internacionalizacin y eventos Tipo de elemento Bloque
Atributos propios -
Al igual que la etiqueta , las etiquetas de ttulo de seccin son elementos de bloque y no tienenatributos especficos.
Las etiquetas , ..., definen ttulos de seccin, no secciones completas. Por este motivo, no esnecesario encerrar los contenidos de una seccin con su etiqueta correspondiente. Solamente se debeencerrar con las etiquetas , ..., los ttulos de cada seccin.
El siguiente ejemplo muestra el uso de las etiquetas de ttulo de seccin:
Ejemplo de texto estructurado con secciones
Titular de la pgina
Prrafo de introduccin...
La primera sub-seccin
Captulo 3. Texto Introduccin a XHTML
28
Prrafo de contenido...
Otra subseccin
Ms prrafos de contenido...
Los navegadores muestran el ejemplo anterior de la siguiente manera:
Figura 3.4 Ejemplo de texto HTML estructurado con prrafos y secciones
Los navegadores asignan de forma automticamente el tamao del ttulo de cada seccin en funcinde su importancia. As, los ttulos de seccin se muestran con el tamao de letra ms grande, yaque son el nivel jerrquico superior, mientras que los ttulos de seccin se visualizan con un ta-mao de letra muy pequeo, adecuado para el nivel jerrquico de menor importancia.
Evidentemente, el aspecto que los navegadores aplican por defecto a los ttulos de seccin se puedemodificar utilizando las hojas de estilos de CSS. La siguiente imagen muestra el tamao por defectocon el que los navegadores muestran cada titular:
Introduccin a XHTML Captulo 3. Texto
29
Figura 3.5 Ejemplo de uso de las etiquetas h1, h2, h3, h4, h5 y h6
3.2. Marcado bsico de textoUna vez estructurado el texto en prrafos y secciones, el siguiente paso es el marcado de los elemen-tos que componen el texto. Los textos habituales estn formados por elementos como palabras ennegrita o cursiva, anotaciones y correcciones, citas a otros documentos externos, etc. HTML propor-ciona varias etiquetas para marcar cada uno de los diferentes tipos de texto.
Entre las etiquetas ms utilizadas para marcar texto se encuentran y . La definicin for-mal de estas dos etiquetas se muestra a continuacin:
Realza la importancia del texto que encierraAtributos comunes bsicos, internacionalizacin y eventos Tipo de elemento En lnea
Atributos propios -
Realza con la mxima importancia el texto que encierraAtributos comunes bsicos, internacionalizacin y eventos Tipo de elemento En lnea
Atributos propios -
La etiqueta marca un texto indicando que su importancia es mayor que la del resto del texto. Laetiqueta indica que un determinado texto es de la mayor importancia dentro de la pgina.Ejemplo:
Captulo 3. Texto Introduccin a XHTML
30
Ejemplo de etiqueta em y strong
El lenguaje HTML permite marcar algunos segmentos de texto
como muy importantes y otros segmentos como los
ms importantes.
Por defecto, los navegadores muestran los elementos en cursiva para hacer evidente su impor-tancia y muestran los elementos en negrita, para indicar que son los ms importantes:
Figura 3.6 Ejemplo de uso de las etiquetas em y strong
Ejercicio 2
Estructurar y marcar el siguiente texto extrado de la Wikipedia (http://es.wikipedia.org/wiki/Ex-ploracin_espacial) para que el navegador lo muestre con el aspecto de la siguiente imagen:
Introduccin a XHTML Captulo 3. Texto
31
Figura 3.7 Resultado de estructurar y marcar el texto original
HTML tambin permite marcar de forma adecuada las modificaciones realizadas en el contenido deuna pgina. En otras palabras, HTML permite indicar de forma clara el texto que ha sido eliminadoy el texto que ha sido aadido a un determinado texto original. Las etiquetas utilizadas son y, cuya definicin formal es la siguiente:
Captulo 3. Texto Introduccin a XHTML
32
Se emplea para marcar una modificacin en los contenidos originales consistenteen la insercin de un nuevo contenidoAtributoscomunes
bsicos, internacionalizacin y eventos Tipo de elemento Bloque y en lnea
Atributospropios cite = "url" - Indica la URL de la pgina en la que se puede obtener ms informacinsobre el motivo por el que se realiz la modificacin.
datetime = "fecha" - Especifica la fecha y hora en la que se realiz el cambio
Se emplea para marcar una modificacin en los contenidos originales consistenteen el borrado de cierto contenidoAtributoscomunes
bsicos, internacionalizacin y eventos Tipo de elemento Bloque y en lnea
Atributospropios cite = "url" - Indica la URL de la pgina en la que se puede obtener ms informacinsobre el motivo por el que se realiz la modificacin.
datetime = "fecha" - Especifica la fecha y hora en la que se realiz el cambio
Las dos etiquetas cuentan con los mismos atributos especficos, que opcionalmente se pueden aadirpara proporcionar ms informacin sobre los cambios realizados. El atributo cite se emplea para in-dicar la direccin de un documento externo en el que se puede encontrar ms informacin relaciona-da con la insercin o el borrado de texto. El atributo datetime puede utilizarse para indicar la fecha yla hora en la que se realiz cada cambio.
Ejemplo:
Ejemplo de etiqueta ins y del
Ejemplo de etiqueta ins y del
El HTML, acrnimo ingls de Hyper Text Markup Language (lenguaje de marcado de hipertexto marcas hipertextuales) es un
lenguaje de marcacin diseado para estructurar textos y presentarlos en forma de
hipertexto.
Los navegadores muestran el ejemplo anterior de la siguiente manera:
Introduccin a XHTML Captulo 3. Texto
33
Figura 3.8 Ejemplo de uso de las etiquetas ins y del
Por defecto, el texto eliminado (marcado con la etiqueta ) se muestra tachado de forma que elusuario pueda identificarlo fcilmente como un texto que formaba parte del texto original y que yano tiene validez. El texto insertado (marcado con la etiqueta ) se muestra subrayado, de formaque el usuario pueda identificarlo como un texto nuevo que no formaba parte del texto original.
Por otra parte, en muchos tipos de pginas (artculos, noticias) es habitual citar literalmente un textoexterno. HTML define la etiqueta para incluir citas textuales en las pginas web. Ladefinicin de la etiqueta HTML con el nombre ms largo se muestra a continuacin:
Se emplea para indicar que el texto que encierra es una cita textual deotro texto externoAtributos comunes bsicos, internacionalizacin y eventos Tipo de elemento Bloque
Atributos propios cite = "url" - Indica la direccin de la pgina web original de la que se
extrae la cita
Al igual que y , la etiqueta permite indicar mediante el atributo cite la di-reccin de un documento del que se ha extrado la cita. Ejemplo:
Ejemplo de etiqueta blockquote
Segn el W3C, el valor del
atributo cite en las etiquetas blockquote tiene el
siguiente significado:
"El valor de este
atributo
es una direccin URL que indica el documento original de la cita."
Captulo 3. Texto Introduccin a XHTML
34
El aspecto que muestra el ejemplo anterior en cualquier navegador es el siguiente:
Figura 3.9 Ejemplo de uso de la etiqueta blockquote
Para indicar de forma clara que el texto es una cita externa, los navegadores muestran por defecto eltexto del elemento con un gran margen en la parte izquierda.
3.3. Marcado avanzado de textoLas pginas y documentos ms avanzados suelen incluir otros elementos importantes que se debenmarcar de forma adecuada. Por ello, HTML incluye muchas otras etiquetas que permiten marcar mselementos del texto.
La etiqueta marca las abreviaturas de un texto y la etiqueta se emplea para marcarlas siglas o acrnimos del texto. Su definicin es la siguiente:
Se emplea para marcar las abreviaturas del texto y proporcionar el significadode esas abreviaturasAtributoscomunes
bsicos, internacionalizacin y eventos Tipo de elemento En lnea
Atributospropios title = "texto" - Indica el significado completo de la abreviatura
Se emplea para marcar las siglas o acrnimos del texto y proporcionar elsignificado de esas siglasAtributos comunes bsicos, internacionalizacin y eventos Tipo de elemento En lnea
Atributos propios title = "texto" - Indica el significado completo del acrnimo o sigla
En ambos casos, el atributo title se puede utilizar para incluir el significado completo de la abrevia-tura o sigla. Ejemplo:
Introduccin a XHTML Captulo 3. Texto
35
Ejemplo de etiqueta acronym
El lenguaje HTML es
estandarizado
por el W3C.
La mayora de navegadores muestran por defecto un borde inferior punteado para todos los elemen-tos y . Al posicionar el puntero del ratn sobre la palabra subrayada, el navegadormuestra un pequeo recuadro (llamado tooltip en ingls) con el valor del atributo title:
Figura 3.10 Ejemplo de uso de la etiqueta acronym
Por otra parte, en ocasiones resulta til incluir la definicin de una palabra extraa o cuyo uso estrestringido a un entorno muy determinado. HTML incluye la etiqueta para proporcionar alusuario la definicin de todas las palabras para las que se considere apropiado. La definicin formalde esta etiqueta se muestra a continuacin:
Captulo 3. Texto Introduccin a XHTML
36
Se emplea para marcar las definiciones de ciertos trminos y proporcionar elsignificado de esos trminosAtributoscomunes
bsicos, internacionalizacin y eventos Tipo de elemento En lnea
Atributospropios title = "texto" - Indica el significado completo del trmino
El siguiente ejemplo muestra cmo se utiliza la etiqueta para incluir la definicin completa deuna palabra cuyo uso no es habitual fuera de los mbitos mdicos y psicolgicos:
Con estos sntomas, podra tratarse de un caso de sinestesia
Por ltimo, HTML incluye una etiqueta que se puede utilizar para marcar un texto como una citacin:
Se emplea para marcar una cita o una referencia a otras fuentesAtributos comunes bsicos, internacionalizacin y eventos Tipo de elemento En lnea
Atributos propios -
En ocasiones, no est clara la diferencia entre y . El elemento marca elautor de la cita (persona, documento, etc.) y marca el contenido de la propia cita. En elsiguiente ejemplo, encierra el contenido de una frase clebre y encierra el nom-bre de su autor:
Como dijo Mahatma Gandhi:
Vive como si fueras a morir maana y aprende como si fueras a vivir para
siempre.
Ejercicio 3
Estructurar y marcar el siguiente texto para que el navegador lo muestre con el aspecto de la siguien-te imagen:
Introduccin a XHTML Captulo 3. Texto
37
Figura 3.11 Texto HTML correctamente estructurado y marcado
3.4. Marcado genrico de textoEl estndar HTML/XHTML incluye numerosas etiquetas para marcar los contenidos de texto. No obs-tante, la infinita variedad de posibles contenidos textuales hace que no sean suficientes. Si se consi-dera el siguiente ejemplo:
Importante: si quiere ponerse en contacto con la empresa ACME, puede hacerlo en el
telfono 900 555 555 o a travs de la direccin de correo electrnico [email protected]
El texto del ejemplo anterior contiene elementos de texto importantes, siglas, nmeros de telfonoy direcciones de correo electrnico. XHTML define la etiqueta para marcar los elementosimportantes y para marcar las siglas:
Importante: si quiere ponerse en contacto con la empresa
ACME, puede hacerlo en el telfono 900 555 555 o a travs de la
direccin de correo electrnico [email protected]
Desafortunadamente, XHTML no define ninguna etiqueta especfica para marcar nmeros de telfonoo direcciones de correo electrnico. De la misma forma, no define etiquetas para otros posibles ele-mentos que se pueden encontrar en los contenidos de texto.
Por este motivo, el estndar HTML/XHTML incluye una etiqueta llamada que se emplea paramarcar cualquier elemento que no se puede marcar con las otras etiquetas definidas. Siguiendo con
Captulo 3. Texto Introduccin a XHTML
38
el ejemplo anterior, la etiqueta se utiliza para marcar el telfono y la direccin de correo elec-trnico:
Importante: si quiere ponerse en contacto con la empresa
ACME, puede hacerlo en el telfono 900 555 555 o a
travs de la direccin de correo electrnico [email protected]
La etiqueta se visualiza por defecto con el mismo aspecto que el texto normal. Por tanto eshabitual utilizar esta etiqueta junto con los atributos id y class para modificar posteriormente su as-pecto con CSS:
Importante: si quiere ponerse en contacto con la empresa
ACME, puede hacerlo en el telfono 900 555
555 o a travs de la direccin de correo electrnico [email protected]
La etiqueta slo se puede utilizar para encerrar contenidos y etiquetas en lnea. Cuando sequieren estructurar elementos de bloque, se utiliza la etiqueta , tal y como se ver en captulosposteriores.
3.5. Espacios en blanco y nuevas lneasEl aspecto ms sorprendente del lenguaje HTML cuando se desarrollan los primeros documentos es eltratamiento especial de los "espacios en blanco" del texto. HTML considera espacio en blanco a los espa-cios en blanco, los tabuladores, los retornos de carro y el carcter de nueva lnea (ENTER o Intro).
El siguiente ejemplo ilustra este comportamiento:
Ejemplo de etiqueta p
Este primer prrafo no contiene saltos de lnea ni otro tipo de espaciado.
Este segundo prrafo s que contiene saltos
de
lnea
y otro tipo de espaciado.
El anterior cdigo HTML se visualiza en cualquier navegador de la siguiente manera:
Introduccin a XHTML Captulo 3. Texto
39
Figura 3.12 Ejemplo de comportamiento de HTML con los espacios en blanco
Los dos prrafos de la imagen anterior se ven idnticos, aunque el segundo prrafo incluye varios es-pacios en blanco y est escrito en varias lneas diferentes. La razn de este comportamiento es queHTML ignora todos los espacios en blanco sobrantes, es decir, todos los espacios en blanco que no sonel espacio en blanco que separa las palabras.
No obstante, HTML proporciona varias alternativas para poder incluir tantos espacios en blanco ytantas nuevas lneas como sean necesarias dentro del contenido textual de las pginas.
3.5.1. Nuevas lneasPara incluir una nueva lnea en un punto y forzar a que el texto que sigue se muestre en la lnea infe-rior, se utiliza la etiqueta . En cierta manera, insertar la etiqueta en un determinado puntodel texto equivale a presionar la tecla ENTER (o Intro) en ese mismo punto.
La definicin formal de se muestra a continuacin:
Fuerza al navegador a insertar una nueva lneaAtributos comunes bsicos Tipo de elemento En lnea y etiqueta vaca
Atributos propios -
La etiqueta es una de las pocas etiquetas especiales de HTML. La particularidad de es que esuna etiqueta vaca, es decir, no encierra ningn texto. De esta forma, la etiqueta debe abrirse y ce-rrarse de forma consecutiva: .
Captulo 3. Texto Introduccin a XHTML
40
En estos casos, HTML permite utilizar un atajo para indicar que una etiqueta se est abriendo y ce-rrando de forma consecutiva: (tambin se puede escribir como ).
Utilizando la etiqueta se puede rehacer el ejemplo anterior para que respete las lneas que for-man el segundo prrafo:
Ejemplo de etiqueta br
Este primer prrafo no contiene saltos de lnea ni otro tipo de espaciado.
Este segundo prrafo s que contiene saltos
de
lnea
y otro tipo de espaciado.
El navegador ahora s que muestra correctamente las nuevas lneas que se queran insertar:
Figura 3.13 Ejemplo de uso de la etiqueta br
Introduccin a XHTML Captulo 3. Texto
41
3.5.2. Espacios en blancoLa solucin al problema de los espacios en blanco no es tan sencilla como el de las nuevas lneas. Paraincluir espacios en blanco adicionales, se debe sustituir cada nuevo espacio en blanco por el texto (es importante incluir el smbolo & al principio y el smbolo ; al final).
As, el cdigo HTML del ejemplo anterior se debe rehacer para incluir los espacios en blanco adicio-nales:
Ejemplo de entidad
Este primer prrafo no contiene saltos de lnea ni otro tipo de espaciado.
Este segundo prrafo s que contiene saltos
de
lnea
y otro tipo de espaciado.
Ahora el navegador s que muestra correctamente los espacios en blanco (y las nuevas lneas) del se-gundo prrafo:
Figura 3.14 Ejemplo de uso de espacios en blanco en HTML
Captulo 3. Texto Introduccin a XHTML
42
Cada texto solamente equivale a un espacio en blanco, por lo que se deben escribir tantos seguidos como espacios en blanco seguidos existan en el texto.
Ms adelante se profundiza en el origen de y se comprender por qu es necesario incluir esasucesin tan extraa de caracteres cada vez que se quiere incluir un espacio en blanco adicional.
Ejercicio 4
Determinar el cdigo HTML que corresponde al siguiente documento:
Figura 3.15 Texto HTML con espacios en blanco y nuevas lneas
3.5.3. Texto preformateadoEn ocasiones, es necesario mostrar los espacios en blanco de un texto que no se puede modificar. Setrata de un caso habitual cuando una pgina web debe mostrar directamente el texto generado poralguna aplicacin.
En estos casos, se puede utiliza la etiqueta , que muestra el texto tal y como se ha escrito, res-petando todos los espacios en blanco y todas las nuevas lneas. La definicin formal de la etiqueta semuestra a continuacin:
Muestra el texto que encierra tal y como est escrito (respetando los espaciosen blanco)Atributoscomunes
bsicos, internacionalizacin y eventos Tipo de elemento Bloque
Atributospropios
-
Introduccin a XHTML Captulo 3. Texto
43
El siguiente ejemplo muestra el uso de la etiqueta :
Ejemplo de etiqueta pre
La etiqueta pre
respeta los espacios en blanco
y
muestra el texto
tal y como
est escrito
La etiqueta pre
respeta los espacios en blanco
y
muestra el texto
tal y como
est escrito
El ejemplo anterior incluye el mismo texto (con espacios en blanco y varias lneas) dentro de una eti-queta y dentro de una etiqueta . Las diferencias visuales en un navegador son muy eviden-tes:
Captulo 3. Texto Introduccin a XHTML
44
Figura 3.16 Ejemplo de uso de la etiqueta pre
El primer texto se ve en pantalla tal y como se ha escrito, respetando todos los espacios en blanco ytodas las nuevas lneas. El segundo texto se ve como un prrafo normal, ya que HTML ha eliminadotodos los espacios en blanco sobrantes.
Los elementos son especiales, ya que los navegadores les aplican las siguientes reglas:
Mantienen todos los espacios en blanco (tabuladores, espacios y nuevas lneas)
Muestra el texto con un tipo de letra especial, denominado "de ancho fijo", ya que todas susletras son de la misma anchura
No se ajusta la longitud de las lneas (las lneas largas producen un scroll horizontal en laventana del navegador)
Esta ltima caracterstica diferencia por completo a los prrafos de los elementos . Como se havisto, los navegadores ajustan la anchura de los prrafos de texto para que ocupen todo el tamao dela ventana. Sin embargo, los elementos se muestran tal y como son originalmente, por lo queuna lnea muy larga dentro de un elemento provoca que la anchura de la pgina sea superior ala anchura de la ventana del navegador.
Si en el ejemplo anterior se aade ms texto al final de la segunda lnea (para producir una lnea lar-ga), el navegador muestra un scroll horizontal ya que el texto completo no cabe en el tamao de laventana y las lneas de los elementos nunca se ajustan.
Introduccin a XHTML Captulo 3. Texto
45
Figura 3.17 Ejemplo de aparicin de scroll horizontal con la etiqueta pre
Otra etiqueta relacionada con es la etiqueta , que se utiliza para mostrar cdigo fuentede cualquier lenguaje de programacin. La definicin formal de es la siguiente:
Delimita el texto considerado un fragmento de cdigo fuenteAtributos comunes bsicos, internacionalizacin y eventos Tipo de elemento En lnea
Atributos propios -
En la mayora de pginas web, no tiene sentido utilizar la etiqueta . Sin embargo, en muchaspginas web tcnicas que incluyen listados de programas, trozos de cdigo o etiquetas HTML, lo co-rrecto es emplear la etiqueta .
Ejemplo:
Ejemplo de etiqueta code
La etiqueta code
no respeta los espacios en blanco
La etiqueta code es similar a la
Captulo 3. Texto Introduccin a XHTML
46
etiqueta pre, sobre todo en el formato
del texto.
El navegador muestra claramente el comportamiento de y sus diferencias con :
Figura 3.18 Ejemplo de uso de la etiqueta code
Al igual que sucede con los elementos , el texto encerrado por la etiqueta se muestra conun tipo de letra especial de ancho fijo. Por el contrario, el elemento no respeta los espacios enblanco ni las lneas, por lo que su comportamiento es similar a la etiqueta . La ltima diferencia esque es un elemento en lnea, mientras que es un elemento de bloque.
3.6. Codificacin de caracteresUna consideracin importante directamente relacionada con el texto de las pginas HTML es la co-dificacin de los caracteres y la insercin de caracteres especiales. Algunos de los caracteres que seutilizan habitualmente en los textos no se pueden incluir directamente en las pginas web:
Los caracteres que utiliza HTML para definir sus etiquetas ( y ") no se pueden utilizarlibremente.
Los caracteres propios de los idiomas que no son el ingls (, , , , , etc.) pueden serproblemticos dependiendo de la codificacin de caracteres utilizada.
La solucin a la primera limitacin consiste en sustituir los caracteres reservados de HTML por unasexpresiones llamadas entidades HTML y que representan a cada carcter:
Introduccin a XHTML Captulo 3. Texto
47
Entidad Carcter Descripcin Traduccin
< < less than signo de menor que
> > more than signo de mayor que
& & ampersand ampersand
" " quotation mark comillas
(espacio en blanco) non-breaking space espacio en blanco
' ' apostrophe apstrofo
De esta forma, si se considera el siguiente texto:
Los caracteres , " y & pueden dar problemas con los textos en HTML
Para mostrar correctamente el texto anterior en una pgina HTML, se debe sustituir cada carcterespecial por su entidad HTML:
Los caracteres , " y & pueden dar problemas con los textos en
HTML
Ejercicio 5
Determinar el cdigo HTML que corresponde al siguiente documento:
Figura 3.19 Texto HTML que incluye caracteres especiales
Por otra parte, los caracteres propios de los idiomas diferentes al ingls tambin pueden ser proble-mticos. El motivo es que desde que se crea una pgina web hasta que llega al navegador del usuario,intervienen numerosos procesos:
Captulo 3. Texto Introduccin a XHTML
48
El diseador crea la pgina web con su editor HTML (por ejemplo Dreamweaver).
Si se trata de una aplicacin dinmica, el programador recorta la pgina HTML del diseador yla mezcla con el resto del cdigo de la aplicacin (por ejemplo PHP).
El servidor web almacena las pginas HTML estticas o el cdigo de la aplicacin web y sirve laspginas solicitadas por los usuarios.
El usuario solicita y visualiza las pginas web a travs de su navegador.
Si en todos los procesos anteriores se utiliza la misma codificacin de caracteres, los caracteres pro-pios de los idiomas se pueden escribir directamente:
Este prrafo contiene caracteres acentuados y se almacena en formato UTF-8
La palabra prrafo del ejemplo anterior incluye la letra . Si el editor HTML del diseador utiliza lacodificacin UTF-8, el entorno de desarrollo del programador tambin utiliza UTF-8, el servidor websirve las pginas con esa codificacin y el navegador del usuario es capaz de visualizar las pginas conformato UTF-8, el texto anterior se ver correctamente en el navegador del usuario.
Sin embargo, muchas veces no es posible que todos los procesos involucrados utilicen la misma co-dificacin de caracteres. Por limitaciones tcnicas o por decisiones de los diseadores y programado-res, los textos pueden pasar de codificacin UTF-8 a codificacin ISO-8859 en cualquier momento. Sise produce este cambio sin realizar una conversin correcta, el navegador del usuario mostrar ca-racteres extraos en todos los acentos y en todas las letras como la .
La solucin ms sencilla para asegurar que todos estos caracteres potencialmente problemticos sevan a visualizar correctamente en el navegador del usuario consiste en sustituir cada carcter pro-blemtico por su entidad HTML:
Entidad Carcter Descripcin oficial
latin letter n with tilde
latin capital n letter with tilde
a acute
e acute
i acute
o acute
u acute
A acute
E acute
I acute
O acute
Introduccin a XHTML Captulo 3. Texto
49
Entidad Carcter Descripcin oficial
U acute
euro
As, el prrafo de texto del ejemplo anterior, se podra escribir de la siguiente manera:
Este prrafo contiene caracteres acentuados y se almacena en formato UTF-8
Si se utilizan las entidades HTML en vez de los caracteres problemticos, es indiferente pasar deuna codificacin de caracteres a otra diferente. En la Wikipedia se puede consultar la lista completade las 252 entidades HTML definidas (http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references) .
Captulo 3. Texto Introduccin a XHTML
50
Captulo 4.
EnlacesEl lenguaje de marcado HTML se defini teniendo en cuenta algunas de las caractersticas que existanen ese momento para la publicacin digital de contenidos. Entre los conceptos utilizados en su crea-cin, se encuentra el mecanismo de "hipertexto".
De hecho, las letras "HT" de la sigla HTML significan "hipertexto" (hypertext en ingls), por lo que elsignificado completo de HTML podra traducirse como "lenguaje de marcado para hipertexto".
La incorporacin del hipertexto fue una de las claves del xito del lenguaje HTML, ya que permiticrear documentos interactivos que proporcionan informacin adicional cuando se solicita. El elemen-to principal del hipertexto es el "hiperenlace", tambin llamado "enlace web" o simplemente "enlace".
Los enlaces se utilizan para establecer relaciones entre dos recursos. Aunque la mayora de enlacesrelacionan pginas web, tambin es posible enlazar otros recursos como imgenes, documentos y ar-chivos.
Una caracterstica que no se suele tener en cuenta en los enlaces es que estn formados por dos ex-tremos y un sentido. En otras palabras, el enlace comienza en un recurso y apunta hacia otro recurso.Cada uno de los dos extremos se llaman "anchors" en ingls, que se puede traducir literalmente como"anclas".
4.1. URLAntes de empezar a crear enlaces, es necesario comprender y dominar el concepto de URL. El acr-nimo URL (del ingls Uniform Resource Locator) hace referencia al identificador nico de cada recur-so disponible en Internet. Las URL son esenciales para crear los enlaces, pero tambin se utilizan enotros elementos HTML como las imgenes y los formularios.
La URL de un recurso tiene dos objetivos principales:
Identificar de forma nica a ese recurso
Permitir localizar de forma eficiente ese recurso
51
En primer lugar, las URL permiten que cada pgina HTML publicada en Internet tenga un nombrenico que permita diferenciarla de las dems. De esta forma es posible crear enlaces que apunten deforma inequvoca a una determinada pgina.
Si se accede a la pgina principal de Google, la direccin que muestra el navegador es:
http://www.google.com
La cadena de texto http://www.google.com es la URL completa de la pgina principal de Google. LaURL de las pginas es imprescindible para crear los enlaces, ya que permite distinguir una pgina deotra.
El segundo objetivo de las URL es el de permitir la localizacin eficiente de cada recurso de Internet.Para ello es necesario comprender las diferentes partes que forman las URL. Una URL sencilla siempreest formada por las mismas tres partes. Si por ejemplo se considera la siguiente URL:
http://www.librosweb.es/xhtml/capitulo4.html
Las partes que componen la URL anterior son:
Protocolo (http://): el mecanismo que debe utilizar el navegador para acceder a ese recurso.Todas las pginas web utilizan http://. Las pginas web seguras (por ejemplo las de los bancos ylas de los servicios de email) utilizan https:// (se aade una letra s).
Servidor (www.librosweb.es): simplificando mucho su explicacin, se trata del ordenador en elque se encuentra guardada la pgina que se quiere acceder. Los navegadores son capaces deobtener la direccin de cada servidor a partir de su nombre.
Ruta (/xhtml/capitulo4.html): camino que se debe seguir, una vez que se ha llegado al servidor,para localizar el recurso especfico que se quiere acceder.
Por tanto, las URL no slo identifican de forma nica a cada recurso de Internet, sino que tambinproporcionan a los navegadores la informacin necesaria para poder llegar hasta ese recurso.
La mayora de URL son tan sencillas como la URL mostrada anteriormente. No obstante, existen URLcomplejas formadas por ms partes.
http://www.alistapart.com/comments/webstandards2008?page=5#42
Las cinco partes que forman la URL anterior son:
Protocolo (http://)
Servidor (www.alistapart.com)
Ruta (/comments/webstandards2008)
Consulta (?page=5): informacin adicional necesaria para que el servidor localice correctamenteel recurso que se quiere acceder. Siempre comienza con el carcter ? y contiene una sucesinde palabras separadas por = y &
Seccin (#42): permite que el navegador se posicione automticamente en una seccin de lapgina web. Siempre comienza con el caracter #
Captulo 4. Enlaces Introduccin a XHTML
52
Como las URL utilizan los caracteres :, =, & y / para separar sus partes, estos caracteres estn reserva-dos y no se pueden utilizar libremente. Adems, algunos caracteres no estn reservados pero puedenser problemticos si se utilizan en la propia URL.
Si es necesario incluir estos caracteres reservados y especiales en una URL, se sustituyen por combi-naciones de caracteres seguros. Esta sustitucin se denomina codificacin de caracteres y el servidorrealiza el proceso inverso (decodificacin) cuando le llega una URL con los caracteres codificados.
A continuacin se muestra la tabla para codificar los caracteres ms comunes:
Carcter original Carcter codificado Carcter original Carcter codificado
/ %2F ? %3F
: %3A @ %40
= %3D & %26
" %22 \ %5C
' %60 ~ %7E
(espacio en blanco) %20 # %23
Por otra parte, aunque desde hace tiempo ya es posible incluir en las URL caracteres de otros idiomasque no sean el ingls, an no es completamente seguro utilizar estos caracteres en las URL. Si se uti-lizan letras como , , o , es posible que algunos navegadores no las interpreten de forma correcta.
La solucin consiste en codificar todos los caracteres que no existen en ingls. La siguiente tablamuestra la codificacin de los caracteres ms utilizados:
Carcter original Carcter codificado Carcter original Carcter codificado
%F1 %D1
%E1 %C1
%E9 %C9
%ED %CD
%F3 %D3
%FA %DA
%E7 %C7
Teniendo en cuenta las dos tablas anteriores de codificacin de caracteres, es fcil crear las URL co-rrectas sin caracteres problemticos:
http://www.ejemplo.com/estaciones/otoo.html
Introduccin a XHTML Captulo 4. Enlaces
53
http://www.ejemplo.com/estaciones/oto%F1o.html
http://www.ejemplo.com/ruta/nombre pgina.html
http://www.ejemplo.com/ruta/nombre%20p%E1gina.html
4.2. Enlaces relativos y absolutosLas pginas web habituales suelen contener decenas de enlaces de diferentes tipos. La siguienteimagen muestra algunos de los tipos de enlaces de la pgina principal del sitio webwww.thinkvitamin.com:
Figura 4.1 Ejemplo de diferentes tipos de enlaces en la pgina 456BereaStreet.com
En esa pgina, cuando se pincha sobre algunos enlaces, el navegador abandona el sitio web para ac-ceder a pginas que se encuentran en otros sitios. Estos enlaces se conocen como "enlaces externos".Sin embargo, la mayora de enlaces de un sitio web apuntan a pginas del propio sitio web, por lo quese denominan "enlaces internos".
Adems de internos/externos, la otra caracterstica que diferencia a los enlaces (y por tanto, tambina las URL) es si el enlace es absoluto o relativo. Las URL absolutas incluyen todas las partes de la URL(protocolo, servidor y ruta) por lo que no se necesita ms informacin para obtener el recurso enla-zado.
Las URL relativas prescinden de algunas partes de las URL para hacerlas ms breves. Como se tratade URL incompletas, es necesario disponer de informacin adicional para obtener el recurso enlaza-
Captulo 4. Enlaces Introduccin a XHTML
54
do. En concreto, para que una URL relativa sea til es imprescindible conocer la URL del origen delenlace.
Las URL relativas se construyen a partir de las URL absolutas y prescinden de la parte del protocolo,del nombre del servidor e incluso de parte o toda la ruta del recurso enlazado. Aunque las URL rela-tivas pueden ser difciles de entender para los que comienzan con HTML, son tan tiles que todos lossitios web las utilizan.
Imagina que dispones de una pgina publicada en http://www.ejemplo.com/ruta1/ruta2/pagi-na1.html y quieres incluir en ella un enlace a otra pgina que se encuentra enhttp://www.ejemplo.com/ruta1/ruta2/pagina2.html. Como las URL identifican de forma nica a losrecursos de Internet y proporcionan la informacin necesaria para llegar hasta ellos, el enlace debe-ra utilizar la URL completa de la segunda pgina.
Las URL completas tambin se llaman URL absolutas, ya que el navegador no necesita disponer de in-formacin adicional para localizar el recurso enlazado. Si se utilizan siempre las URL absolutas, losenlaces estn completamente definidos.
Sin embargo, escribir siempre las URL completas es bastante aburrido, cuesta mucho tiempo y haceimposible cambiar la ubicacin de los contenidos de un sitio web. Por ese motivo, casi todos los sitiosweb de Internet utilizan URL relativas siempre que es posible.
Una URL relativa es una versin abreviada de una URL absoluta. Su objetivo es eliminar todas las par-tes de la URL absoluta que se pueden adivinar a partir de la informacin de contexto de la pgina web.En otras palabras, las URL relativas aprovechan la inteligencia de los navegadores para crear URL in-completas que los navegadores pueden completar deduciendo la informacin que falta.
Considerando de nuevo el ejemplo anterior, la URL a la que se quiere enlazar utiliza el mismo pro-tocolo y se encuentra en el mismo servidor que la pgina origen, por lo que la URL relativa puedeprescindir de esas partes:
URL absoluta: http://www.ejemplo.com/ruta1/ruta2/pagina2.html
URL relativa: /ruta1/ruta2/pagina2.html
En el ejemplo anterior, las dos URL son equivalentes porque cuando no se indica el protocolo y el ser-vidor de una URL, los navegadores suponen que son los mismos que los de la pgina origen. Por lotanto, cuando el navegador encuentra la URL /ruta1/ruta2/pagina2.html, realiza el siguiente proce-so:
1. La URL no es absoluta, por lo que se debe determinar la URL absoluta a partir de la URL relativapara poder cargar el recurso enlazado.
2. A la URL relativa le falta el protocolo y el servidor, por lo que se supone que son los mismos quelos de la pgina origen (http:// y www.ejemplo.com).
3. Se aaden las partes que faltan a la URL relativa para obtener la URL absoluta: http:// +www.ejemplo.com + /ruta1/ruta2/pagina2.html = http://www.ejemplo.com/ruta1/ruta2/pagina2.html.
Introduccin a XHTML Captulo 4. Enlaces
55
Aunque el ejemplo mostrado es el caso ms sencillo de URL relativa, existen otros casos ms avanza-dos en los que se prescinde de parte o toda la ruta del recurso que se enlaza. A continuacin se mues-tran los cuatro tipos diferentes de URL relativas:
1) El origen y el destino del enlace se encuentran en el mismo directorio
Si desde una pgina web se quiere enlazar un recurso que se encuentra en el mismo directorio delservidor, la URL relativa puede prescindir de todas las partes de la URL absoluta salvo el nombre delrecurso enlazado.
Elemento Valor
Pgina origen http://www.ejemplo.com/ruta1/ruta2/ruta3/pagina1.html
Pgina enlazada Pgina web llamada pagina2.html y que se encuentra en el mismo directorio
URL absoluta http://www.ejemplo.com/ruta1/ruta2/ruta3/pagina2.html
URL relativa pagina2.html
Cuando el navegador encuentra una URL relativa que slo consiste en el nombre de un recurso, supo-ne que el protocolo, servidor y directorio del recurso enlazado son los mismos que los del origen delenlace.
2) El destino del enlace se encuentra cerca de su origen y en un nivel superior