Manual HTML.

108
Manual de HTML – DesarrolloWeb.com 1 / 108 Manual de HTML HTML es el lenguaje utilizado como base para crear las páginas web. Con HTML expresamos el contenido que queremos que una página muestre. En este manual explicamos en profundidad cómo desarrollar páginas básicas con HTML, desde lo más fundamental a los temas más avanzados. Autores del manual Este manual ha sido realizado por los siguientes colaboradores de DesarrolloWeb.com: Miguel Angel Álvarez Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo. http://www.desarrolloweb.com (24 capítulos) Rubén Alvarez Redactor de DesarrolloWeb.com http://www.desarrolloweb.com (22 capítulos) Christian Santalucía http://www.criarweb.com (2 capítulos) Luciano Moreno Consultor, diseñador y desarrollador web en ParaRedeBJS. Especialista en usabillidad y diseño centrado en el usuario. (6 capítulos) Dairo Galeano Desarrollador independiente (2 capítulos) http://desarrolloweb.com/manuales/21/

Transcript of Manual HTML.

Manual de HTML – DesarrolloWeb.com 1 / 108

Manual de HTMLHTML es el lenguaje utilizado como base para crear las páginas web. Con HTML expresamos el contenido que queremos que una página muestre.

En este manual explicamos en profundidad cómo desarrollar páginas básicas con HTML, desde lo más fundamental a los temas más avanzados.

Autores del manual

Este manual ha sido realizado por los siguientes colaboradores de DesarrolloWeb.com: Miguel Angel ÁlvarezMiguel es fundador de DesarrolloWeb.com y laplataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.http://www.desarrolloweb.com (24 capítulos)

Rubén AlvarezRedactor de DesarrolloWeb.comhttp://www.desarrolloweb.com (22 capítulos)

Christian Santalucíahttp://www.criarweb.com (2 capítulos)

Luciano MorenoConsultor, diseñador y desarrollador web en ParaRedeBJS. Especialista en usabillidad y diseño centrado en el usuario. (6 capítulos)

Dairo GaleanoDesarrollador independiente (2 capítulos)

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 2 / 108

Parte 1:

Introducción a HTMLIntroducción al manual de HTML y al lenguaje de modelado de páginas web. Veremos qué es

HTML y las primeras nociones que nos ayudarán a realizar las primeras pruebas de creación de

una página web sencilla.

1.1.- Prólogo al manual de HTMLA quién va dirigido este manual y las lecturas aconsejadas antes de abordarlo.

Bienvenidos al manual de HTML de DesarrolloWeb. A través de todos estos capítulos vamos a descubrir el lenguaje utilizado para la creación de páginas web: el Hyper Text Markup Language, más conocido como HTML.

Puede que en un principio, el hecho de hablar de un lenguaje informático pare los pies a más de uno. No os asustéis, el HTML no deja de ser más que una forma un tanto peculiar de dar formato a los textos e imágenes que pretendemos ver por medio de un navegador.

Antes de entrar en materia, lo cual haremos de una forma directa y practica, os recomendamos fervorosamente la lectura previa de nuestro manual Publicar en Internet. A partir de esta guía, aprenderéis los conceptos más básicos necesarios para creación de un sitio web. También os permitirá acceder a este manual con unos conocimientos de base sobre HTML imprescindibles y os dejara bien claro lo que su conocimiento aporta con respecto al simple uso de editores de HTML. Además, en dicho manual sobre la publicación en Internet, explicamos también algo tan importantecomo qué hace falta para subir una página web realizada que tenemos en nuestro ordenador a un servidor de Internet. Si lo deseamos, lo podemos ver en vídeo en el Videotutorial sobre subir una web a Internet.

El público al que va enfocado este manual es a todos aquellos que, con conocimientos mínimos de informática, desean hacer mundialmente público un mensaje, una idea o una información usando para ello el medio más práctico, económico y actual: Internet.

Lo que necesitáis como base para llevar a buen término el aprendizaje (aparte de leer el manual Publicar en Internet) es:

• Saber escribir con un teclado • Saber manejar un ratón • Tener ganas de aprender

Como podréis ver, cualquier persona que sepa manejar un ordenador tiene los conocimientos básicos para aprender HTML. Si le pones un poco de ganas y sigues este manual hasta el final, tendrás las siguientes habilidades o conocimientos:

• Capacidad para crear y publicar vuestro propio sitio web con un mínimo de calidad. • Conocimientos de todo tipo sobre las tecnologías y herramientas empleadas en el ámbito de

la Red. • Posiblemente una afición que puede convertirse en pasión y terminar, en algunos casos,

siendo un vicio o un oficio.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 3 / 108

Podéis formular vuestras cuestiones y, esperamos que en un futuro ayudar a otros compañeros, enviando discusiones sobre HTML o bien en la lista de correo de DesarrolloWeb.com.

Para quien no sepa nada sobre crear una página web, y le gusta que le expliquen las cosas desde cero y de manera visual, recomendamos ver el vídeo donde mostramos el proceso de creación de la primera página básica. Además, para complementar las explicaciones de este manual, también recomendamos el videotutorial de HTML.

Finalmente, antes de comenzar con el temario, queremos daros una referencia importante a la sección HTML a fondo, donde publicamos todos los contenidos que tienen que ver con HTML y donde encontrarás este y otros manuales relacionados con el lenguaje.

Pasemos pues sin más preámbulos a ver de qué se trata el HTML...

Artículo por Rubén Alvarez

1.2.- Introducción al HTMLLas primeras cosas que debes saber sobre HTML: historia, objetivos y demás conocimientos donde sentar las bases del manual.

HTML es el lenguaje con el que se escriben las páginas web. Las páginas web pueden ser vistas por el usuario mediante un tipo de aplicación llamada navegador. Podemos decir por lo tanto que el HTML es el lenguaje usado por los navegadores para mostrar las páginas webs al usuario, siendo hoy en día la interface más extendida en la red.

Este lenguaje nos permite aglutinar textos, sonidos e imágenes y combinarlos a nuestro gusto. Además, y es aquí donde reside su ventaja con respecto a libros o revistas, el HTML nos permite la introducción de referencias a otras páginas por medio de los enlaces hipertexto.

El HTML se creó en un principio con objetivos divulgativos. No se pensó que la web llegara a ser unárea de ocio con carácter multimedia, de modo que, el HTML se creó sin dar respuesta a todos los posibles usos que se le iba a dar y a todos los colectivos de gente que lo utilizarían en un futuro. Sinembargo, pese a esta deficiente planificación, si que se han ido incorporando modificaciones con el tiempo, estos son los estándares del HTML. Numerosos estándares se han presentado ya. El HTML 4.01 es el último estándar a septiembre de 2001.

Esta evolución tan anárquica del HTML ha supuesto toda una seria de inconvenientes y deficienciasque han debido ser superados con la introducción de otras tecnologías accesorias capaces de organizar, optimizar y automatizar el funcionamiento de las webs. Ejemplos que pueden sonaros son las CSS, JavaScript u otros. Veremos más adelante en qué consisten algunas de ellas.

Otros de los problemás que han acompañado al HTML es la diversidad de navegadores presentes en el mercado los cuales no son capaces de interpretar un mismo código de una manera unificada. Esto obliga al webmáster a, una vez creada su página, comprobar que esta puede ser leída satisfactoriamente por todos los navegadores, o al menos, los más utilizados.

Además del navegador necesario para ver los resultados de nuestro trabajo, necesitamos evidentemente otra herramienta capaz de crear la página en si. Un archivo HTML (una página) no es más que un texto. Es por ello que para programar en HTML necesitamos un editor de textos.

Es recomendable usar el Bloc de notas que viene con windows, u otro editor de textos sencillo. Hay que tener cuidado con algunos editores más complejos como Wordpad o Microsoft Word, pues colocan su propio código especial al guardar las páginas y HTML es únicamente texto plano, con lo que podremos tener problemas.

Existen otro tipo de editores específicos para la creación de páginas web los cuales ofrecen muchasfacilidades que nos permiten aumentar nuestra productividad. No obstante, es aconsejable en un principio utilizar una herramienta lo más sencilla posible para poder prestar la máxima atención a nuestro código y familiarizarnos lo antes posible con él. Siempre tendremos tiempo más delante de pasarnos a editores más versátiles con la consiguiente ganancia de tiempo.

Para tener más claro todo el tema de editores y los tipos que existen, visita los artículos:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 4 / 108

• Editores de HTML. • Bloc de notas. • También puedes acceder a descripciones editores más complejos que el Block de Notas, pero

más potentes como Homesite o UltraEdit.

Es importante tener claro todo ello puesto que en función de vuestros objetivos puede que, más queaprender HTML, resulte más interesante aprender el uso de una aplicación para la creación de páginas.

Así pues, una página es un archivo donde está contenido el código HTML en forma de texto. Estos archivos tienen extensión .html o .htm (es indiferente cuál utilizar). De modo que cuando programemos en HTML lo haremos con un editor de textos y guardaremos nuestros trabajos con extensión .html, por ejemplo mipágina.html

Consejo: Utiliza siempre la misma extensión en tus archivos HTML. Eso evitará que te confundas al escribir los

nombres de tus archivos unas veces con .htm y otras con .html. Si trabajas con un equipo en un proyecto todavía

más importante que os pongáis todos de acuerdo en la extensión.

Artículo por Rubén Alvarez

1.3.- Sintaxis del HTMLDescripción de la sintaxis con la que se trabaja en el lenguaje HTML, así como la estructura que tendrá el documento básico HTML.

El HTML es un lenguaje de marcas que basa su sintaxis en un elemento de base al que llamamos etiqueta. A través de las etiquetas vamos definiendo los elementos del documento, como enlaces, párrafos, imágenes, etc. Así pues, un documento HTML estará constituido por texto y un conjunto de etiquetas para definir la forma con la que se tendrá que presentar el texto y otros elementos en la página.

La etiqueta presenta frecuentemente dos partes:

Una apertura de forma general <etiqueta> Un cierre de tipo </etiqueta>

Todo lo incluido en el interior de esa etiqueta sufrirá las modificaciones que caracterizan a esta etiqueta. Así por ejemplo:

Las etiquetas <b> y </b> definen un texto en negrita. Si en nuestro documento HTML escribimos una frase con el siguiente código:

<b>Esto esta en negrita</b>

El resultado Será:

Esto esta en negrita

Las etiquetas <p> y </p> definen un párrafo. Si en nuestro documento HTML escribiéramos:

<p>Hola, estamos en el párrafo 1</p> <p>Ahora hemos cambiado de párrafo</p>

El resultado sería:

Hola, estamos en el párrafo 1

Ahora hemos cambiado de párrafo

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 5 / 108

1.3.1.- Partes de un documento HTML

Además de todo esto, un documento HTML ha de estar delimitado por la etiqueta <html> y </html>. Dentro de este documento, podemos asimismo distinguir dos partes principales:

El encabezado, delimitado por <head> y </head> donde colocaremos etiquetas de índole informativo como por ejemplo el titulo de nuestra página.

El cuerpo, flanqueado por las etiquetas <body> y </body>, que será donde colocaremos nuestro texto e imágenes delimitados a su vez por otras etiquetas como las que hemos visto.

El resultado es un documento con la siguiente estructura:

<html>

<head> Etiquetas y contenidos del encabezado Datos que no aparecen en nuestra página pero que son importantes para catalogarla: Titulo, palabras clave,... </head>

<body> Etiquetas y contenidos del cuerpo Parte del documento que será mostrada por el navegador: Texto e imágenes </body>

</html>

1.3.2.- Las mayúsculas o minúsculas son indiferentes al escribir etiquetas

A notar que las etiquetas pueden ser escritas con cualquier tipo de combinación de mayúsculas y minúsculas. <html>, <HTML> o <HtMl> son la misma etiqueta. Resulta sin embargo aconsejable acostumbrarse a escribirlas en minúscula ya que otras tecnologías que pueden convivir con nuestroHTML (XML por ejemplo) no son tan permisivas y nunca viene mal coger buenas costumbres desde el principio para evitar fallos triviales en un futuro.

Artículo por Rubén Alvarez

1.4.- Tu primera páginaVamos a ver cómo se hace una página muy sencilla en HTML, que sirva de práctica a los debutantes.

Podemos ya con estos conocimientos, y alguno que otro más, crear nuestra primera página. Para ello, abre tu editor de textos y copia y pega el siguiente texto en un nuevo documento.

<html> <head> <title>Cocina Para Todos</title> </head> <body> <p><b>Bienvenido,</b></p> <p>Estás en la página <b>Comida para Todos</b>.</p> <p>Aquí aprenderás recetas fáciles y deliciosas.</p> </body> </html>

Ahora guarda ese archivo con extensión .html o .htm en tu disco duro. Para ello accedemos al menúArchivo y seleccionamos la opción Guardar como. En la ventana elegimos el directorio donde deseamos guardarlo y colocaremos su nombre, por ejemplo mi_pagina.html

Consejo: Utiliza nombres en tus archivos que tengan algunas normas básicas para ahorrarte disgustos y lios.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 6 / 108

Nuestro consejo es que no utilices acentos ni espacios ni otros caracteres raros. También te ayudará escribir

siempre las letras en minúsculas.

Esto no quiere decir que debes hacer nombres de archivos cortos, es mejor hacerlos descriptivos para que te

aclaren lo que hay dentro. Algún caracter como el guión "-" o el guión bajo "_" te puede ayudar a separar las

palabras. Por ejemplo quienes_somos.html

Con el documento HTML creado, podemos ver el resultado obtenido a partir de un navegador.Es conveniente, llegado a este punto, hacer hincapié en el hecho de que no todos los navegadores son idénticos. Desgraciadamente, los resultados de nuestro código pueden cambiar de uno a otro por lo que resulta aconsejable visualizar la página en varios. Generalmente se usan Internet Explorer y Firefox como referencias ya que son los más extendidos.

A decir verdad, en el momento que estas líneas son escritas, Internet Explorer acapara la inmensa mayoría de usuarios (90% más o menos) y Firefox esta relegado a un segundo plano. Esto no quieredecir que lo debemos dejar totalmente de lado ya que el 10% de visitas que puede proporcionarnos puede resultar muy importante para nosotros.

Nota: En la disputa por ser el navegador más usado, en la actualidad otros productos vienen tomando fuerza

como Chrome, el navegador de Google. Para el que le interese este tema y conocer datos reales sobre los

porcentajes de uso de cada navegador, se puede leer uno de los informes que publicamos periódicamente, como el

ranking de uso de los navegadores en noviembre de 2010.

Pues bien, volviendo al tema, una vez creado el archivo .html o .htm, podemos visualizar el resultado de nuestra labor abriendo dicha página con un navegador. Para hacerlo, la forma resulta diferente dependiendo del navegador:

Si estamos empleando el Explorer, hemos de ir al barra de menú, elegir Archivo y seleccionar Abrir.Una ventana se abrirá. Pulsamos sobre el botón Examinar y accederemos a una ventana a partir de la cual podremos movernos por el interior de nuestro disco duro hasta dar con el archivo que deseamos abrir.

La cosa no resulta más difícil para Netscape. En este caso, nos dirigimos también a la barra de menú principal y elegimos File y a continuación Open File. La misma ventana de búsqueda nos permitirá escudriñar el contenido de nuestro PC hasta dar con el archivo buscado.

Nota: También puedes abrir el archivo si accedes al directorio donde lo guardaste. En él podrás encontrar tu

archivo HTML y verás que tiene como icono el logotipo de Netscape o el de Internet Explorer. Para abrirlo

simplemente hacemos un doble click sobre él.

Una vez abierto el archivo podréis ver vuestra primera página web. Algo sencillita pero por algo se empieza. Ya veréis como en poco tiempo seremos capaces de mejorar sensiblemente.

Fijaos en la parte superior izquierda de la ventana del navegador. Podréis comprobar la presencia del texto delimitado por la etiqueta <title>. Esta es una de las funciones de esta etiqueta, cuyo principal cometido es el de servir de referencia en los motores de búsqueda como Altavista o Yahoo.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 7 / 108

Por otro lado, los elementos que colocamos entre la etiqueta <body> y </body> se pueden ver en el espacio reservado para el cuerpo de la página.

Se puede ver la página del ejemplo en funcionamiento aquí.

Si ahora hacéis click con el botón derecho sobre la página y elegís Ver código fuente (o View page source) veréis como en una ventana accesoria aparece el código de nuestra página. Este recurso es de extremada importancia ya que nos permite ver el tipo de técnicas empleadas por otros para la confección de sus páginas.

Con todo esto asimilado ya estamos en condiciones de adentrarnos un poco más en la descripción de algunas de las etiquetas más empleadas del HTML.

Posible problema: Al utilizar el Block de Notas en Windows en ocasiones, aunque le digamos que es un

archivo .html, el documento se guarda como si fuera un texto y no una página web. Lo que está pasando es que el

Block de Notas tiene predeterminado guardar sus archivos con extensión .txt y en realidad lo que está guardando

en el disco duro es mi_pagina.html.txt

Para conseguir tener el control de las extensiones en el block de notas y en Windows en general podemos acceder

a MI-PC y en el menú de Ver seleccionáis "Opciones de carpeta". En la ventana que sale pulsamos en la solapa

"Ver" y nos permite deseleccionar una caja de selección que pone algo como "Ocultar extensiones para los tipos de

archivos conocidos". (Así se hace en Win98, puede variar un poco en otras versiones de Windows.)

Con ello conseguiremos que se vea siempre la extensión del archivo con el que estamos trabajando y que el Block

de Notas nos haga caso cuando le indicamos que grabe el archivo con otra extensión que no sea .txt

Artículo por Rubén Alvarez

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 8 / 108

Parte 2:

Formatos básicos con

HTMLCómo realizar el formato de textos que se colocan en una página web. Aprende a utilizar tus

primeras etiquetas HTML y atributos para definir los contenidos de la página y aplicar un

formato básico.

2.1.- Formato de párrafos en HTMLCómo colocar párrafos y saltos de línea en páginas web. También vemos los encabezados como párrafos que sirven de titulo.

En los capítulos anteriores hemos presentado a titulo de ejemplo algunas etiquetas que permiten dar formato a nuestro texto. En este capitulo veremos con más detalle las más ampliamente utilizadas y ejemplificaremos algunas de ellas posteriormente.

Formatear un texto pasa por tareas tan evidentes como definir los párrafos, justificarlos, introducir viñetas, numeraciones o bien poner en negrita, itálica...

Hemos visto que para definir los párrafos nos servimos de la etiqueta <p> que introduce un salto y deja una línea en blanco antes de continuar con el resto del documento.

Podemos también usar la etiqueta <br>, de la cual no existe su cierre correspondiente (</br>), para realizar un simple retorno de carro con lo que no dejamos una línea en blanco sino que solo cambiamos de línea.

Nota: Existen otras etiquetas que no tienen su correspondiente de cierre, como <img> para las imágenes, las

veremos más adelante. Esto ocurre porque un salto de línea o una imagen no empiezan y acaban más adelante

sino que sólo tienen presencia en un lugar puntual.

Podéis comprobar que cambiar de línea en nuestro documento HTML sin introducir alguna de estasu otras etiquetas no implica en absoluto un cambio de línea en la página visualizada. En realidad el navegador introducirá el texto y no cambiara de línea a no ser que esta llegue a su fin o bien lo especifiquemos con la etiqueta correspondiente.

Los párrafos delimitados por etiquetas <p> pueden ser fácilmente justificados a la izquierda, centro o derecha especificando dicha justificación en el interior de la etiqueta por medio de un atributo align. Un atributo no es más que un parámetro incluido en el interior de la etiqueta que ayuda a definir el funcionamiento de la etiqueta de una forma más personal. Veremos a lo largo de este manual cantidad de atributos muy útiles para todo tipo de etiquetas.

Así, si deseásemos introducir un texto alineado a la izquierda escribiríamos:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 9 / 108

<p align="left">Texto alineado a la izquierda</p>

El resultado seria:

Texto alineado a la izquierda

Para una justificación al centro:

<p align="center">Texto alineado al centro</p>

que daría:

Texto alineado al centro

Para justificar a la derecha:

<p align="right">Texto alineado a la derecha</p>

cuyo efecto seria:

Texto alineado a la derecha

Como veis, en cada caso el atributo align toma determinados valores que son escritos entre comillas. En algunas ocasiones necesitamos especificar algunos atributos para el correcto funcionamiento de la etiqueta. En otros casos, el propio navegador toma un valor definido por defecto. Para el caso de align, el valor por defecto es left.

Nota: Los atributos tienen sus valores indicados entre comillas ("), pero si no los indicamos entre comillas

también funcionará en la mayoría de los casos. Sin embargo, es aconsejable que pongamos siempre las comillas

para acostumbrarnos a utilizarlas, por dar homogeneidad a nuestros códigos y para evitar errores futuros en

sistemas más quisquillosos.

El atributo align no es exclusivo de la etiqueta <p>. Otras etiquetas muy comunes, que veremos más adelante, entre las cuales se introducen texto o imágenes, suelen hacer uso de este atributo deuna forma habitual.

Imaginemos un texto relativamente largo donde todos los párrafos están alineados a la izquierda (por ejemplo). Una forma de simplificar nuestro código y de evitar introducir continuamente el atributo align sobre cada una de nuestras etiquetas es utilizando la etiqueta <div>.

Esta etiqueta por si sola no sirve para nada. Tiene que estar acompañada del atributo align y lo quenos permite es alinear cualquier elemento (párrafo o imagen) de la manera que nosotros deseemos.

Así, el código:

<p align="left">Parrafo1</p> <p align="left"> Parrafo3</p> <p align="left"> Parrafo2</p>

es equivalente a:

<div align="left"> <p>Parrafo1</p> <p>Parrafo2</p> <p>Parrafo3</p> </div>

Como hemos visto, la etiqueta <div> marca divisiones en las que definimos un mismo tipo de alineado.

2.1.1.- Ejemplo práctico:

Para practicar un poco lo que acabamos de ver vamos a proponer un ejercicio que podéis resolver en vuestros ordenadores. Simplemente queremos construir una página que tenga, por este orden:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 10 / 108

2 Párrafos centrados 3 Párrafos alineados a la derecha Un salto de línea triple 1 párrafo alineado a la izquierda

No vamos a escribir en esta ocasión el código fuente del ejercicio. Podemos verlo en funcionamiento en nuestro navegador y en la ventana podemos obtener el código fuente seleccionando en el menú Ver la opción Código fuente.

Ver el ejercicio en marcha.

2.1.2.- Encabezados

Existen otras etiquetas para definir párrafos especiales, formateados como títulos. Son los encabezados o Header en inglés. Como decimos, son etiquetas que formatean el texto como un titular, para lo cual asignan un tamaño mayor de letra y colocan el texto en negrita.

Hay varios tipos de encabezados, que se diferencian en el tamaño de la letra que utilizan. La etiqueta en concreto es la <h1>, para los encabezados más grandes, <h2> para los de segundo nivel y así hasta <h6> que es el encabezado más pequeño.

Los encabezados implican también una separación en párrafos, así que todo lo que escribamos dentro de <h1> y </h1> (o cualquier otro encabezado) se colocará en un párrafo independiente.

Podemos ver cómo se presentan algunos encabezados a continuación.

<h1>Encabezado de nivel 1</h1>

Se verá de esta manera en la página:

Encabezado de nivel 1Los encabezados, como otras etiquetas de HTML, soportan el atributo align. Vemos un ejemplo de encabezado de nivel 2 alineado al centro.

<h2 align="center">Encabezado de nivel 2</h2>

Se verá de esta manera en la página:

Encabezado de nivel 2

Otro ejercicio interesante es construir una página web que contenga todos los encabezados posibles. Se puede ver a continuación.

<html>

<head> <title>Todos los encabezados</title> </head>

<body>

<h1>Encabezado de nivel 1</h1> <h2>Encabezado de nivel 2</h2> <h3>Encabezado de nivel 3</h3> <h4>Encabezado de nivel 4</h4> <h5>Encabezado de nivel 5</h5> <h6>Encabezado de nivel 6</h6>

</body>

</html>

Se puede ver el ejercicio en una página aparte.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 11 / 108

Consejo: No debemos utilizar las etiquetas de encabezado para formatear el texto, es decir, si queremos colocar

un tipo de letra más grande y en negrita debemos utilizar las etiquetas que existen para ello (que veremos en

seguida). Los encabezados son para colocar titulares en páginas web y es el navegador el responsable de

formatear el texto de manera que parezca un titular. Cada navegador, pues, puede formatear el texto a su gusto

con tal de que parezca un titular.

Artículo por Rubén Alvarez

2.2.- Formateando el textoVemos como colocar negritas, itálicas, subrayados, subíndices y supreíndices.

Además de todo lo relativo a la organización de los párrafos, uno de los aspectos primordiales del formateo de un texto es el de la propia letra. Resulta muy común y práctico presentar texto resaltado en negrita, itálica y otros. Paralelamente el uso de índices, subíndices resulta vital para lapublicación de textos científicos. Todo esto y mucho más es posible por medio del HTML a partir de multitud de etiquetas entre las cuales vamos a destacar algunas.

2.2.1.- Negrita

Podemos escribir texto en negrita incluyéndolo dentro de las etiquetas <b> y </b> (bold). Esta misma tarea es desempeñada por <strong> y </strong> siendo ambas equivalentes. Nosotros nos inclinamos por la primeras por simple razon de esfuerzo.

Escribiendo un código de este tipo:

<b>Texto en negrita</b>

Obtenemos este resultado:

Texto en negrita

Nota: ¿Qué diferencia hay entre <b> y <strong>?

Aunque las dos etiquetas hacen el mismo efecto, tienen una peculiaridad que las hace distintas. La etiqueta <b>

indica negrita, mientras que la etiqueta <strong> indica que se debe escribir resaltado. El HTML lo interpretan

los navegadores según su criterio, es por eso que las páginas se pueden ver de distinta manera en unos browsers

y en otros. La etiqueta <H1> quiere decir "encabezado de nivel 1", es el navegador el responsable de formatear el

texto de manera que parezca un encabezado de primer nivel. En la práctica los encabezados de Internet Explorer

y Netscape son muy parecidos (tamaño de letra grande y en negrita), pero otro navegador podría colocar los

encabezados con subrayado si le pareciese oportuno.

La diferencia entre <b> y <strong> se podrá entender ahora. Mientras que <b> significa simplemente negrita y

todos los navegadores la interpretarán como negrita, <strong> es una etiqueta que significa que se tiene que

resaltar fuertemente el texto y cada navegador es el responsable de resaltarlo como desee. En la práctica

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 12 / 108

<strong> coloca el texto en negrita, pero podría ser que un navegador decidiese resaltar colocando negrilla,

subrayado y color rojo en el texto.

2.2.2.- Itálica

También en este caso existen dos posibilidades, una corta: <i> e </i> (italic) y otra un poco más larga: <em> y </em>. En este manual, y en la mayoría de las páginas que veréis por ahí, os encontraréis con la primera forma sin duda más sencilla a escribir y a acordarse.

He aquí un ejemplo de texto en itálica:

<i>Texto en itálica</i>

Que da el siguiente efecto:

Texto en itálica

2.2.3.- Subrayado

El HTML nos propone también para el subrayado el par de etiquetas: <u> y </u> (underlined). Sin embargo, el uso de subrayados ha de ser aplicado con mucha precaución dado que los enlaces hipertexto van, a no ser que se indique lo contrario, subrayados con lo que podemos confundir al lector y apartarlo del verdadero interés de nuestro texto.

2.2.4.- Subíndices y supraíndices

Este tipo de formato resulta de extremada utilidad para textos científicos. Las etiquetas empleadas son:

<sup> y </sup> para los supraíndices <sub> y </sub> para los subíndices

Aquí tenéis un ejemplo:

La <sup>13</sup>CC<sub>3</sub>H<sub>4</sub>ClNOS es un heterociclo alergeno enriquecido

El resultado:

La 13CC3H4ClNOS es un heterociclo alergeno enriquecido

2.2.5.- Anidar etiquetas

Todas estas etiquetas y por supuesto el resto de las vistas y que veremos más adelante pueden ser anidadas unas dentro de otras de manera a conseguir resultados diferentes. Así, podemos sin ningún problema crear texto en negrita e itálica embebiendo una etiqueta dentro de la otra:

<b>Esto sólo está en negrita <i>y esto en negrita e itálica</i></b>

Esto nos daria:

Esto sólo está en negrita y esto en negrita e itálica

Consejo: Cuando anides etiquetas HTML hazlo correctamente. Nos referimos a que si abres etiquetas dentro de

otra más principal, antes de cerrar la etiqueta principal cierres las etiquetas que hayas abierto dentro de ella.

Debemos evitar códigos como el siguiente:

<b>Esto está en negrita e <i>itálica</b></i>

En favor de códigos con etiquetas correctamente anidadas:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 13 / 108

<b>Esto está en negrita e <i>itálica</i></b>

Esto es muy aconsejable, aunque los navegadores entiendan bien las etiquetas mal anidadas, por dos razones:

1.Sistemas como XML no son tan permisivos con estos errores y puede que en el futuro nuestras páginas no

funcionen correcamente.

2.A los navegadores les cuesta mucho tiempo de procesamiento resolver este tipo de errores, incluso más

que construir la propia página y debemos evitarles que sufran por una mala codificación.

Todo lo que se ha visto hasta el momento en el Manual de HTML se puede ver en un vídeo para aprender visualmente. Si te interesa puedes acceder al Videotutorial de HTML - Parte 1, documento básico y formato de texto.

Artículo por Rubén Alvarez

2.3.- Color, tamaño y tipo de letraSeguimos aprendiendo etiquetas que nos sirven para formatear el texto.

A pesar de que por razones de homogeneidad y sencillez de codigo este tipo de formatos son controlados actualmente por hojas de estilo en cascada (de las cuales ya tendremos tiempo de hablar), existe una forma clásica y directa de definir color tamaño y tipo de letra de un texto determinado.

Esto se hace a partir de la etiqueta <font> y su cierre correspondiente. Dentro de esta etiqueta deberemos especificar los atributos correspondientes a cada uno de estos parámetros que deseamos definir. A continuación os comentamos los atributos principales de esta etiqueta:

2.3.1.- Atributo face

Define el tipo de letra. Este atributo es interpretado por versiones de Netscape a partir de la 3 y de MSIE 3 o superiores. Otros navegadores las ignoran completamente y muestran el texto con la fuente que utilizan.

Hay que tener cuidado con este atributo ya que cada usuario, dependiendo de la plataforma que utilice, puede no disponer de los mismos tipos de letra que nosotros con lo que, si nosotros elegimos un tipo del que no dispone, el navegador se verá forzado a mostrar el texto con la fuente que utiliza por defecto (suele ser Times New Roman). Para evitar esto, dentro del atributo suelen seleccionarse varios tipos de letra separados por comas. En este caso el navegador comprobará quedispone del primer tipo enumerado y si no es así, pasará al segundo y así sucesivamente hasta encontrar un tipo que posea o bien acabar la lista y poner la fuente por defecto. Veamos un ejemplo.

<font face="Comic Sans MS,arial,verdana">Este texto tiene otra tipografía</font>

Que se visualizaría así en una página web.

Este texto tiene otra tipografía

Nota: Aquí tenemos un ejemplo de atributo cuyo valor debe estar limitado por comillas ("). Habíamos dicho que

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 14 / 108

las comillas eran opcionales en los atributos, sin embargo esto no es así siempre. Si el valor del atributo contiene

espacios, como es el caso de:

face="Comic Sans MS,arial,verdana"

debemos colocar las comillas para limitarlo. En caso de no tener comillas

face=Comic Sans MS,arial,verdana

se entendería que face=Comic, pero no se tendría en cuenta todo lo que sigue, porque HTML no lo asociaría al valor del

atributo. En este caso HTML pensaría que las siguientes palabras (después del espacio) son otros atributos, pero como no

los conoce como atributos simplemente los desestimará.

2.3.2.- Atributo size

Define el tamaño de la letra. Este tamaño puede ser absoluto o relativo.

Si hablamos en términos absolutos, existen 7 niveles de tamaño distintos numerados de 1 a 7 por orden creciente. Elegiremos por tanto un valor size="1" para la letra más pequeña o size="7" para la más grande.

<font size=4>Este texto es más grande</font>

Que se visualizaría así en una página web.

Este texto es más grande

Podemos asimismo modificar el tamaño de nuestra letra con respecto al del texto mostrado precedentemente definiendo el número de niveles que queremos subir o bajar en esta escala de tamaños por medio de un signo + o -. De este modo, si definimos nuestro atributo como size="+1" lo que queremos decir es que aumentamos de un nivel el tamaño de la letra. Si estabamos escribiendo previamente en 3, pasaremos automáticamente a 4. Los tamaños reales que veremos en pantalla dependerán de la definición y del tamaño de fuente elegido por el usuario en el navegador. Este tamaño de fuente puede ser definido en el Explorer yendo al menu superior, Ver/Tamaño de la fuente. En Netscape elegiremos View/Text Size. Esta flexibilidad puede en más de una ocasión resultarnos embarazosa ya que en muchos casos desearemos que el tamaño del texto permanezca constante para que éste quepa en un determinado espacio. Veremos en su momento que esta prefijación del tamaño puede ser llevada a cabo por las hojas de estilo en cascada.

2.3.3.- Atributo color

El color del texto puede ser definido mediante el atributo color. Cada color es a su vez definido por un número hexadecimal que esta compuesto a su vez de tres partes. Cada una de estas partes representa la contribución del rojo, verde y azul al color en cuestión.

Podéis entender cómo funciona esta numeración y cuáles son los colores que resultan más compatibles a partir de este artículo: Los colores y HTML.

Por otra parte, es posible definir de una manera inmediata algunos de los colores más frecuentemente usados para los que se ha creado un nombre más memotécnico:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 15 / 108

Nombre ColorAquaBlackBlueFuchsiaGrayGreenLimeMaroonNavyOlivePurpleRedSilverTealWhiteYellow

<font color="red">Este texto está en rojo</font>

Que se visualizaría así en una página web.

Este texto está en rojo

Con todo esto estamos ya en disposicion de crear un texto formateado de una forma realmente elaborada.

Pongamos pues en practica todo lo que hemos aprendido en estos capitulos haciendo un ejercicio consistente en una página que tenga las siguientes características:

• Un titular con encabezado de nivel 1, en itálica y color verde oliva. • Un segundo titular con encabezado de nivel 2, también de color verde oliva. • Todo el texto de la página deberá presentarse con una fuente distinta de la fuente por

defecto. Por ejemplo "Comic Sans MS" y en caso de que ésta no esté en el sistema que se coloque la fuente "Arial".

Se puede ver una posible solución del ejercicio en este enlace. (Ver el código fuente de la página para ver cómo lo hemos resuelto)

Artículo por Rubén Alvarez

2.4.- Los colores y HTMLEn este reportaje tratamos de acercarte todos los detalles relativos al buen uso de colores en HTML. Colores compatibles con todos los sistemas.

El la composición de webs juegan un papel muy importante los colores. Se indicanen valores RGB, es decir, que para conseguir un color cualquiera mezclaremoscantidades de Rojo, Verde y Azul. Los valores RBG se indican en numeración hexadecimal, en base 16. (Los dígitopueden crecer hasta 16. Como no hay tantos dígitos numéricos se utilizan lasletras de la A a la F.

0=0 4=4 8=8 C=121=1 5=5 9=9 D=13

http://desarrolloweb.com/manuales/21/

Tabla de color

Manual de HTML – DesarrolloWeb.com 16 / 108

2=2 6=6 A=10 E=143=3 7=7 B=11 F=15

Para conseguir un color, mezclaremos valores de esta manera:

RRGGBB Donde cada valor puede crecer desde 00 hasta FF.

2.4.1.- Ejemplo

Cómo se cambiaría la fuente para escribir en rojo: <font color="#FF0000">Rojo</font>

Al Atributo color le damos un valor RGB en formato hexadecimal. El caracter # se coloca al principio de la cadena.

2.4.2.- Otros colores

Naranja #FF8000

Verde turquesa #339966

Azul oscuro #000080

2.4.3.- Colores compatibles en todos los sistemas

Como las páginas web las tienen que ver todos los usuarios, y los sistemas que utilizan para entrar son distintos, hay que utilizar colores compatibles con la paleta de todos ellos. La forma de conseguir esto es limitando nuestros colores alos que se pueden conseguir utilizando la siguiente norma:

Utilizaremos siempreestos valores:

00

33

66

99

CC

FFEjemplos: #3366FF #FF9900 #666666

Se consiguen los colores siguientes:

Por último, te ofrecemos unos archivos con programillas en JavaScript que te pueden ayudar a encontrar los colores adecuados. Entro otros, podrás encontrar el script que genera la tabla de arriba.

Colores.zip 16Kb

Artículo por Miguel Angel Álvarez

2.5.- Atributos para páginasExplicamos una serie de atributos que se aplican de manera global a toda la página, como el color de fondo el del texto, de los enlaces, márgenes, etc.

Las páginas HTML pueden construirse con variedad de atributos que le pueden dar un aspecto a la página muy personalizado. Podemos definir atributos como el color de fondo, el color del texto o de los enlaces. Estos atributos se definen en la etiqueta <body> y, como decíamos son generales a

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 17 / 108

toda la página.

Lo mejor para explicar su funcionamiento es verlos uno por uno.

2.5.1.- Atributos para fondos

bgcolor: especificamos un color de fondo para la página. En el capítulo anterior y en el taller de loscolores y HTML hemos aprendido a construir cualquier color, con su nombre o su valor RGB. El color de fondo que podemos asignar con bgcolor es un color plano, es decir el mismo para toda la superficie del navegador.

background: sirve para indicar la colocación de una imagen como fondo de la página. La imagen se coloca haciendo un mosaico, es decir, se repite muchas veces hasta ocupar todo el espacio del fondo de la página. En capítulos más adelante veremos como se insertan imágenes con HTML y los tipos de imágenes que se pueden utilizar.

2.5.2.- Ejemplo de fondo

Vamos a colocar esta imagen como fondo en la página.

La imagen se llama fondo.jpg y suponemos que se encuentra en el mismo directorio que la página. En este caso se colocaría la siguiente etiqueta <body>

<body background="fondo.jpg">

Se puede ver el efecto de colocar ese fondo en una página a parte.

Consejo: siempre que coloquemos una imagen de fondo, debemos poner también un color de fondo cercano al

color de la imagen.

Esto se debe a que, al colocar una imagen de fondo, el texto de la página debemos colocarlo en un color que

contraste suficientemente con dicho fondo. Si el visitante no puede ver el fondo por cualquier cuestión (Por

ejemplo tener deshabilitada la carga de imágenes) puede que el texto no contraste lo suficiente con el color de

fondo por defecto de la web.

Creo que lo mejor será poner un ejemplo. Si la imagen de fondo es oscura, tendremos que poner un texto claro

para que se pueda leer. Si el visitante que accede a la página no ve la imagen de fondo, le saldrá el fondo por

defecto, que generalmente es blanco, de modo que al tener un texto con color claro sobre un fondo blanco, nos

pasará que no podremos leer el texto convenientemente.

Ocurre parecido cuando se está cargando la página. Si todavía no ha llegado a nuestro sistema la imagen de

fondo, se verá el fondo que hayamos seleccionado con bgcolor y es interesante que sea parecido al color de la

imagen para que se pueda leer el texto mientras se carga la imagen de fondo.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 18 / 108

2.5.3.- Color del texto

text: este atributo sirve para asignar el color del texto de la página. Por defecto es el negro.

Además del color del texto, tenemos tres atributos para asignar el color de los enlaces de la página.Ya debemos saber que los enlaces deben diferenciarse del resto del texto de la página para que los usuarios puedan identificarlos fácilmente. Para ello suelen aparecer subrayados y con un color más vivo que el texto. Los tres atributos son los siguientes:

link: el color de los enlaces que no han sido visitados. (por defecto es azul clarito)

vlink: el color de los enlaces visitandos. La "v" viene justamente de la palabra visitado. Es el color que tendrán los enlaces que ya hemos visitado. Por defecto su color es morado. Este color debería ser un poco menos vivo que el color de los enlaces normales.

alink: es el color de los enlaces activos. Un enlace está activo en el preciso instante que se pulsa. Aveces es difícil darse cuenta cuando un enlace está activo porque en el momento en el que se activaes porque lo estamos pulsando y en ese caso el navegador abandonará la página rápidamente y no podremos ver el enlace activo más que por unos instantes mínimos.

2.5.4.- Ejemplo de color del texto

Vamos a ver una página donde el color de fondo sea negro, y los colores del texto y los enlaces seanclaros. Pondremos el color de texto balnco y los enlaces amarillos, más resaltados los que no estén visitados y menos resaltados lo que ya están visitados. Para ello escribiríamos la etiqueta body así:

<body bgcolor="#000000" text="#ffffff" link="#ffff33" alink="#ffffcc" vlink="ffff00">

El efecto se puede ver en una página a parte.

2.5.5.- Márgenes

Con otros atributos de la etiqueta <body> se pueden asignan espacios de margen en las páginas, loque es muy útil para eliminar los márgenes en blanco que aparecen a los lados, arriba y debajo de la página. Estos atributos son distintos para Internet Explorer y para Netscape Navigator, por lo que debemos utilizarlos todos si queremos que todos los navegadores los interpreten perfectamente.

leftmargin: para indicar el margen a los lados de la página. Válido para iexplorer.

topmargin: para indicar el margen arriba y debajo de la página. Para iexplorer.

marginwidth: la contrapartida de leftmargin para Netscape. (Margen a los lados)

marginheight: igual que topmargin, pero para Netscape. (Margen arriba y abajo)

Tenemos un artículo sobre la utilización de estos atributos para hacer diseños avanzados con tablasen distintas definiciones de pantalla, que puede ser interesante de leer.

Un ejemplo de página sin margen es la propia página de DesarrolloWeb.com, que estás visitando actualmente. (Por lo menos a la hora de escribir este artículo) Además, vamos a ver otra página sin márgenes, por si alguien necesita ver el ejemplo en estas líneas.

<body topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 bgcolor="ffffff"> <table width=100% bgcolor=ff6666><tr><td> <h1>Hola amigos</h1> <br> <br> Gracias por visitarme! </td></tr></table> </body>

Esta página tiene el fondo blanco y dentro una tabla con el fondo rojo. En la página podremos ver que la tabla ocupa el espacio en la página sin dejar sitio para ningún tipo de margen. Puede verse el ejemplo en una página a parte.

Todo lo que hemos visto hasta ahora en el Manual de HTML lo podemos encontrar en vídeo y en concreto las explicaciones de los últimos artículos se han recogido en el Vídeotutorial de HTML - Fuentes, colores y estilos de BODY.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 19 / 108

Artículo por Miguel Angel Álvarez

2.6.- Caracteres especialesUna referencia útil, y una lista completa de los caracteres especiales del HTML.

Una página web se ha de ver en paises distintos, que usan conjuntos de caracteres distintos. El lenguaje HTML nos ofrece un mecanismo por el que podemos estar seguros que una serie de caracteres raros se van a ver bien en todos los ordenadores del mundo, independientemente de su juego de caracteres.

Este conjunto son los caracteres especiales. Cuando queremos poner uno de estos caracteres en una página, debemos sustituirlo por su código.

Por ejemplo, la "á" (a minúscula acentuada) se escribe "&aacute;" de modo que la palabra página se escribiría en una página HTML de este modo: p&aacute;gina

2.6.1.- Caracteres especiales básicos

En realidad estos caracteres se usan en HTML para no confundir un principio o final de etiqueta, unas comillas o un & con su correspondiente caracter.

&lt; < &gt; >&amp; & &quot; "

2.6.2.- Caracteres especiales del HTML 2.0

&Aacute; Á &Agrave; À&Eacute; É &Egrave; È&Iacute; Í &Igrave; Ì&Oacute; Ó &Ograve; Ò&Uacute; Ú &Ugrave; Ù&aacute; á &agrave; à&eacute; é &egrave; è&iacute; í &igrave; ì&oacute; ó &ograve; ò&uacute; ú &ugrave; ù&Auml; Ä &Acirc; Â&Euml; Ë &Ecirc; Ê&Iuml; Ï &Icirc; Î&Ouml; Ö &Ocirc; Ô&Uuml; Ü &Ucirc; Û&auml; ä &acirc; â&euml; ë &ecirc; ê&iuml; ï &icirc; î&ouml; ö &ocirc; ô&uuml; ü &ucirc; û&Atilde; Ã &aring; å&Ntilde; Ñ &Aring; Å&Otilde; Õ &Ccedil; Ç

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 20 / 108

&atilde; ã &ccedil; ç&ntilde; ñ &Yacute; Ý&otilde; õ &yacute; ý&Oslash; Ø &yuml; ÿ&oslash; ø &THORN; Þ&ETH; Ð &thorn; þ&eth; ð &AElig; Æ&szlig; ß &aelig; æ

Caracteres especiales del HTML 3.2

&frac14; Œ &nbsp; &frac12; œ &iexcl; ¡&frac34; Ÿ &pound; £&copy; © &yen; ¥&reg; ® &sect; §&ordf; ª &curren; €&sup2; ² &brvbar; Š&sup3; ³ &laquo; «&sup1; ¹ &not; ¬&macr; ¯ &shy;&micro; µ &ordm; º&para; ¶ &acute; Ž&middot; · &uml; š&deg; ° &plusmn; ±&cedil; ž &raquo; »&iquest; ¿

2.6.3.- Otros caracteres especiales

&times; × &cent; ¢&divide; ÷ &euro; €&#147; “ &#153; ™&#148; ” &#137; ‰&#140; Œ &#131; ƒ&#135; ‡ &#134; †Para descargar la lista de caracteres especiales: caracteresespeciales.zip 2Kb

Referencia: Hay un videotutorial en DesarrolloWeb.com que trata sobre enlaces y caracteres especiales. No son

temas muy relacionados entre si, pero seguro que nos sirve como práctica para aprender todo lo que se ha tratado

en este artículo.

Artículo por Miguel Angel Álvarez

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 21 / 108

Parte 3:

Listas en HTMLA continuación comenzaremos a explicar las listas de HTML que implican varias etiquetas para

crear su estructura. Veremos varios tipos de listas que se pueden utilizar para diversos

objetivos.

3.1.- Listas I - Listas desordenadasVemos lo que son las listas y señalamos los tres tipos que hay. Estudiamos las listas desordenadas.

Las posibilidades que nos ofrece el HTML en cuestión de tratamiento de texto son realmente notables. No se limitan a lo visto hasta ahora, sino que van más lejos todavía. Varios ejemplos de ello son las listas, que sirven para enumerar y definir elementos, los textos preformateados y las cabeceras o títulos.

Las listas originalmente están pensadas para citar, numerar y definir cosas a través de características, o al menos así lo hacemos en la escritura de textos. Sin embargo, las listas finalmente se utilizan para mucho más que enumerar una serie de puntos, en realidad son un recurso muy interesante para poder maquetar elementos diversos, como barras de navegación, pestañas etc. Pero esto lo veremos más adelante, cuando apliquemos estilos CSS a las listas.

De momento, en este Manual de HTML, trataremos las listas desde el punto de vista de su construcción y veremos los diferentes tipos que existen, y que podemos utilizar para resolver nuestras distintas necesidades a la hora de escribir textos en HTML.

Referencia: Todos los tipos de listas los hemos explicado en vídeo y se pueden revisar en el Videotutorial de

HTML, más concretamente en la entrega siguiente: Vídeo sobre las Listas HTML.

Podemos distinguir tres tipos de listas HTML:

• Listas desordenadas • Listas ordenadas • Listas de definición

Las veremos detenidamente una a una.

Listas desordenadas

Son delimitadas por las etiquetas <ul> y </ul> (unordered list). Cada uno de los elementos de la lista es citado por medio de una etiqueta <li> (sin cierre, aunque no hay inconveniente en colocarlo). La cosa queda así:

<p>Países del mundo</p> <ul> <li>Argentina <li>Perú <li>Chile </ul>

El resultado:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 22 / 108

Países del mundo

• Argentina • Perú • Chile

Podemos definir el tipo de viñeta empleada para cada elemento. Para ello debemos especificarlo pormedio del atributo type incluido dentro de la etiqueta de apertura <ul>, si queremos que el estilo sea válido para toda la lista,o dentro le la etiqueta <li> si queremos hacerlo específico de un solo elemento. La sintaxis es del siguiente tipo:

<ul type="tipo de viñeta">

donde tipo de viñeta puede ser uno de los siguientes:

circle disc square

Nota: En algunos navegadores no funciona la opción de cambiar el tipo de viñeta a mostrar y por mucho que nos

empeñemos, siempre saldrá el redondel negro.

En caso de que no funcione siempre podemos construir la lista a mano con la viñeta que queramos utilizando las

tablas de HTML. Veremos más adelante cómo trabajar con tablas.

Vamos a ver un ejemplo de lista con un cuadrado en lugar de un redondel, y en el último elemento colocaremos un círculo. Para ello vamos a colocar el atributo type en la etiqueta <ul>, con lo que afectará a todos los elementos de la lista.

<ul type="square"> <li>Elemento 1 <li>Elemento 2 <li>Elemento 3 <li type="circle">Elemento 4 </ul>

Que tiene como resultado

Elemento 1 Elemento 2 Elemento 3 Elemento 4

Artículo por Rubén Alvarez

3.2.- Listas II - Listas ordenadasEstudiamos otro tipo de listas: las listas ordenadas.

Estamos en el Manual de HTML y continuamos estudiando las listas de HTML, con las que crear estructuras atractivas para presentar la información. En el capítulo anterior vimos las listas desordenadas y ahora estudiaremos las listas ordenadas.

3.2.1.- Listas ordenadas

Las listas ordenadas sirven también para presentar información, en diversos elementos o items, conla particularidad que éstos estarán predecidos de un número o una letra para enumerarlos, siemprepor un orden.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 23 / 108

Para realizar las listas ordenadas usaremos las etiquetas <ol> (ordered list) y su cierre. Cada elemento sera igualmente indicado por la etiqueta <li>, que ya vimos en las listas desordenadas.

Pongamos un ejemplo:

<p>Reglas de comportamiento en el trabajo</p> <ol> <li>El jefe siempre tiene la razón <li>En caso de duda aplicar regla 1 </ol>

El resultado es:

Reglas de comportamiento en el trabajo

1. El jefe siempre tiene la razón 2. En caso de duda aplicar regla 1

Del mismo modo que para las listas desordenadas, las listas ordenadas ofrecen la posibilidad de modificar el estilo. En concreto nos es posible especificar el tipo de numeración empleado eligiendoentre números (1, 2, 3...), letras (a, b, c...) y sus mayúsculas (A, B, C,...) y números romanos en sus versiones mayúsculas (I, II, III,...) y minúsculas (i, ii, iii,...). Para realizar dicha selección hemos de utilizar, como para el caso precedente, el atributo type, el cual será situado dentro de la etiqueta <ol>. Los valores que puede tomar el atributo en este caso son:

1 Para ordenar por números a Por letras del alfabeto A Por letras mayúsculas del alfabeto i Ordenación por números romanos en minúsculas I Ordenación por números romanos en mayúsculas

Nota: Recordamos que en algunos navegadores no funciona la opción de cambiar el tipo de viñeta a mostrar

Puede que en algún caso deseemos comenzar nuestra enumeración por un número o letra que no tiene por qué ser necesariamente el primero de todos. Para solventar esta situación, podemos utilizar un segundo atributo, start, que tendra como valor un número. Este número, que por defectoes 1, corresponde al valor a partir del cual comenzamos a definir nuestra lista. Para el caso de las letras o los números romanos, el navegador se encarga de hacer la traducción del número a la letracorrespondiente.

Os proponemos un ejemplo usando este tipo de atributos:

<p>Ordenamos por numeros</p> <ol type="1"> <li>Elemento 1 <li> Elemento 2 </ol>

<p>Ordenamos por letras</p> <ol type="a"> <li>Elemento a <li> Elemento b </ol>

<p>Ordenamos por números romanos empezando por el 10</p>

<ol type="i" start="10"> <li>Elemento x <li> Elemento xi </ol>

El resultado:

Ordenamos por números

1. Elemento 1 2. Elemento 2

Ordenamos por letras

a. Elemento a

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 24 / 108

b. Elemento b

Ordenamos por numeros romanos empezando por el 10

x. Elemento x xi. Elemento xi

Artículo por Rubén Alvarez

3.3.- Listas III - Listas de definiciónVemos las listas de definición y aprendemos a anidar listas para crear estructuras lista más complejas.

Terminamos el tema de listas en el manual de HTML de DesarrolloWeb.com estudiando las listas dedefinición. Veremos también la anidación de listas, que resultará un recurso interesante para estructurar datos un poco más complejos o enumerar elementos con una jerarquía.

3.3.1.- Listas de definición

Las listas de definición sirven para hacer un conjunto de elementos con pares concepto-descripción.Es decir, se especificarán varios términos por su nombre y se escribirá una definición para cada uno. Cada elemento es presentado junto con su definición, uno detrás de otro.

Para realizar una lista de definición, ja etiqueta principal es <dl> y </dl> (definition list). La etiquetas del elemento y su definición son <dt> (definition term) y <dd> (definition definition) respectivamente.

Aquí os proponemos un código que podrá aclarar este sistema:

<p>Diccionario de la Real Academia</p> <dl> <dt>Brujula <dd>Señórula montada en una escóbula <dt>Oreja <dd>Sesenta minutejos </dl>

El efecto producido:

Diccionario de la Real Academia

Brujula Señórula montada en una escóbula

Oreja Sesenta minutejos

Fijaos en que cada línea <dd> esta desplazada hacia la izquierda. Este tipo de etiquetas son usadasa menudo con el propósito de crear textos más o menos desplazados hacia la izquierda.

El código:

<dl> <dd>Primer nivel de desplazamiento <dl> <dd>Segundo nivel de desplazamiento <dl> <dd>Tercer nivel de desplazamiento </dl> </dl> </dl>

El resultado:

Primer nivel de desplazamiento Segundo nivel de desplazamiento

Tercer nivel de desplazamiento

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 25 / 108

3.3.2.- Anidando listas

Nada nos impide utilizar todas estas etiquetas de forma anidada como hemos visto en otros casos. De esta forma, podemos conseguir listas mixtas como por ejemplo:

<p>Ciudades del mundo</p> <ul> <li>Argentina <ol> <li>Buenos Aires <li>Bariloche </ol> <li>Uruguay <ol> <li>Montevideo <li>Punta del Este </ol> </ul>

De esta forma creamos una lista como esta:

Ciudades del mundo

• Argentina 1. Buenos Aires 2. Bariloche

• Uruguay 1. Montevideo 2. Punta del Este

Referencia: Con esto hemos acabado el tema sobre Listas HTML, sin embargo, podemos completar las

explicaciones en el Videotutorial de HTML, en el Vídeo sobre las Listas HTML.

Artículo por Rubén Alvarez

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 26 / 108

Parte 4:

Todo sobre los enlaces

en HTMLLos enlaces son los elementos que nos permiten navegar por las páginas HTML y son tan

importantes que la web no tendría sentido sin ellos. Dedicaremos varios capítulos a explorar

los distintos tipos de enlaces, sus usos y diversos consejos para hacer páginas navegables.

4.1.- Enlaces en HTMLVemos qué son los enlaces en HTML y los distintos tipos.

Hasta aquí, hemos podido ver que una página web es un archivo HTML en el que podemos incluir, entre otras cosas, textos formateados a nuestro gusto e imágenes (las veremos enseguida). Del mismo modo, un sitio web podrá ser considerado como el conjunto de archivos, principalmente páginas HTML e imágenes, que constituyen el contenido al que el navegante tiene acceso.

Sin embargo, no podríamos hablar de navegante o de navegación si estos archivos HTML no estuviesen debidamente conectados entre ellos y con el exterior de nuestro sitio por medio de enlaces hipertexto. En efecto, el atractivo original del HTLM radica en la posible puesta en relaciónde los contenidos de los archivos introduciendo referencias bajo forma de enlaces que permitan un acceso rápido a la información deseada. De poco serviría en la red tener páginas aisladas a las que la gente no puede acceder y desde las que la gente no puede saltar a otras.

Un enlace puede ser fácilmente detectado en una página. Basta con deslizar el puntero del ratón sobre las imágenes o el texto y ver como cambia de su forma original transformándose por regla general en una mano con un dedo señalador. Adicionalmente, estos enlaces suelen ir, en el caso de los textos, coloreados y subrayados para que el usuario no tenga dificultad en reconocerlos. Si no especificamos lo contrario (ya tendremos ocasión de explicar como), estos enlaces texto estarán subrayados y coloreados en azul. En el caso de las imágenes que sirvan de enlace, veremos que están delimitadas por un marco azul por defecto.

Para colocar un enlace, nos serviremos de las etiquetas <a> y </a>. Dentro de la etiqueta de apertura deberemos especificar asimismo el destino del enlace. Este destino será introducido bajo forma de atributo, el cual lleva por nombre href.

La sintaxis general de un enlace es por tanto de la forma:

<a href="destino">contenido</a>

Siendo el contenido un texto o una imagen. Es la parte de la página que se colocará activa y donde deberemos pulsar para acceder al enlace.

Por su parte, destino será una página, un correo electrónico o un archivo.

En función del destino los enlaces son clásicamente agrupados del siguiente modo:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 27 / 108

• Enlaces internos: los que se dirigen a otras partes dentro de la misma página. • Enlaces locales: los que se dirigen a otras páginas del mismo sitio web. • Enlaces remotos: los dirigidos hacia páginas de otros sitios web. • Enlaces con direcciones de correo: para crear un mensaje de correo dirigido a una

dirección. • Enlaces con archivos: para que los usuarios puedan hacer download de ficheros.

Referencia: Para complementar las explicaciones sobre los enlaces HTML recomendamos ver el videotutorial

sobre enlaces.

Artículo por Rubén Alvarez

4.2.- Enlaces internosLos enlaces HTML que se hacen con otras partes de la misma página.

Son los enlaces que apuntan a un lugar diferente dentro de la misma página. Este tipo de enlaces son esencialmente utilizados en páginas donde el acceso a los contenidos puede verse dificultado debido al gran tamaño de la misma. Mediante estos enlaces podemos ofrecer al visitante la posibilidad de acceder rápidamente al principio o final de la página o bien a diferentes párrafos o secciones.

Para crear un enlace de este tipo es necesario, aparte del enlace de origen propiamente dicho, un segundo enlace que será colocado en el destino. Veamos más claramente como funcionan estos enlaces con un ejemplo sencillo:

Enlace con final de este documento, para que probéis su funcionamiento:

Ir abajo

Supongamos que queremos crear un enlace que apunte al final de la página. Lo primero será colocar nuestro enlace origen. Lo pondremos aquí mismo y lo escribiremos del siguiente modo:

<a href="#abajo">Ir abajo</a>

Como podéis ver, el contenido del enlace es el texto "Ir abajo" y el destino, abajo, es un punto de la misma página que todavía no hemos definido. Ojo al símbolo #; es él quien especifica al navegador que el enlace apunta a una sección en particular.

En segundo lugar, hay que generar un enlace en el destino. Este enlace llevara por nombre abajo para poder distinguirlo de los otros posibles enlaces realizados dentro de la misma página. En este caso, la etiqueta que escribiremos será ésta:

<a name="abajo"></a>

A decir verdad, estos enlaces, aunque útiles, no son los más extendidos de cuantos hay. La tendencia general es la de crear páginas (archivos) independientes con tamaños más reducidos enlazados entre ellos por enlaces locales (los veremos enseguida). De esta forma evitamos el excesode tiempo de carga de un archivo y la introducción de exceso de información que pueda desviar la atención del usuario.

Una aplicación corriente de estos enlaces consiste en poner un pequeño índice al principio de nuestro documento donde introducimos enlaces origen a las diferentes secciones. Paralelamente, alfinal de cada sección introducimos un enlace que apunta al índice de manera que podamos guiar al navegante en la búsqueda de la información útil para él.

Artículo por Rubén Alvarez

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 28 / 108

4.3.- Enlaces localesEnlaces HTML con otras páginas del mismo sitio web.

Como hemos dicho, un sitio web esta constituido de páginas interconexas. En el capitulo anterior hemos visto como enlazar distintas secciones dentro de una misma página. Nos queda pues estudiar la manera de relacionar los distintos documentos HTML que componen nuestro sitio web.

Para crear este tipo de enlaces, hemos de crear una etiqueta de la siguiente forma:

<a href="archivo.html">contenido</a>

Por regla general, para una mejor organización, los sitios suelen estar ordenados por directorios. Estos directorios suelen contener diferentes secciones de la página, imágenes, sonidos...Es por ello que en muchos casos no nos valdrá con especificar el nombre del archivo, sino que tendremos que especificar además el directorio en el que nuestro archivo.html esta alojado.

Si habéis trabajado con MS-DOS no tendréis ningún problema para comprender el modo de funcionamiento. Tan solo hay que tener cuidado en usar la barra "/" en lugar de la contrabarra "".

Para aquellos que no saben como mostrar un camino de un archivo, aquí van una serie de indicaciones que os ayudaran a comprender la forma de expresarlos. No resulta difícil en absoluto ycon un poco de practica lo haréis prácticamente sin pensar.

1. Hay que situarse mentalmente en el directorio en el que se encuentra la página con el enlace.

2. Si la página destino esta en un directorio incluido dentro del directorio en el que nos encontramos, hemos de marcar el camino enumerando cada uno de los directorios por los que pasamos hasta llegar al archivo y separándolos por el símbolo barra "/". Al final obviamente, escribimos el archivo.

3. Si la página destino se encuentra en un directorio que incluye el de la página con el enlace, hemos de escribir dos puntos y una barra "../" tantas veces como niveles subamos en la arborescencia hasta dar con el directorio donde esta emplazado el archivo destino.

4. Si la página se encuentra en otro directorio no incluido ni incluyente del archivo origen, tendremos que subir como en la regla 3 por medio de ".." hasta encontrar un directorio que englobe el directorio que contiene a la página destino. A continuación haremos como en la regla 2. Escribiremos todos los directorios por los que pasamos hasta llegar al archivo.

Ejemplo:

Para clarificar este punto podemos hacer un ejemplo a partir de la

estructura de directorios de la imagen.

Para hacer un enlace desde index.html hacia yyy.html:

<a href="seccion1/paginas/yyy.html">contenido</a>

Para hacer un enlace desde xxx.html hacia yyy.html:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 29 / 108

<a href="../seccion1/paginas/yyy.html">contenido</a>

Para hacer un enlace desde yyy.html hacia xxx.html:

<a href="../../seccion2/xxx.html">contenido</a>

Los enlaces locales pueden a su vez apuntar ya no a la página en general sino más precisamente a una sección concreta. Este tipo de enlaces resultan ser un híbrido de interno y local. La sintaxis es de este tipo:

<a href="archivo.html#seccion">contenido</a>

Como para los enlaces internos, en este caso hemos de marcar la sección con otro enlace del tipo:

<a name="seccion"></a>

Como ejemplo, he aquí un enlace que apunta al capitulo anterior al final de la página.

Artículo por Rubén Alvarez

4.4.- Enlaces externos, de correo y hacia archivosVemos tres tipos de enlaces. Los dirigidos a otras páginas de otros webs, a direcciones de correo y a ficheros externos.

Para acabar con los enlaces vamos a ver los últimos 3 tipos de enlaces que habíamos señalado.

4.4.1.- Enlaces remotos

Son los enlaces que se dirigen hacia páginas que se encuentran fuera de nuestro sitio web, es decir,cualquier otro documento que no forma parte de nuestro sitio.

Este tipo de enlaces es muy común y no representa ninguna dificultad. Simplemente colocamos en el atributo HREF de nuestra etiqueta <A> la URL o dirección de la página con la que queremos enlazar. Será algo parecido a esto.

<a href="http://www.guiarte.com">ir a guiarte.com</a>

Sólo cabe destacar que todos las direcciones web (URLs) empiezan por http://. Esto indica que el protocolo por el que se accede es HTTP, el utilizado en la web. No debemos olvidarnos de colocarlas, porque si no los enlaces serán tratados como enlaces locales a nuestro sitio.

Otra cosa interesante es que no tenemos que enlazar con una página web con el protocolo HTTP necesariamente. También podemos acceder a recursos a través de otros protocolos como el FTP. Ental caso, las direcciones de los recursos no comenzarán por http:// sino por ftp://.

4.4.2.- Enlaces a direcciones de correo

Los enlaces a direcciones de correo son aquellos que al pincharlos nos abre un nuevo mensaje de correo electrónico dirigido a una dirección de mail determinada. Estos enlaces son muy habituales en las páginas web y resultan la manera más rápida de ofrecer al visitante una vía para el contacto con el propietario de la página.

Para colocar un enlace dirigido hacia una dirección de correo colocamos mailto: en el atributo hrefdel enlace, seguido de la dirección de correo a la que se debe dirigir el enlace.

<a href="mailto:[email protected]">[email protected]</a>

Este enlace se puede ver en funcionamiento aquí: [email protected]

Consejo: Cuando coloques enlaces a direcciones de correo procura indicar en el contenido del enlace (lo que

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 30 / 108

hay entre <A> y </A>) la dirección de correo a la que se debe escribir. Esto es porque si un usuario no tiene

configurado un programa de correo en su ordenador no podrá enviar mensajes, pero por lo menos podrá copiar la

dirección de mail y escribir el correo a través de otro ordenador o un sistema web-mail.

Además de la dirección de correo del destinatario, también podemos colocar en el enlace el asunto del mensaje. Esto se consigue colocando después de la dirección de correo un interrogante, la palabra subject, un signo igual (=) y el asunto en concreto.

<a href="malito:[email protected]?subject=contacto a través de la pagina">[email protected]</a>

Podemos colocar otros atributos del mensaje con una sintaxis parecida. En este caso indicamos también que el correo debe ir con copia a [email protected].

<a href="mailto:[email protected]?subject=contacto a través de la pagina&[email protected]">[email protected]</a>

Nota: El visitante de la página necesitará tener configurada una cuenta de correo electrónico en su sistema para

enviar los mensajes. Lógicamente, si no tiene servicio de correo en el ordenador no se podrán enviar los mensajes

y este sistema de contacto con el visitante no funcionará.

Tenemos un artículo en desarrolloweb que habla sobre el contacto con el navegante.

4.4.3.- Enlaces con archivos

Este no es un tipo de enlace propiamente dicho, pero lo señalamos aquí porque son un tipo de enlaces muy habitual y que presenta alguna complicación para el usuario novato.

El mecanismo es el mismo que hemos conocido en los enlaces locales y los enlaces remotos, con la única particularidad de que en vez de estar dirigidos hacia una página web está dirigido hacia un archivo de otro tipo.

Si queremos enlazar con un archivo mi_fichero.zip que se encuentra en el mismo directorio que la página se escribiría un enlace así.

<a href="mi_fichero.zip">Descarga mi_fichero.zip</a>

Si pinchamos un enlace de este tipo nuestro navegador descargará el fichero, haciendo la pregunta típica de "Qué queremos hacer con el archivo. Abrirlo o guardarlo en disco".

Podemos ver un ejemplo de enlace a archivo con su consiguiente ventana de descarga de un archivo.

Consejo: No colocar en Internet archivos ejecutables directamente sino archivos comprimidos. Por dos razones:

1.El archivo ocupará menos, con lo que será más rápida su transferencia.

2.Al preguntar al usuario lo que desea hacer con el fichero le ofrece la opción de abrirlo y guardarlo en

disco. Nosotros generalmente desearemos que el usuario lo guarde en disco y no lo ejecute hasta que lo

tenga en su disco duro. Si se decido a abrirlo en vez de guardarlo simplemente lo pondrá en marcha y

cuando lo pare no se quedará guardado en su sistema. Si los archivos están comprimidos obligaremos al

usuario a descomprimirlos en su disco duro antes de ponerlos en marcha, con lo que nos aseguramos que

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 31 / 108

el usuario lo guarde en su ordenador antes de ejecutarlo.

Si queremos enlazar hacia otro tipo de archivo como un PDF o un mundo VRML (Realidad virtual para Internet) lo seguimos haciendo de la misma manera. El navegador, si reconoce el tipo de archivo, es el responsable de abrirlo utilizando el conector adecuado para ello. Así, si por ejemplo enlazamos con un PDF pondrá el programa Acrobat Reader en funcionamiento para mostrar los contenidos. Si enlazamos con un mundo VRML pondrá en marcha el plug-in que el usuario tenga instalado para ver los mundos virtuales (Cosmo Player por ejemplo).

Este sería un ejemplo de enlace a un documento PDF.

<a href="mi_documento.pdf">Descarga el PDF</a>

Artículo por Miguel Angel Álvarez

4.5.- Atributo nofollow en los enlacesEl atributo rel=nofollow, de los enlaces, sirve para que los buscadores no continúen reastreando a partir de esos enlaces.

Dejemos aquí una pequeña reseña sobre un atributo que se está convirtiendo en esencial en los enlaces y que no habíamos comentado en nuestro manual de HTML, aunque sí habíamos visto algo en nuestro manual de posicionamiento en buscadores.

Nofollow es un atributo de los links HTML (etiqueta <A>), que sirve para definir o marcar el comportamiento de los buscadores cuando rastrean nuestra página web en busca de contenidos para indexarlos. Por defecto, cuando un buscador visita una página web va recorriendo todos sus enlaces y va indexando su contenido en su base de datos de páginas. Esto es algo que hacen automática y periódicamente. Ocurre tanto con los enlaces internos a otras páginas de nuestro sitiocomo con los enlaces externos a otras páginas web. Los motores que recorren las webs de enlace a enlace, se llaman arañas.

Ahora bien, nosotros podemos, a través del atributo rel="nofollow", decirle a un buscador que no continúe indexando los contenidos de la página a la que lleva un enlace en particular. Lo haríamos así:

<a href="URL_DEL_ENLACE" rel="nofollow">TEXTO_DEL_ENLACE</a>

4.5.1.- Un poco de historia sobre nofollow

Para completar estas notas habría que comentar que el atributo fue creado por iniciativa de Google y Blogger en 2005, como una idea para detener el spam de enlaces en sitios web que permiten a losusuarios la participación.

Una práctica común de las personas que pretenden promocionar una página web es realizar comentarios o participaciones en páginas web, en las que insertan enlaces a sus propios sitios. Estose conoce como spam de enlaces, o con el término de spamdexing.

Con el atributo rel="nofolow" se pretenden mitigar los efectos de ese tipo de spam en los sitios como foros, blogs, o cualquier página que permita la interacción con la comunidad de visitantes. Algunas páginas como la Wikipedia lo utilizan en todos los enlaces externos.

Actualmente el atributo ren=nofollow está bajo patente, aunque esta está liberada de royalties, lo que quiere decir que se puede utilizar sin limitación y sin tener que pagar nada.

4.5.2.- Cómo interpretan los buscadores el Nofollow

El atributo es tenido en cuenta no sólo por el motor de indexación (araña) del buscador Google, sino también por otras arañas de buscadores tan importantes como Yahoo! o MSN. Aunque hay que decir que cada buscador hace un uso particular del atributo.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 32 / 108

Habría que aclarar que los buscadores a menudo siguen el enlace que se ha marcado como nofollow, visitando aquella web que se había enlazado. Lo que ocurre realmente es que no tienen encuenta el link para asignarle ranking o directamente no lo indexan.

4.5.3.- Promoción de webs y nofollow

Sobra decir que este atributo resulta bastante potente a la hora de trabajar con la promoción de una página web, puesto que altera directamente el comportamiento de los buscadores al rastrear las páginas, enlace a enlace.

Así pues, los SEO, promocionadores de páginas o personas que trabajan en el posicionamiento en buscadores, lo tienen muy en cuenta en sus técnicas para su trabajo del día a día. Existen diversas técnicas que utilizan este atributo para realizar promoción de webs, como la que explicamos en el artículo Arriesgada pero excelente técnica SEO usando rel=nofollow, pero el uso más importante esel que se ha comentado ya en este artículo: ponerlo a los enlaces externos para no transferir ranking o posicionamiento desde nuestra web a otras webs externas.

Otra técnica relacionada con nofollow, pero más segura, para que no se indexe parte del contenido de nuestra página, es el uso del archivo robots.txt, que ya hemos comentado anteriormente en DesarrolloWeb.com.

Artículo por Miguel Angel Álvarez

Parte 5:

Imágenes, formatos

gráficos e optimizaciónVeremos todo lo que los creadores de webs deben conocer sobre las imágenes, no sólo cómo

incluir imágenes en las páginas, sino también qué formatos gráficos son adecuados en cada

caso y cómo podemos optimizar las imágenes para reducir el tiempo de carga de las webs.

5.1.- Imágenes en HTMLVemos cómo colocar una imagen en una página web y algunos atributos básicos para asignarle estilos a las imágenes en HTML.

Sin duda uno de los aspectos más vistosos y atractivos de las páginas web es el grafismo. La introducción en nuestro texto de imágenes puede ayudarnos a explicar más fácilmente nuestra información y darle un aire mucho más estético. El abuso no obstante puede conducirnos a una sobrecarga que se traduce en una distracción para el navegante, quien tendrá más dificultad en encontrar la información necesaria.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 33 / 108

El uso de imágenes también tiene que ser realizado con cuidado porque aumentan el tiempo de carga de la página, lo que puede ser de un efecto nefasto si nuestro visitante no tiene una buena conexión o si es un poco impaciente. Por ello es recomendable siempre optimizar las imágenes paraInternet, haciendo que su tamaño en bytes sea lo mínimo posible, para facilitar la descarga, pero sin que ello comprometa mucho su calidad.

En este capitulo no explicaremos como crear ni tratar las imágenes, únicamente diremos que para ello se utilizan aplicaciones como Paint Shop Pro, Photoshop o Gimp. Tampoco explicaremos las particularidades de cada tipo de archivo: GIF, JPG o PNG y la forma de optimizar nuestras imágenes. Un capitulo posterior al respecto será dedicado a este menester: Formatos gráficos para páginas web.

Las imágenes son almacenadas en forma de archivos, principalmente GIF (para dibujos) o JPG (parafotos). Estos archivos los podemos obtener desde diversas vías, como por ejemplo nuestra cámara digital, aunque también pueden ser creados por nosotros mismos con algún editor gráfico o puedenser descargados gratuitamente en sitios web especializados.

Así pues, en estos primeros capítulos nos limitaremos a explicar como insertar y alinear debidamente en nuestra página una imagen ya creada.

La etiqueta que utilizaremos para insertar una imagen es <img> (image). Esta etiqueta no posee sucierre correspondiente y en ella hemos de especificar obligatoriamente el paradero de nuestro archivo gráfico mediante el atributo src (source).

La sintaxis queda entonces de la siguiente forma:

<img src="camino hacia el archivo">

Para expresar el camino, lo haremos de la misma forma que vimos para los enlaces. Las reglas siguen siendo las mismas, lo único que cambia es que, en lugar de una página destino, el destino esun archivo gráfico.

Aparte de este atributo, indispensable obviamente para la visualización de la imagen, la etiqueta <img> nos propone otra serie de atributos de mayor o menor utilidad, que listamos a continuación:

5.1.1.- Atributo alt

Dentro de las comillas de este atributo colocaremos una brevísima descripción de la imagen. Esta etiqueta no es indispensable pero presenta varias utilidades.

Primeramente, durante el proceso de carga de la página, cuando la imagen no ha sido todavía cargada, el navegador mostrara esta descripción, con lo que el navegante se puede hacer una idea de lo que va en ese lugar.

Esto no es tan trivial si tenemos en cuenta que algunos usuarios navegan por la red con una opción del navegador que desactiva el muestreo de imágenes, con lo que tales personas podrán siempre saber de qué se trata el gráfico y eventualmente cambiar a modo con imágenes para visualizarla.

Además, determinadas aplicaciones para discapacitados o teléfonos vocales que no muestran imágenes ofrecen la posibilidad de leerlas por lo que nunca esta de más pensar en estos colectivos.

En general podemos considerar como aconsejable el uso de este atributo salvo para imágenes de poca importancia y absolutamente indispensable si la imagen en cuestión sirve de enlace.

5.1.2.- Atributos height y width

Definen la altura y anchura respectivamente de la imagen en píxeles.

Todos los archivos gráficos poseen unas dimensiones de ancho y alto. Estas dimensiones pueden obtenerse a partir del propio diseñador grafico o bien haciendo clic con el botón derecho sobre la imagen vista por el navegador para luego elegir propiedades sobre el menú que se despliega.

El hecho de explicitar en nuestro código las dimensiones de nuestras imágenes ayuda al navegador a confeccionar la página de la forma que nosotros deseamos antes incluso de que las imágenes hayan sido descargadas.

Así, si las dimensiones de las imágenes han sido proporcionadas, durante el proceso de carga, el

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 34 / 108

navegador reservara el espacio correspondiente a cada imagen creando una maquetación correcta. El usuario podrá comenzar a leer tranquilamente el texto sin que este se mueva de un lado a otro cada vez que una imagen se cargue.

Además de esta utilidad, el alterar los valores de estos dos atributos, es una forma inmediata de redimensionar nuestra imagen. Este tipo de utilidad no es aconsejable dado que, si lo que pretendemos es aumentar el tamaño, la perdida de calidad de la imagen será muy sensible. Inversamente, si deseamos disminuir su tamaño, estaremos usando un archivo más grande de lo necesario para la imagen que estamos mostrando con lo que aumentamos el tiempo de descarga de nuestro documento innecesariamente.

Es importante hacer hincapié en este punto ya que muchos debutantes tienen esa mala costumbre de crear gráficos pequeños redimensionando la imagen por medio de estos atributos a partir de archivos de tamaño descomunal. Hay que pensar que el tamaño de una imagen con unas dimensiones de la mitad no se reduce a la mitad, sino que resulta ser aproximadamente 4 veces inferior.

5.1.3.- Atributo border

Definen el tamaño en píxeles del cuadro que rodea la imagen.

De esta forma podemos recuadrar nuestra imagen si lo deseamos. Es particularmente útil cuando deseamos eliminar el borde que aparece cuando la imagen sirve de enlace. En dicho caso tendremos que especificar border="0".

5.1.4.- Atributos vspace y hspace

Sirven para indicar el espacio libre, en pixeles, que tiene que colocarse entre la imagen y los otros elementos que la rodean, como texto, otras imágenes, etc.

5.1.5.- Atributo lowsrc

Con este atributo podemos indicar un archivo de la imagen de baja resolución. Cuando el navegador detecta que la imagen tiene este atributo primero descarga y muestra la imagen de baja resolución (que ocupa muy poco y que se transfiere muy rápido). Posteriormente descarga y muestra la imagen de resolución adecuada (señalada con el atributo src, que se supone que ocupará más y será más lenta de transferir).

Este atributo está en desuso, aunque supone una ventaja considerable para que la descarga inicial de la web se realice más rápido y que un visitante pueda ver una muestra de la imagen mientras se descarga la imagen real.

Truco: Utilizar imagenes como enlaces

Ni que decir tiene que una imagen, lo mismo que un texto, puede servir de enlace. Vista la estructura de los

enlaces podemos muy fácilmente adivinar el tipo de código necesario:

<a href="archivo.html"><img src="imagen.gif"></a>

5.1.6.- Ejemplo práctico

Resultará obvio para los lectores hacer ahora una página que contenga una imagen varias veces repetida pero con distintos atributos.

• Una de las veces que salga debe mostrarse con su tamaño originar y con un borde de 3 pixeles.

• En otra ocasión la imagen aparecerá sin borde, con su misma altura y con una anchura

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 35 / 108

superior a la original • También mostraremos la imagen sin borde, con su misma anchura y con una altura superior

a la original • Por último, mostraremos la imagen con una altura y anchura mayores que las originales,

pero proporcionalmente igual que antes.

Vamos a utilizar esta imagen para hacer el ejercicio:

Las dimensiones originales de la imagen son 28x21, así que este sería el código fuente:

<img src="img1.gif" width="28" height="21" alt="Tamaño original" border="3"> <br> <br> <img src="img1.gif" width="68" height="21" alt="Achatada" border="0"> <br> <br> <img src="img1.gif" width="28" height="51" alt="Alargada" border="0"> <br> <br> <img src="img1.gif" width="56" height="42" alt="Doble grande" border="0">

Se puede ver el ejemplo en una página aparte.

Nota: A lo largo de los próximos artículos veremos muchas otras cosas sobre imágenes, pero si lo deseas,

también puedes acceder a un vídeo donde se trata lo visto anteriormente y muchas otras cosas adicionales sobre

las imágenes y la creación de webs: Videotutorial HTML: imágenes.

Artículo por Rubén Alvarez

5.2.- Alineación de imágenes con HTMLExplica la manera de alinear la imagen dentro de la página: centrarla, colocarla a la derecha, a la izquierda, etc.

Vimos en su momento el atributo align que nos permitía alinear el texto a derecha, izquierda o centro de nuestra página. Dijimos que este atributo no era exclusivo de la etiqueta <p> sino que podía ser encontrado en otro tipo de etiquetas.

Pues bien, <img> resulta ser una de esas etiquetas que aceptan este atributo aunque en este caso el funcionamiento resulta ser diferente.

Para alinear una imagen horizontalmente podemos hacerlo de la misma forma que el texto, es decir,utilizando el atributo align dentro de una etiqueta <p> o <div>. En este caso, lo que incluiremos dentro de esa etiqueta será la imagen en lugar del texto:

Este código mostrará la imagen en el centro:

<div align="center"><img src="logo.gif"></div>

Quedaría así:

Sin embargo, ya hemos dicho que la etiqueta <img> puede aceptar el atributo align. En este caso, la utilidad que le damos difiere de la anterior.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 36 / 108

El hecho de utilizar el atributo align dentro de la etiqueta <img> nos permite, en el caso de darle los valores left o right, justificar la imagen del lado que deseamos a la vez que rellenamos con texto el lado opuesto. De esta forma embebemos nuestras imágenes dentro del texto de una manera sencilla.

Aquí podéis ver el tipo de código a crear para obtener dicho efecto:

<p> <img src="imagen.gif" align="right">Texto tan extenso como queramos que cubrirá la parte izquierda de la imagen. Sigo poniendo texto para que se vea el efecto, Bla bla bla bla bla bla bla... </p>

Quedaría así:

Texto tan extenso comoqueramos que cubrirála parte izquierda de laimagen. Sigo poniendotexto para que se veael efecto, Bla bla bla bla bla bla bla...

<p> <img src="imagen.gif" align="left">Texto tan extenso como queramos que cubrirá la parte derecha de la imagen. Sigo poniendo texto para que se vea el efecto, Bla bla bla bla bla bla bla... </p>

Quedaría así:

Texto tan extenso comoqueramos que cubrirá la parte izquierda de laimagen. Sigo poniendo texto para que se vea

el efecto, Bla bla bla bla bla bla bla... Si en algún momento deseásemos dejar de rellenar ese espacio lateral, podemos pasar a una zona libre introduciendo un salto de línea <br> dentro del cual añadiremos un atributo: clear

Así, etiquetas del tipo:

<br clear="left"> Saltara verticalmente hasta encontrar el lateral izquierdo libre. <br clear="right"> Saltara verticalmente hasta encontrar el lateral derecho libre. <br clear="all">

Saltará verticalmente hasta encontrar ambos laterales libres.

Ejemplo de clear:

Texto tan extenso comoqueramos que cubrirá la parte izquierda.

Esto está debajo de la imagen. Existen otro tipo de valores que puede adoptar el atributo align dentro de la etiqueta <img>. Estos son relativos a la alineación vertical de la imagen. Supongamos que escribimos una línea al lado de nuestra imagen. Esta línea puede quedar por ejemplo arriba, abajo o al medio de la imagen. Asimismo, puede que en una misma línea tengamos varias imágenes de alturas diferentes que pueden ser alineadas de distintas formás. Estos valores adicionales del atributo align son:

top Ajusta la imagen a la parte más alta de la línea. Esto quiere decir que, si hay una imagen más alta, ambas imágenes presentaran el borde superior a la misma altura.

bottom Ajusta el bajo de la imagen al texto.

Absbottom

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 37 / 108

Colocara el borde inferior de la imagen a nivel del elemento más bajo de la línea.

middle Hace coincidir la base de la línea de texto con el medio vertical de la imagen.

absmiddle Ajusta la imagen al medio absoluto de la línea.

Estas explicaciones, que pueden resultar un poco complicadas, pueden ser más fácilmente asimiladas a partir con un poco de practica.

Nos queda explicar como introducir debajo de la imagen un pie de foto o explicación. Para ello tendremos que ver antes de nada las tablas, en el próximos capítulos...

Artículo por Rubén Alvarez

5.3.- Formatos gráficos para páginas webPresenta los formatos gráficos utilizados en las páginas web, el GIF, el JPG y PNG. Hace hincapié en los dos primeros, resumiendo sus características y enseñando a optimizar los ficheros.

El componente gráfico de las páginas web tiene mucha importancia, es el que hace que estas sean vistosas y el que nos permite aplicar nuestra creatividad para hacer del diseño de sitios una tarea agradable. Es también una herramienta para acercar los sitios al mundo donde vivimos, si embargo,es también el causante de errores graves en las páginas y hacer de estas, en algunos casos, un martirio para el visitante.

Las nociones básicas para el uso de archivos gráficos son sencillas, conocerlas, aunque sea ligeramente, nos ayudará a crear sitios agradables y rápidos. No cometer errores en el uso de las imágenes es fundamental, aunque no seas un diseñador y las imágenes que utilices sean feas, utilízalas bien y así estarás haciendo más agradable la visita a tus páginas.

5.3.1.- Tipos de archivos

En Internet se utilizan principalmente dos tipos de archivos gráficos GIF y JPG, pensados especialmente para optimizar el tamaño que ocupan en disco, ya que los archivos pequeños se transmiten más rápidamente por la Red.

El formato de archivo GIF se usa para las imágenes que tengan dibujos, mientras que el formato JPG se usa para las fotografías. Los dos comprimen las imágenes para guardarlas. La forma de comprimir la imagen que utiliza cada formato es lo que los hace ideales para unos u otros propósitos.

Adicionalmente, se puede usar un tercer formato gráfico en las páginas web, el PNG. Este formato no tiene tanta aceptación como el GIF o JPG por varias razones, entre las que destacan el desconocimiento del formato por parte de los desarrolladores, que las herramientas habituales paratratar gráficos (como por ejemplo Photoshop) generalmente no lo soportaban y que los navegadoresantiguos también tienen problemas para visualizarlas. Sin embargo, el formato se comporta muy bien en cuanto a compresión y calidad del gráfico conseguido, por lo que resulta muy útil en infinidad de casos. Todos estos problemas han pasado y ya sólo Internet Explorer 6 tiene algunos fallos cuando trata con PNG, pero la aceptación actual es más que suficiente para incorporarlo a nuestras posibilidades reales de trabajo con formatos y optimización de archivos.

A continuación se puede ver una tabla comparativa de las principales características de los formatos gráficos para crear páginas web:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 38 / 108

5.3.2.- Formato GIF

A parte de ser un archivo ideal para las imágenes que estén dibujadas tiene muchasotras características que son importantes y útiles.

Compresión: Es muy buena para dibujos, como ya hemos dicho. Incluso puede serinteresante si la imagen es muy pequeña, aunque sea una foto. Transparencia: es una utilidad para definir ciertas partes del dibujo comotransparentes. De este modo podemos colocar las imágenes sobre distintos fondossin que se vea el cuadrado donde está inscrito el dibujo, viendose en cambio lasilueta del dibujo en cuestión. Para crear un gif transparente debemos utilizar un programa de diseño gráfico, conel podemos indicar qué colores del dibujo queremos que sean transparentes.Generalmente, definimos la transparencia cuando vamos a guardar el gráfico. Colores: Con este formato gráfico podemos utilizar paletas, conjuntos, de 256colores o menos. Este es un detalle muy importante, puesto que cuantos menoscolores utilicemos en la imagen, por lo general, menos ocupará el archivo. En ocasiones, aunque utilicemos menos colores en un gráfico, este no pierde mucho en calidad, llegando a ser inapreciable a la vista. En algunos programas podemos modificar la cantidad de colores al guardar el archivo, en otros lo hacemos mientras creamos el gráfico.

32 colores

16 colores

8 colores

Imagen tomada con distintas paletas de colores. Se puede apreciar como con pocos colores se vebien el gráfico y como pierde un poco a medida que le restamos colores.

5.3.3.- Formato JPG

Veamos ahora cuales son las características fundamentales delformato JPG:

Compresión: Tal como hemos dicho anteriormente, su algoritmode compresión hace ideal este formato para guardar fotografías.Además, con JPG podemos definir la calidad de la imagen, con

http://desarrolloweb.com/manuales/21/

Un logotipo esun ejemplo

claro deimagen GIF

Parte de estaimagen es

transparente

Una fotografía con formato JPG

Manual de HTML – DesarrolloWeb.com 39 / 108

calidad baja el fichero ocupará menos, y viceversa. Transparencia: Este formato no tiene posibilidad de crear áreas transparentes. Sideseamos colocar una imagen con un área que parezca transparente procederemosasí: con nuestro programa de diseño gráfico haremos que el fondo de la imagen seael mismo que el de la página donde queremos colocarla. En muchos casos losfondos de la imagen y la página parecerán el mismo. Colores: JPG trabaja siempre con 16 millones de colores, ideal para fotografías.

Optimizar ficheros

Para que las imágenes ocupen lo menos posible y se transfieran rápidamente por la Red debemos aprender a optimizar los ficheros gráficos. Para ello debemos hacer lo siguiente:

Para los archivos GIF: Reduciremos el número de colores de nuestra paleta. Esto se hace con nuestro editor gráfico, en muchos casos podremos hacerlo al guardar el archivo.

GIF 256 colores - 10,8 KB

GIF 32 colores - 5,5 KB

GIF 4 colores - 2 KB Para los archivos JPG: Ajustaremos la calidad del archivo cuando lo estemos guardando. Este formato nos permite bajar mucho la calidad de la imagen sin que esta pierda mucho en su aspecto visual.

JPG calidad 0 3 KB

JPG calidad 20 5,9 KB

JPG calidad 50 10 KB

Es imprescindible disponer para optimizar la imagen de unaherramienta buena que nos permita configurar estascaracterísticas de la imagen con libertad y fácilmente.Photoshop 5.5 o 6 es un programa bastante recomendable,

http://desarrolloweb.com/manuales/21/

Intento detransparenciaen JPG. Pulsarpara ampliar

Photoshop es una herramientaexcelente para optimizar ficheros.

Viendo varias copias podemos elegirla más adecuada.

Manual de HTML – DesarrolloWeb.com 40 / 108

pues incorpora una opción que se llama "Guardar para el Web" con la que podemos definir los colores del gif, calidad del JPG y otras opciones en varias muestras a la vez. Así con todas las opciones configurables, viendo los resultados a la vez que el tamaño del archivo podemos optimizar la imagen de una manera precisa con los resultados que deseamos.

También existen en el mercado otros programas que nos permiten optimizar estas imágenes de manera sorprendente. Una vez hemos creado la imagen la pasamos por estos programas y nos comprimen aun más el archivo, haciéndolo rápido de transferir y, por tanto, más optimo para Internet. Al ser estas utilidades tan especializadas los resultados suelen ser mejores que con los programas de edición gráfica.

Ejemplos de optimizadores gráficos: - WebGraphics Optimizer - ProJPG, GIF Imantion Y con versiones Online: - GIF Wizard

Nota: Si te interesa reforzar todos los conceptos tratados en este artículo y ver cómo optimizamos nosotros

imágenes para la web, te recomendamos ver el Vídeo sobre Formatos gráficos para páginas web.

Artículo por Miguel Angel Álvarez

5.4.- Mapas de imágenes con HTMLExplicamos detalladamente el proceso para crear mapas de imágenes, osea, imágenes que tienes varios enlaces asociados en distintas áreas.

En capítulos anteriores hemos podido adentrarnos en el elemento básico de navegación del web: El enlace hipertexto. Hemos visto que estos enlaces son palabras, textos o imágenes que, al pinchar sobre ellos, nos envían a otras páginas o zonas.

Los mapas de imágenes es un nuevo planteamiento de navegación que incorpora una serie de enlaces dentro de una misma imagen. Estos enlaces son definidos por figuras geométricas y funcionan exactamente del mismo modo que los otros enlaces. Podéis ver el funcionamiento de uno en este enlace.

En un principio, estos mapas no eran directamente reconocidos por los navegadores y recurrían a tecnologías de lado del servidor para ser visualizados. Hoy en día pueden ser implementados por medio de código HTML tal y como veremos en este capitulo.

Podemos utilizar estos mapas, por ejemplo, en portadas donde damos a conocer cada una de las secciones del sitio por medio de una imagen. También puede ser muy práctico en mapas geográficos donde cada ciudad, provincia o punto cualquiera representa un enlace a una página.

En cualquier caso, el uso de estos mapas ha de estar sistemáticamente acompañado de un texto explicativo que dé a conocer al usuario la posibilidad de hacer clic sobre los distintos puntos de la imagen. Frases como "Haz clic sobre tal icono para acceder a tal información" resultan muy indicativas a la hora de hacer intuitiva la navegación por los mapas de imágenes. Por otro lado, no esta de más introducir esa misma explicación en el atributo alt de la imagen.

Así pues, un mapa de imagen esta compuesto de dos partes:

• La imagen propiamente dicha que estará situada como de costumbre dentro de la etiqueta <body> de nuestro documento HTML.

• Un código, situado en el interior de la etiqueta <map>, que delimitara por medio de líneas geométricas imaginarias cada una de las áreas de los enlacespresentados en la imagen.

Las líneas geométricas que delimitan los enlaces, es decir, las áreas delos enlaces, han de ser definidas por medio de coordenadas. Cada

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 41 / 108

imagen es definida por unas dimensiones de ancho (X) y alto (Y) y cada punto de la imagen puede ser definido por tanto diciendo a que altura (x) y anchura (y) nos encontramos. De este modo, la esquina superior izquierda corresponde a la posición 0,0 y la esquina inferior derecha corresponde a las coordenadas X,Y. Si deseamos saber qué coordenadas corresponden a un punto concreto de nuestra imagen, lo mejor es utilizar un programa de diseño grafico como Photoshop o Paint Shop Pro.

La mejor forma de explicar el funcionamiento de este tipo de mapas es a partir de un ejemplo práctico. Supongamos que tenemos una imagen con un mapa como esta:

Pulsa en los círculos para acceder a las secciones!

Dentro de ella queremos introducir un enlace a cada uno de los elementos que la componen. Para ello, definiremos nuestros enlaces como zonas circulares de pequeño tamaño que serán distribuidasa lo largo y ancho de la imagen.

Veamos a continuación el código que utilizaremos:

<table border=0 width=450><tr><td align="center"> <map name="mapa1"> <area alt="Pulsa para ver la página de mis amigos" shape="CIRCLE" coords="44,36,29" href="#"> <area alt="Pulsa para ver mi novia" shape="CIRCLE" coords="140,35,31" href="#"> <area alt="Pulsa para conocer a mi Familia" shape="circle" coords="239,37,30" href="#"> <area alt="Pulsa para conocer mi trabajo" shape="CIRCLE" coords="336,36,31" href="#"> </map> <img src="images/html/mapa1.gif" width="380" height="72" alt="Mapa de imágenes. Pulsa en cada una de los círculos." border="0" usemap="#mapa1"> <br> Pulsa en los círculos para acceder a las secciones! </td></tr></table>

Nota: Los href de las áreas van a #

Este es un ejemplo parcial de utilización de los mapas, faltaría colocar los href con valores reales y no con la #.

Cada uno de los enlaces de las áreas -atributo href de la etiqueta <area>- deberían llevar a una página web. El

ejemplo quedaría completo si creasemos todas las páginas donde enlazar las áreas y colocasemos los href

dirigidos hacia dichas páginas. Como no hemos hecho las páginas "destino" hemos colocado enlaces que no llevan

a ningún sitio, que, como puedes ver, se indica con el caracter "#".

Podéis observar, tal y como hemos explicado antes, que nuestro mapa consta de dos partes principales: la imagen y la etiqueta <map> que define las áreas de cada enlace.

Cada área se indica con una etiqueta <area>, que tiene los siguientes atributos:

alt Para indicar un texto que se mostrará cuando situemos el ratón en el área.

shape Indica el tipo de área.

coordsLas coordenadas que definen el área. Serán un grupo de valores numéricos distintos dependiendo del tipo de área (shape) que estemos definiendo.

hrefPara indicar el destino del enlace correspondiente al área.

En este caso hemos utilizado unas áreas circulares (shape="CIRCLE"), que se definen indicando el centro del círculo -una coordenada (X,Y) y el radio, que es un número entero que se corresponde

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 42 / 108

con el número de pixels desde el centro hasta el borde del círculo.

5.4.1.- Tipos de áreas: shape distintas

Existen tres tipos de áreas distintas, suficientes para hacer casicualquier tipo de figura. En el dibujo que acompaña estas líneas sepuede ver una representación de las áreas, que detallamos acontinuación.

shape="RECT" Crea un área rectangular. Para definirla se utilizan las coordenadasde los puntos de la esquina superior izquierda y la esquina inferiorderecha. Tal como están nombradas dichas coordenadas en nuestrodibujo, el área tendría la siguiente etiqueta:

<area shape="RECT" coords="X1,Y1,X2,Y2" href="#">

shape="CIRCLE" Crea un área circular, que se indica con la coordenada del centro delcírculo y el radio. A la vista de nuestro dibujo, la etiqueta de un áreacircular tendría esta forma:

<area shape="CIRCLE" coords="X1,Y1,R" href="#">

shape="POLY" Este tipo de área, poligonal, es la más compleja de todas. Unpolígono queda definido indicando todos sus puntos, pero atención,los tenemos que indicar en orden, siguiendo el camino marcado porel perímetro del polígono. A la vista del dibujo y los nombres quehemos dado a los puntos del polígono, la etiqueta <area> quedaríade esta forma.

<area shape="POLY" coords=" X1,Y1, X2,Y2, X3,Y3, X4,Y4" href="#">

Artículo por Rubén Alvarez

Parte 6:

Tablas en HTMLLas tablas fueron muy importantes en una época para maquetar páginas web. Hoy lo adecuado

es utilizarlas sólo para presentar información tabulada, es decir, colocada en una rejilla de

filas y columnas. En los siguientes artículos aprenderemos todo sobre las tablas en HTML.

6.1.- Tablas en HTMLVemos lo que son las tablas, para que sirven y en qué casos podemos utilizarlas. Vemos la tabla más simple posible.

Una tabla en un conjunto de celdas organizadas dentro de las cuales podemos alojar

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 43 / 108

distintos contenidos. HTML dispone de una gran variedad de etiquetas para crear tablas, con susatributos, de las cuales veremos una introducción en este artículo.

En un principio nos podría parecer que las tablas son raramente útiles y que pueden ser utilizadas principalmente para listar datos como agendas, resultados y otros datos de una forma organizada. En general, sirven para representar información tabulada, en filas y columnas. Esto es una realidaden los últimos años, desde que las tablas se han descartado para fines relacionados con la maquetación.

Nota: Durante un tiempo, gran parte de los diseñadores de páginas basaron su maquetación en este tipo de

artilugios. En efecto, una tabla nos permite organizar y distribuir los espacios de la manera más adecuada. Nos

puede ayudar a generar texto en columnas como los periódicos, prefijar los tamaños ocupados por distintas

secciones de la página o poner de una manera sencilla un pie de foto a una imagen.

Estamos en la segunda década del 2000 y hablar de las tablas como solución para maquetación ha pasado a la

historia. Las webs de primera y segunda generación utilizaban este recurso intensivamente para maquetar

contenidos en páginas web, además de otras barbaridades, como los píxeles transparentes, para conseguir efectos

como márgenes o espacios en blanco. Sin embargo, las webs actuales, a partir de la tercera generación, han

acabado con todas esas técnicas que no hacían más que ensuciar el código fuente de las páginas web, mezclando

presentación y contenido. Actualmente toda la maquetación de una página se organiza con CSS, lo que nos da un

mayor control de todos los elementos de la página y la posibilidad de separar todos los estilos para definir el

aspecto de una web en un fichero aparte del HTML.

Por ello, en el momento actual las tablas se utilizan mucho menos que en el pasado y realmente la recomendación

es usarlas solo en los casos en los que necesitemos incluir en una página información tabulada, es decir, dispuesta

en filas y columnas. Todo uso basado en tablas para procurar colocar elementos en determinadas posiciones de la

página sería incorrecto en las técnicas actuales de diseño de páginas web.

Como veremos a continuación, existen diversas etiquetas que se deben utilizar en una forma determinada para la creación de tablas. Por ello, puede que en un principio nos resulte un poco complicado trabajar con estas estructuras pero, con un poco de práctica podremos crear tablas con absoluta soltura. Si deseamos mostrar datos de una manera sencilla de leer, dispuestos en filas y columnas, tarde o temprano observaremos que las tablas son la mejor solución y apreciaremos las posibilidades nos ofrecen.

6.1.1.- Etiquetas básicas para tablas en HTML

Para empezar, nada más sencillo que por el principio: las tablas son definidas por las etiquetas <table> y </table>.

Dentro de estas dos etiquetas colocaremos todas las otras etiquetas de las tablas, hasta llegar a las celdas. Dentro de las celdas ya es permitido colocar textos e imágenes que darán el contenido a la tabla.

Las tablas son descritas por líneas de arriba a abajo (y luego por columnas de izquierda a derecha). Cada una de estas líneas, llamada fila, es definida por otra etiqueta y su cierre: <tr> y </tr>

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 44 / 108

Asimismo, dentro de cada línea, habrá diferentes celdas. Cada una de estas celdas será definida porotro par de etiquetas: <td> y </td>. Dentro de estas etiquetas será donde coloquemos nuestro contenido.

Aquí tenéis un ejemplo de estructura de tabla:

<table> <tr> <td>Celda 1, linea 1</td> <td> Celda 2, linea 1</td> </tr> <tr> <td> Celda 1, linea 2</td> <td> Celda 2, linea 2</td> </tr> </table>

El resultado:

Celda 1, linea 1 Celda 2, linea 1Celda 1, linea 2 Celda 2, linea 2

Nota: Hasta aquí hemos visto todas las etiquetas que necesitamos conocer para crear tablas. Existen otras

etiquetas, pero lo que podemos conseguir con ellas se puede conseguir también usando las que hemos visto.

Por poner un ejemplo, señalamos la etiqueta <th>, que sirve para crear una celda cuyo contenido esté formatedo

como un título o cabecera de la tabla. En la práctica, lo que hace es poner en negrita y centrado el contenido de

esa celda, lo que se puede conseguir aplicando las correspondientes etiquetas dentro de la celda. Así:

<td align="center"><b>contenido de la celda</b></td> .

Sin embargo, cuando estudies la semántica del HTML te darás cuenta que, aunque la presentación sea la misma,

la semántica no lo es. Esto es un tema más avanzado por el que de momento (si estás comenzando con HTML) no

necesitas preocuparte. Puedes encontrar algo más de información en el artículo de las etiquetas semánticas del

HTML5.

6.1.2.- Atributos para tablas, filas y celdas

A partir de esta idea simple y sencilla, las tablas adquieren otra magnitud cuando les incorporamos toda una batería de atributos aplicados sobre cada tipo de etiquetas que las componen.

En cuanto a atributos para tabla hay unos cuantos. Muchos los conoces ya de otras etiquetas, como width, height, align, etc. Hay otros que son especialmente creados para las etiquetas TABLE.

• cellspacing: es el espacio entre celdas de la tabla. • cellpadding: es el espacio entre el borde de la celda y su contenido. • border: es el número de píxeles que tendrá el borde de la tabla. • bordercolor: es el rbg que le vas a asignar al borde de la tabla.

En cuanto a las etiquetas "interiores" de una tabla, nos referimos a TR y TD, ten en cuenta:

• Podemos usar prácticamente cualquier tipo de etiqueta dentro de la etiqueta <td> para, de esta forma, escribir su contenido.

• Las etiquetas situadas en el interior de la celda no modifican el resto del documento.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 45 / 108

• Las etiquetas de fuera de la celda no son tenidas en cuenta por ésta.

Así pues, podemos especificar el formato de nuestras celdas a partir de etiquetas introducidas en suinterior o mediante atributos colocados dentro de la etiqueta de celda <td> o bien, en algunos casos, dentro de la etiqueta <tr>, si deseamos que el atributo sea valido para toda la línea. La forma más útil y actual de dar forma a las celdas es a partir de las hojas de estilo en cascada que yatendréis la oportunidad de abordar más adelante.

Veamos a continuación algunos atributos útiles para la construcción de nuestras tablas. Empecemos viendo atributos que nos permiten modificar una celda en concreto o toda una línea:

align Justifica el texto de la celda del mismo modo que si fuese el de un párrafo.

valign Podemos elegir si queremos que el texto aparezca arriba (top), en el centro (middle) o abajo (bottom)de la celda.

bgcolor Da color a la celda o línea elegida.bordercolor Define el color del borde.

Otros atributos que pueden ser únicamente asignados a una celda y no al conjunto de celdas de unalínea son:

background Nos permite colocar un fondo para la celda a partirde un enlace a una imagen.

height Define la altura de la celda en pixels o porcentaje.width Define la anchura de la celda en pixels o

porcentaje.colspan Expande una celda horizontalmente.rowspan Expande una celda verticalmente.

Nota: El atributo height no funciona en todos los navegadores, además, su uso no está muy extendido. Las

celdas por lo general tienen el alto que ncesitan para que quepa todo el contenido que se le haya insertado, es

decir, crecen lo suficiente para que quepa lo que hemos colocado dentro.

El atributo width si que funciona en todos los navegadores y lo tendréis que utilizar constantemente. Si le

asignamos un ancho a la celda, el ancho será respetado y si dicha celda tiene mucho texto o cualquier otro

contenido, la celda crecerá hacia abajo todo lo necesario para que quepa lo que hemos colocado.

Un matiz al último párafo. Se trata de que si definimos una celda de un ancho 100 por ejemplo, y colocamos en la

celda un contenido como una imagen que mida más de 100 pixeles, la celda crecerá en horizontal todo lo

necesario para que la imagen quepa. Si el elemento, aunque más ancho, fuera divisible (como un texto) el ancho

sería respetado y el texto crecería hacia abajo o lo que es lo mismo, en altura, como señalábamos en el anterior

párrafo.

Estos últimos cuatro atributos descritos son de gran utilidad. Concretamente, height y width nos ayudan a definir las dimensiones de nuestras celdas de una forma absoluta (en pixels o puntos de pantalla) o de una forma relativa, es decir por porcentajes referidos al tamaño total de la tabla.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 46 / 108

Podéis leer un articulo interesante a propósito de estas dos modalidades de diseño en nuestro manual de usabilidad.

A titulo de ejemplo:

<td width="80">

Dará una anchura de 80 pixels a la celda. Sin embargo,

<td width="80%">

Dará una anchura a la celda del 80% de la anchura de la tabla.

Hay que tener en cuenta que, definidas las dimensiones de las celdas, el navegador va a hacer lo que buenamente pueda para satisfacer al programador. Esto quiere decir que puede que en algunasocasiones el resultado que obtengamos no sea el esperado. Concretamente, si el texto presenta unapalabra excesivamente larga, puede que la anchura de la celda se vea aumentada para mantener la palabra en la misma línea. Por otra parte, si el texto resulta muy largo, la celda aumentara su alturapara poder mostrar todo su contenido.

Análogamente, si por ejemplo definimos dos anchuras distintas a celdas de una misma columna, el navegador no sabrá a cual hacer caso. Es por ello que resulta conveniente tener bien claro desde un principio como es la tabla que queremos diseñar. No esta de más si la prediseñamos en papel si la complejidad es importante. El HTML resulta en general fácil pero las tablas pueden convertirse en un verdadero quebradero de cabeza si no llegamos a comprenderlas debidamente.

Los atributos rowspan y colspan son también utilizados frecuentemente. Gracias a ellos es posible expandir celdas fusionando éstas con sus vecinas. El valor que pueden tomar estas etiquetas es numérico. El número representa la cantidad de celdas fusionadas.

Así, <td colspan="2">

Fusionara la celda en cuestión con su vecina derecha.

Esta celda tiene un colspan="2"Celda normal Otra celda

Del mismo modo, <td rowspan="2">

Esta celda tiene rowspan="2",por eso tiene fusionada la

celda de abajo.

CeldaNormal

Otra celdanormal

Expandirá la celda hacia abajo fusionándose con la celda inferior.

El resto de los atributos presentados presentan una utilidad y uso bastante obvios. Los dejamos a vuestra propia investigación.

Podemos continuar las explicaciones de tablas en los artículos:

- Atributos de la tabla y conclusión - Bordes de tabla en HTML 4

Artículo por Rubén Alvarez

6.2.- Tablas en HTML. Atributos de la tabla y conclusiónConocemos los atributos principales que le podemos asignar a la tabla de modo general. Además vemos varios ejemplos prácticos de construcción de tablas.

Además de los atributos específicos de cada celda o línea, las tablas pueden ser adicionalmente formateadas a partir de los atributos que nos ofrece la propia etiqueta <table>. He aquí aquellos que pueden parecernos en un principio importantes:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 47 / 108

align Alinea horizontalmente la tabla con respecto a su entorno.

background Nos permite colocar un fondo para la tabla a partir de un enlace a una imagen.

bgcolor Da color de fondo a la tabla.border Define el número de pixels del borde principal.bordercolor Define el color del borde.cellpadding Define, en pixels, el espacio entre los bordes de la

celda y el contenido de la misma.cellspacing Define el espacio entre los bordes (en pixels).height Define la altura de la tabla en pixels o porcentaje.width Define la anchura de la tabla en pixels o

porcentaje.

Los atributos que definen las dimensiones, height y width, funcionan de una manera análoga a la delas celdas tal y como hemos visto en el capitulo anterior. Contrariamente, el atributo align no nos permite justificar el texto de cada una de las celdas que componen la tabla, sino más bien, justificarla propia tabla con respecto a su entorno.

Vamos a poner tres ejemplos de alineado de tablas, centradas, alineadas a la derecha y a la izquierda.

Ejemplo de tabla centrada Esta tabla está centrada (aling="center"). Solo tiene una celda.

Este sería un texto cualquiera colocado al lado de una tabla centrada

Ejemplo de tabla alineada a laderecha

Para que se vea el efecto dealineado a la tabla debemoscolocar un texto al lado y el textorodeará la tabla, igual queocurría con las imágenes alineadas a un lado.

Ejemplo de tabla alineada a laizquierda

Para que se vea el efecto de alineado a la tabla debemos colocar un texto al lado y el texto rodeará la tabla, igual que

ocurría con las imágenes alineadas a un lado.

Los atributos cellpading y cellspacing nos ayudaran a dar a nuestra tabla un aspecto más estético. En un principio puede parecernos un poco confuso su uso pero un poco de practica será suficiente para hacerse con ellos.

En la siguiente imagen podemos ver gráficamente el significado de estos atributos.

Podéis comprobar vosotros mismos que los atributos definidos para una celda tienen prioridad con respecto a los definidos para una tabla. Podemos definir, por ejemplo, una tabla con color de fondo rojo y una de las celdas de color de fondo verde y se verá toda la tabla de color rojo menos la celda verde. Del mismo modo, podemos definir un color azul para los bordes de la tabla y hacer que una celda particular sea mostrada con un borde rojo. (Aunque esto no funcionará en todos los navegadores debido a que algunos no reconocen el atributo bordercolor.

http://desarrolloweb.com/manuales/21/

Esta tabla está alineada a la derecha (aling="right"). Solo tiene una celda.

Esta tabla está alineada a la izquierda (aling="left"). Solo tiene una celda.

Manual de HTML – DesarrolloWeb.com 48 / 108

Tabla de color rojo de fondo

El atributo bgcolor de la tabla está en rojo.

Celda normalEsta celda está en verde. tiene el atributo bgcolor en color verde

6.2.1.- Tablas anidadas

Muy útil también es el uso de tablas anidadas. De la misma forma que podíamos incluir listas dentro de otras listas, las tablas pueden ser incluidas dentro de otras. Así, podemos incluir una tabla dentro de la celda de otra. El modo de funcionamiento sigue siendo el mismo aunque la situación puede complicarse si el número de tablas embebidas dentro de otras es elevado.

Consejo: Páginas como DesarrolloWeb.com y muchas otras (La mayoría de las páginas avanzadas) que basan su

diseño en tablas, realizan anidaciones de tablas constantemente para meter unos elementos de la página dentro

de otros. Se pueden anidar tablas sin límite, sin embargo, en el caso de Netscape 4 hay que tener cuidado con el

número de tablas que anidamos, porque a medida que metemos una tabla dentro de otra y otra dentro de esta y

otra más, aumentando el grado de anidación sucesivamente... podemos encontrar problemas en su visualización y

puede que la página tarde un poco de tiempo más en mostrarse en pantalla.

Vamos a ver un código de anidación de tablas. Veamos primero el resultado y luego el código, así conseguiremos entenderlo mejor.

Celda de la tabla principal Tabla anidada, celda 1 Tabla anidada, celda 2

Tabla anidada, celda 3 Tabla anidada, celda 4

Este sería el código:

<table cellspacing="10" cellpadding="10" border="3"> <tr> <td align="center"> Celda de la tabla principal </td> <td align="center"> <table cellspacing="2" cellpadding="2" border="1"> <tr> <td>Tabla anidada, celda 1</td> <td>Tabla anidada, celda 2</td> </tr> <tr> <td>Tabla anidada, celda 3</td> <td>Tabla anidada, celda 4</td> </tr> </table> </td> </tr> </table>

6.2.2.- Ejemplos prácticos

Hasta aquí la información que pretendíamos transmitiros sobre las tablas en HTML. Sería importante ahora realizar algún ejemplo de realización de una tabla un poco compleja. Por ejemplo la siguiente:

Animales en peligro de extinciónNombre Cabezas Previsión 2010 Previsión 2020

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 49 / 108

Ballena 6000 4000 1500

Oso Pardo 500

Lince 10

Tigre 300 210

Se puede ver esta tabla en otra ventana, donde también podremos examinar su código fuente.

Otro ejemplo de tabla con el que podemos practicar:

Climas de América del Sur

Parte de arribade América delSur. Paísescomo:

Parte de abajode América delSur. Paísescomo:

Bosque tropical, clima de sabana, clima marítimo con inviernos secos.

Climas marítimos con veranos secos, con inviernos secos, climas frios, clima de estepa, clima desértico.

También la podemos ver en una ventana a parte para extraer su código fuente.

6.2.3.- Maquetar con tablas

En HTML tradicional se utilizan las tablas, aparte de mostrar información tabulada como hemos visto en este artículo, para maquetar páginas web. Con las tablas podemos generar una serie de espacios donde podemos mostrar contenidos estructurados en columnas y filas, como la maquetación de una revista o un portal. La maquetación por tablas la comentamos en un taller de HTML. Es muy recomendable su lectura para hacerse una idea del proceso de creación de páginas medianamente avanzadas y con información bien estructurada.

Artículo por Rubén Alvarez

6.3.- Bordes de tabla en HTML 4Mostramos algunos atributos de table, válidos en HTML 4, para definir el borde de las tablas: especificar bordesde varios tipos, externos e internos.

Como ya vimos en nuestro manual de HTML, en los capítulos sobre trabajo con tablas, que se puede asignar un borde a las tablas. Para ello utilizábamos el atributo border, pero en HTML 4 existe otros atributos para definir cómo queremos que sean los bordes de las tablas.

6.3.1.- Bordes externos de las tablas

Veamos el atributo que podemos usar para definir distintos tipos de borde externo en una tabla.

El atributo en concreto para definir el tipo de borde externo se llama FRAME y se utiliza en la misma etiqueta TABLE. Sus valores posibles son los siguientes:

frame = void | above | below | hsides | lhs | rhs | vsides | box | border

Paso a describir cada uno de los distintos valores posibles, que afectan sólo al borde externo de la tabla, quedando los bordes de las celdas inalterados:

• void: Ningún borde externo • above: Sólo aparece el borde superior • below: Sólo el borde inferior de la tabla

http://desarrolloweb.com/manuales/21/

VenezuelaColombiaEcuador

Perú

ArgentinaChile

UruguayParaguay

Manual de HTML – DesarrolloWeb.com 50 / 108

• hsides:Se mostrará sólo el borde de arriba y abajo. • vsides: Sólo los bordes de los lados izquierdo y derecho • lhs: Se mostrará tan solo el borde izquierdo • rhs: Se mostrará solamente el borde derecho • box: Los 4 bordes • border: También se mostrarán los 4 bordes

Veamos un par de ejemplos de uso del atributo FRAME en tablas:

Tabla sin bordes externos (frame="void")

1 2 3

4 5 6

7 8 9

Tabla con borde externo arriba y abajo (frame="hsides")

1 2 3

4 5 6

7 8 9

6.3.2.- Bordes internos de las tablas

También podemos definir el aspecto de los bordes internos de las tablas con HTML 4. El atributo que debemos utilizar para especificar qué bordes internos deben mostrarse es RULES, que tambiénse utiliza en la etiqueta TABLE.

Como bordes internos nos referimos a los bordes de las celdas de la tabla, puesto que cuando se define un borde en una tabla no sólo tiene borde la parte externa de la tabla, sino también cada unade sus casillas.

Los distintos valores que puede llevar el atributo RULES para definir los bordes internos son los siguientes:

rules = none | groups | rows | cols | all

Cuya explicación podemos ver a continuación:

• none: No se coloca ningún borde interno • groups: Sólo se mostrarán bordes n los grupos de columnas o filas. (veremos más adelante

como agrupar columnas o filas • rows: Sólo aparecerán bordes entre filas. • cols: Los bordes internos sólo aparecerán para separar columnas • all: Se mostrarán todos los bordes internos

Ahora mostramos un par de ejemplos del atributo rules:

Sin ningún borde interno (rules="none")

1 2 3

4 5 6

7 8 9

Con borde interno para separar filas (rules="rows")

1 2 3

4 5 6

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 51 / 108

7 8 9

Artículo por Miguel Angel Álvarez

6.4.- Agrupar filas o columnas de tablas con HTML 4En HTML 4.0 podemos agrupar filas de una tabla, o columnas. Sirve para especificar estilos específicos a esas filas o columnas.

Con HTML 4 existen dos etiquetas que nos permiten agrupar filas o columnas de una tabla, para crear agrupaciones a las que se les puede definir un estilo de una sola vez, y no fila a fila o celda a celda.

Estas etiquetas son las siguientes:

<TBODY>: Para agrupar conjuntos de filas. <COLGROUP> : Para agrupar conjuntos de columnas.

Ambas etiquetas tienen soporte a partir de HTML 4, por lo tanto están disponibles en todos los navegadores modernos más comúnmente utilizados.

6.4.1.- Agrupar filas con <TBODY>

Hacer grupos de filas nos sirve para especificar estilos a determinadas filas de la tabla, de una sola vez. El modo de uso es el siguiente:

<table cellspacing="4" cellpadding="4" border="2"><tr> <td>1</td> <td>2</td> <td>3</td></tr><tbody align="center" bgcolor="#ff8800" valign="top"><tr> <td>4</td> <td> Esta es una celda <br> 5 </td> <td>6</td></tr><tr> <td>7</td> <td>8</td> <td>9</td></tr></tbody></table>

Como se puede ver, se tiene una tabla de 3 filas. Se ha marcado un grupo de dos filas con TBODY, justamente las dos últimas. Para esas filas hemos definido, mediante los atributos de la etiqueta TBODY, un centrado, un color de fondo y una alineación vertical superior. Los atributos que podríamos utilizar con la etiqueta TBODY son un grupo reducido de los que podríamos asignar a etiquetas TR o TD: align, bgcolor y valing, class, id, además de manejadores de eventos.

Podemos ver cómo se mostraría esta tabla:

1 2 3

4 Esta es una celda 5

6

7 8 9

De manera similar, se pueden asignar atributos de hojas de estilo en cascada, utilizando el atributo HTML style, como se puede ver a continuación:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 52 / 108

<table cellspacing="2" cellpadding="2" border="2"><tbody style="font-size:150%;"><tr> <td>1</td> <td>2</td> <td>3</td></tr><tr> <td>4</td> <td>5</td> <td>6</td></tr></tbody><tr> <td>7</td> <td>8</td> <td>9</td></tr></table>

Aunque hay que decir que el grupo de atributos de hojas de estilo que son interpretados, cuando los colocamos en TBODY, es bastante reducido. Internet Explorer da mejor variedad de atributos aceptados.

6.4.2.- Agrupar columnas con <COLGROUP>

Veamos ahora cómo se pueden agrupar varias filas con la etiqueta <COLGROUP>. El objetivo es básicamente el mismo que el de agrupar columnas, es decir, definir de una sola vez estilos específicos para un determinado conjunto de columnas de una tabla. El uso de la etiqueta, no obstante, es un poco diferente.

<table cellspacing="2" cellpadding="2" border="2"><colgroup span=2 width="40"></colgroup><tr> <td>1</td> <td>2</td> <td>3</td></tr><tr> <td>4</td> <td>5</td> <td>6</td></tr><tr> <td>7</td> <td>8</td> <td>9</td></tr></table>

Como se puede ver, COLGROUP se utiliza después de abrir la tabla y antes de empezar a meter los contenidos de filas y celdas.

El atributo span indica el número de columnas que se desean agrupar, empezando por la primera. En nuestro ejemplo se han agrupado las dos primeras columnas. Los otros atributos que podemos colocar en COLGROUP son los siguientes: align, id, class, style, valign, width y manejadores de eventos Javascript. Aunque Internet Explorer acepta otros atributos como bgcolor.

El ejemplo de colgroup se muestra a continuación:

1 2 3

4 5 67 8 9Además, también podemos definir estilos CSS para las agrupaciones de columnas, con el atributo style. Aunque igual que antes, no todos los atributos de hojas de estilo son tenidos en cuenta. Siendo que, en general, Internet Explorer interpreta un mayor número de atributos CSS.

Cuando queremos definir estilos para cada una de las columnas de la tabla, de manera que toda columna tenga sus estilos propios, también utilizamos COLGROUP. En este caso no se debe utilizar

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 53 / 108

el atributo span, sino que se debe de agregar la etiqueta <COL>, una por cada columna a la que pretendemos asignar estilos. De esta manera:

<table cellspacing="2" cellpadding="2" border="2"><colgroup><col><col width=100><col style="width: 200px;"></colgroup><tr> <td>1</td> <td>2</td> <td>3</td></tr><tr> <td>4</td> <td>5</td> <td>6</td></tr><tr> <td>7</td> <td>8</td> <td>9</td></tr></table>

En nuestra tabla, que tenía tres columnas, hemos colocado la etiqueta <COLGROUP> y dentro de esta, tres etiquetas <COL>, cada una con sus estilos propios.

En el primer COL, como se puede ver, no hay ningún atributo. Eso quiere decir que no estoy asignando ningún estilo a la primera columna de la tabla. El segundo COL ha definido una anchura de 100 pixels. El tercer COL, también hemos definido una anchura, pero esta vez con CSS medianteel atributo style.

Los atributos CSS que acepta esta etiqueta también son bastante reducidos en Firefox, aunque Internet Explorer acepta bastantes más.

Para terminar, mostramos la tabla del último ejemplo:

1 2 3

4 5 67 8 9

Artículo por Miguel Angel Álvarez

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 54 / 108

Parte 7:

Formularios en HTMLEl trabajo con formularios es uno de los principales puntos que debemos aprender en HTML.

Hacen posible muchas de las utilidades clave de una web, como el contacto de los creadores

de las páginas con los visitantes, así como ciertos niveles de interacción básica y avanzada con

el usuario.

7.1.- Formularios HTMLEmpezamos la explicación de la creación de formularios con el lenguaje HTML.

Hasta ahora hemos visto la forma en la que el HTML gestiona y muestra la información, esencialmente mediante texto, imágenes y enlaces. Nos queda por ver de qué forma podemos intercambiar información con nuestro visitante. Desde luego, este nuevo aspecto resulta primordial para gran cantidad de acciones que se pueden llevar a cabo mediante el Web: Comprar un articulo, rellenar una encuesta, enviar un comentario al autor...

Hemos visto anteriormente que podíamos, mediante los enlaces a direcciones de email, contactar directamente con un correo electrónico. Sin embargo, esta opción puede resultar en algunos casos poco versátil, si lo que deseamos es que el navegante nos envíe una información bien precisa y además requiere que el visitante tenga instalado en su ordenador algún correo electrónico en un programa como Outlook Express. Es por ello que el HTML propone otra solución mucho más amplia: Los formularios.

Los formularios son esas famosas cajas de texto y botones que podemos encontrar en muchas páginas web. Son muy utilizados para realizar búsquedas o bien para introducir datos personales por ejemplo en sitios de comercio electrónico. Los datos que el usuario introduce en estos campos son enviados al correo electrónico del administrador del formulario o bien a un programa que se encarga de procesarlo automáticamente.

7.1.1.- Qué se puede hacer con un formulario

Usando HTML podemos únicamente enviar el contenido del formulario a un correo electrónico, es decir, construir un formulario con diversos campos y, a la hora pulsar el botón de enviar, generar una ventana de redacción de un email con los datos que el usuario haya escrito en cada uno de esoscampos.

A menudo desearemos hacer cosas más complejas con los formularios, como que se envíe automáticamente el correo a un email sin necesidad que el contenido pase por ningún programa de email. Para ello tendremos que procesar el formulario mediante un programa. La cosa puede resultar un poco más compleja, ya que tendremos que emplear otros lenguajes más sofisticados queel propio HTML. En este caso, la solución más sencilla es utilizar los programás prediseñados que nos ofrecen un gran número de servidores de alojamiento y que nos permiten almacenar y procesarlos datos en forma de archivos u otros formatos. Si vuestras páginas están alojadas en un servidor que no os propone este tipo de ventajas, siempre podéis recurrir a servidores de terceros que ofrecen este u otro tipo de servicios gratuitos para webs. Por supuesto, existe otra alternativa que es la de aprender lenguajes como ASP o PHP que nos permitirán, entre otras cosas, el tratamiento de formularios.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 55 / 108

Así pues, en resumen, con HTML podremos construir los formularios, con diversos tipos de campos,como cajas de texto, botones de radio, cajas de selección, menús desplegables, etc. Sin embargo, debe quedar claro que desde HTML no se puede enviar directamente el correo, sino que se generará un email en el ordenador del visitante, que éste tendrá que enviar "manualmente" por medio de su programa de correo. Si queremos que el formulario se envíe automáticamente o se procese en el servidor para generar otro tipo de respuesta, necesitaremos lenguajes de programación. En este Manual de HTML nos limitaremos a explicar la creación de formularios y os proponemos buscar otras formas de proceso de los mismos a través de otros artículos en DesarrolloWeb.com.

7.1.2.- Cómo hacer un formulario en HTML

Los formularios son definidos por medio de las etiquetas <form> y </form>. Entre estas dos etiquetas colocaremos todos los campos y botones que componen el formulario. Dentro de esta etiqueta <form> debemos especificar algunos atributos:

action

Define el tipo de acción a llevar a cabo con el formulario. Como ya hemos dicho, existen dos posibilidades:

• El formulario es enviado a una dirección de correo electrónico • El formulario es enviado a un programa o script que procesa su contenido

En el primer caso, el contenido del formulario es enviado a la dirección de correo electrónico especificada por medio de una sintaxis de este tipo:

<form action="mailto:[email protected]" ...>

Si lo que queremos es que el formulario sea procesado por un programa, hemos de especificar la dirección del archivo que contiene dicho programa. La etiqueta quedaría en este caso de la siguiente forma:

<form action="dirección del archivo" ...>

La forma en la que se expresa la localización del archivo que contiene el programa es la misma que la vista para los enlaces.

method

Este atributo se encarga de especificar la forma en la que el formulario es enviado. Los dos valores posibles que puede tomar esta atributo son post y get. A efectos prácticos y, salvo que se os diga lo contrario, daremos siempre el valor post.

enctype

Se utiliza para indicar la forma en la que viajará la información que se mande por el formulario. En el caso más corriente, enviar el formulario por correo electrónico, el valor de este atributo debe de ser "text/plain". Así conseguimos que se envíe el contenido del formulario como texto plano dentro del email.

Si queremos que el formulario se procese automáticamente por un programa, generalmente no utilizaremos este atributo, de modo que tome su valor por defecto, es decir, no incluiremos enctype dentro de la etiqueta <form>

Ejemplo de etiqueta <form> completa

Así, para el caso más habitual -el envío del formulario por correo- la etiqueta de creación del formulario tendrá el siguiente aspecto:

<form action="mailto:[email protected] (o nombre del archivo de proceso)" method="post" enctype="text/plain">

Entre esta etiqueta y su cierre colocaremos el resto de etiquetas que darán forma a nuestro formulario, las cuales serán vistas en capítulos siguientes.

Referencia: Mandar formulario por correo electrónico

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 56 / 108

Los formularios se utilizan habitualmente para implementar un tipo de contacto con el navegante, que consiste en

que éste pueda mandarnos sus comentarios por correo electrónico a nuestro buzón.

Para este tipo de utilización de los formularios hemos publicado hace tiempo en DesarrolloWeb.com un artículo

que puede resultar muy interesante para los que deseen un referencia extremadamente rápida para construir un

formulario que envíe los datos por correo electrónico al desarrollador de la página.

El artículo en cuestión se llama contacto con el navegante.

Para continuar, vamos a ver cómo insertar cada uno de los campos posibles en un formulario HTML, comenzando por los campos de texto.

Referencia: Si deseas la formación en vídeo, puedes ver este videotutorial sobre formularios, publicado en

DesarrolloWeb.com.

Artículo por Rubén Alvarez

7.2.- Elementos de Formularios. Campos de textoVemos detenidamente los distintos elementos de formulario que sirven para introducir texto.

El lenguaje HTML nos propone una gran diversidad de alternativas a la hora de crear nuestros formularios, es decir, una gran variedad de elementos para diferentes propósitos. Estas van desde la clásica caja de texto, hasta la lista de opciones en un menú desplegable, pasando por las cajas devalidación, etc.

En el artículo anterior del Manual de HTML ya vimos cómo iniciar nuestro formulario con la etiqueta <form> y los distintos atributos que tenemos que utilizar para configurar su funcionamiento.

En el presente artículo veremos las etiquetas que tenemos que utilizar para crear campos de texto, que pueden ser de dos tipos. Veamos en qué consiste cada una de estas modalidades y como podemos implementarlas en nuestro formulario.

7.2.1.- Etiqueta INPUT para texto corto

Las cajas de texto son colocadas por medio de la etiqueta <input>. Dentro de esta etiqueta hemos de especificar el valor de dos atributos: type y name.

La etiqueta tendrá la siguiente forma:

<input type="text" name="nombre">

De este modo expresamos nuestro deseo de crear una caja de texto cuyo contenido será llamado "nombre" (por ejemplo, en el caso de la etiqueta anterior, pero podemos poner distintos nombres a cada uno de los campos de texto que habrán en los formularios). El aspecto de este tipo de cajas es de sobra conocido, aquí lo podéis ver:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 57 / 108

El nombre del elemento del formulario es de gran importancia para poder identificarlo en nuestro programa de procesamiento o en el mail recibido. Por otra parte, es importante indicar el atributo type, ya que, como veremos, existen otras modalidades de elementos de formulario que usan esta misma etiqueta INPUT.

El empleo de estas cajas esta fundamentalmente destinado a la toma de datos breves: palabras o conjuntos de palabras de longitud relativamente corta. Veremos más adelante que existe otra formade tomar textos más largos a partir de otra etiqueta.

Además de estos dos atributos, esenciales para el correcto funcionamiento de nuestra etiqueta, existen otra serie de atributos que pueden resultarnos de utilidad pero que no son imprescindibles:

size Define el tamaño de la caja de texto, en número de caracteres visibles. Si al escribir el usuario llegaal final de la caja, el texto que escriba a continuación también cabrá dentro del campo pero irá desfilando, a medida que se escribe, haciendo desaparecer la parte de texto que queda a la izquierda.

maxlength Indica el tamaño máximo del texto, en número de caracteres, que puede ser escrito en el campo. Encaso que el campo de texto tenga definido el atributo maxlength, el navegador no permitirá escribirmás caracteres en ese campo que los que hayamos indicado.

Nota: Es importante no confundir el atributo maxlength con el atributo size. Mientras size define el tamaño

visible de la caja de texto, maxlength indica el tamaño máximo real del texto que se puede escribir. Podemos tener

una caja de texto con un tamaño aparente (size) que es menor que el tamaño máximo (maxlength). Lo que ocurrirá

en este caso es que, al escribir, si sobrepasamos el espacio marcado por size, el texto ira desfilando dentro de la

caja hasta que lleguemos a su tamaño máximo definido por maxlength, momento en el cual nos será imposible

continuar escribiendo.

value En algunos casos puede resultarnos interesante asignar un valor definido al campo en cuestión. Esto puede ayudar al usuario a rellenar más rápidamente el formulario o darle alguna idea sobre la naturaleza de datos que se requieren. Este valor inicial del campo puede ser expresado mediante elatributo value. Veamos su efecto con un ejemplo sencillo:

<input type="text" name="nombre" value="Perico Palotes">

Genera un campo de este estilo:

Veremos posteriormente que este atributo puede resultar bastante relevante en determinadas situaciones.

Nota: estamos obligados a utilizar la etiqueta <form>

Aunque esperamos que haya quedado claro a medida que se lee en estos capítulos sobre formularios, hemos

querido remarcarlo para que quede muy claro: Cuando queremos utilizar, en cualquer situación elementos de

formulario, debemos escribirlos siempre entre las etiquetas <form> y </form>. De lo contrario, los elementos se

verán perfectamente en Explorer pero no en Netscape. (Actualizado: en estos momentos la mayoría de los

navegadores pueden interpretar bien los campos de texto sin que estén en una etiqueta FORM, sin embargo, la

http://desarrolloweb.com/manuales/21/

Perico Palotes

Manual de HTML – DesarrolloWeb.com 58 / 108

etiqueta FORM sigue siendo imprescindible, porque indica qué se desea hacer con los campos de texto, como el

action a realizar, y engloba qué elementos pertenecen a qué formularios)

Dicho de otra forma, en Netscape no se visualizan los elementos de formulario a no ser que esten colocados entre

las correspondientes etiquetas de inicio y fin de formulario.

Es por ello que para mostrar un campo de texto no vale con poner la etiqueta <input>, sino que habrá que

ponerla dentro de un formulario. Así:

<form>

<input type="text" name="nombre" value="Perico Palotes">

</form>

7.2.2.- Etiqueta INPUT, modalidad de texto oculto

Hay determinados casos en los que podemos desear esconder el texto escrito en el campo INPUT, por medio asteriscos, de manera que aporte una cierta confidencialidad. Este tipo de campos son análogos a los de texto, con una sola diferencia: remplazamos el atributo type="text" por type="password":

<input type="password" name="nombre">

En este caso, podéis comprobar que, al escribir dentro del campo, en lugar de texto veréis asteriscos.

Estos campos son ideales para la introducción de datos confidenciales, principalmente códigos de acceso o claves. Se ve en funcionamiento a continuación.

7.2.3.- Etiqueta TEXTAREA para texto largo

Si deseamos poner a la disposición de usuario un campo de texto donde pueda escribir cómodamente sobre un espacio compuesto de varias líneas, hemos de invocar una nueva etiqueta: <textarea> y su cierre correspondiente.

Este tipo de campos son prácticos cuando el contenido a enviar no es un nombre, teléfono, edad o cualquier otro dato breve, sino más bien, un comentario, opinión, etc. en los que existe la posibilidad que el visitante desee rellenar varias líneas.

Dentro de la etiqueta textarea deberemos indicar, como para el caso visto anteriormente, el atributo name para asociar el contenido a un nombre que será asemejado a una variable en los programás de proceso. Además, podemos definir las dimensiones del campo a partir de los atributos siguientes:

rows Define el número de líneas del campo de texto.

cols Define el número de columnas del campo de texto.

La etiqueta queda por tanto de esta forma:

<textarea name="comentario" rows="10" cols="40"></textarea>

El resultado es el siguiente:

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 59 / 108

Asimismo, es posible predefinir el contenido del campo. Para ello, no usaremos el atributo value, sino que escribiremos dentro de la etiqueta el contenido que deseamos atribuirle. Veámoslo:

<textarea name="comentario" rows="10" cols="40">Escribe tu comentario....</textarea>

Dará como resultado:

Como se podrá imaginar, los campos de texto son de vital importancia para los formularios, pero no son los únicos tipos de elementos que podemos colocar dentro de éstos. En el siguiente artículo veremos otros tipos de elementos para formularios.

Artículo por Rubén Alvarez

7.3.- Otros elementos de formularioExplicamos la sintaxis y el funcionamiento de las cajas y listas de selección, casillas de verificación y botones de radio.

En el Manual de HTML de DesarrolloWeb.com ya hemos publicado artículos sobre la creación de formularios y sobre los campos de texto en todas sus modalidades. Seguramente hayamos percibidoque los textos son un manera muy practica de hacernos llegar la información del navegante. No obstante, en muchos casos, permitir al usuario que escriba cualquier texto permite demasiada libertad y puede que la información que éste escriba no sea la que nosotros estamos necesitando. Por otra parte, para determinados casos, los textos libres son difícilmente adaptables a programás que puedan procesarlos debidamente. Es por ello que, en determinados casos, puede resultar más efectivo proponer una elección al navegante a partir del planteamiento de una serie de opciones disponibles y definidas por nosotros.

Por ejemplo, pensemos que queremos que el usuario indique su país de residencia. En ese caso podríamos ofrecer una lista de países para que seleccione el que sea. Este mismo caso se puede aplicar a gran variedad de informaciones, como el tipo de tarjeta de crédito para un pago, la puntuación que da a un recurso, si quiere recibir o no un boletín de novedades, etc...

Este tipo de opciones predefinidas por nosotros pueden ser expresadas por medio de diferentes

http://desarrolloweb.com/manuales/21/

Escribe tu comentario....

Manual de HTML – DesarrolloWeb.com 60 / 108

campos de formulario. Veamos a continuación cuales son:

7.3.1.- Listas de opciones

Las listas de opciones son ese tipo de menús desplegables que nos permiten elegir una (o varias) delas múltiples opciones que nos proponen. Para construirlas emplearemos una etiqueta <select>, con su respectivo cierre:

Como para los casos ya vistos, dentro de esta etiqueta definiremos su nombre por medio del atributo name. Cada opción será incluida en una línea precedida de la etiqueta <option>.

Podemos ver, a partir de estas directivas, la forma más típica y sencilla de esta etiqueta:

<select name="estacion"> <option>Primavera</option> <option>Verano</option> <option>Otoño</option> <option>Invierno</option> </select>

El resultado es:

Esta estructura puede verse modificada principalmente a partir de otros dos atributos:

size Indica el número de valores mostrados a la vez en la lista. Lo típico es que no se incluya ningún valor en el atributo size, en ese caso tendremos un campo de opciones desplegable, pero si indicamos size aparecerá un campo donde veremos las opciones definidas por size y el resto podránser vistos por medio de la barra lateral de desplazamiento.

multiple Permite la selección de más varios elementos de la lista. La elección de más de un elemento se hacecomo con el explorador de Windows, a partir de las teclas ctrl o mayúsculas (la flecha hacia arriba, también llamada shift). Este atributo se expresa sin valor alguno, es decir, no se utiliza con el igual: simplemente se pone para conseguir el efecto, o no se pone si queremos una lista desplegable común.

Consejo: Si es posible, no uses multiple

No recomendamos especialmente la puesta en practica de esta opción ya que el manejo de las teclas ctrl o shift

para elegir varias opciones puede ser desconocido para el navegante. Evidentemente, siempre cabe la posibilidad

de explicarle como funciona aunque no dejara de ser una complicación para más para el visitante.

Veamos cual es el efecto producido por estos dos atributos cambiando la línea: <select name="estacion">

por: <select name="estacion" size="3" multiple>

La lista quedara de esta forma:

La etiqueta <option> puede asimismo ser matizada por medio de otros atributos

selected Del mismo modo que multiple, este atributo no toma ningún valor sino que simplemente indica que la opción que lo presenta esta elegida por defecto.

http://desarrolloweb.com/manuales/21/

Primavera

PrimaveraVeranoOtoño

Manual de HTML – DesarrolloWeb.com 61 / 108

Así, si cambiamos la línea del código anterior: <option>Otoño</option>

por: <option selected>Otoño</option>

El resultado será:

value Define el valor de la opción que será enviado al programa o correo electrónico si el usuario elige esa opción. Este atributo puede resultar muy útil si el formulario es enviado a un programa para su procesamiento, puesto que a cada opción se le puede asociar un número o letra, lo cual es más fácilmente manipulable que una palabra o texto. podríamos así escribir líneas del tipo:

<option value="1">Primavera</option>

De este modo, si el usuario elige primavera, lo que le llegara al programa (o correo) es una variablellamada estacion que tendrá com valor 1. En el correo electrónico recibiríamos:

estacion=1

7.3.2.- Botones de radio

Existe otra alternativa para plantear una elección, en este caso, obligamos al internauta a elegir únicamente una de las opciones que se le proponen.

La etiqueta empleada en este caso es <input> en la cual tendremos el atributo type ha de tomar el valor radio. Veamos un ejemplo:

<input type="radio" name="estacion" value="1">Primavera <br><input type="radio" name="estacion" value="2">Verano <br><input type="radio" name="estacion" value="3">Otoño <br><input type="radio" name="estacion" value="4">Invierno

Nota: Hay que fijarse que la etiqueta <input type="radio"> sólo coloca la casilla pinchable en la página. Los

textos que aparecen al lado, así como los saltos de línea los colocamos con el correspondiente texto en el código

de la página y las etiquetas HTML que necesitemos.

El resultado es el siguiente:

Primavera Verano Otoño Invierno

Como puede verse, a cada una de las opciones se le atribuye una etiqueta input dentro de la cual asignamos el mismo nombre (name) para todas las opciones y un valor (value) distinto. Si el usuarioelige supuestamente Otoño, recibiremos en nuestro correo una línea tal que esta:

estacion=3

Cabe señalar que es posible preseleccionar por defecto una de las opciones. Esto puede ser conseguido por medio del atributo checked:

<input type="radio" name="estacion" value="2" checked>Verano

Veamos el efecto:

Primavera Verano

http://desarrolloweb.com/manuales/21/

Otoño

Manual de HTML – DesarrolloWeb.com 62 / 108

Otoño Invierno

7.3.3.- Cajas de validación

Este tipo de elementos pueden ser activados o desactivados por el visitante por un simple clic sobrela caja en cuestión. La sintaxis utilizada es muy similar a las vistas anteriormente:

<input type="checkbox" name="paella">Me gusta la paella

El efecto:

Me gusta la paella

La única diferencia fundamental es el valor adoptado por el atributo type.

Del mismo modo que para los botones de radio, podemos activar la caja por medio del atributo checked.

El tipo de información que llegara a nuestro correo (o al programa) será del tipo:

paella=on (u off dependiendo si ha sido activada o no)

Artículo por Rubén Alvarez

7.4.- Envío, borrado y demás en formularios HTMLEnseñamos la manera de colocar botones de envío y borrado en formularios HTML. También conocemos los campos invisibles y los botones normales. Además, hacemos un ejemplo práctico.

Siguiendo con la explicación de todo lo relativo a formularios que estamos ofreciendo en el Manual de HTML, ha llegado el momento de explicar cómo podemos hacer un botón para provocar el envío del formulario, entre otras cosas.

Como podremos imaginarnos, en formularios no solamente habrá elementos o campos donde solicitar información del usuario, sino también habrá que implementar otra serie de funciones. Concretamente, han de permitirnos su envío mediante un botón. También puede resultar práctico poder proponer un botón de borrado o bien acompañar el formulario de datos ocultos que puedan ayudarnos en su procesamiento.

En este capitulo, para terminar la saga de formularios, daremos a conocer los medios de instalar todas estas funciones y acabaremos mostrando un ejemplo de formulario completo.

7.4.1.- botón de envío de formulario (botón de submit)

Para dar por finalizado el proceso de relleno del formulario y hacerlo llegar a su gestor, el navegante ha de enviarlo por medio de un botón previsto a tal efecto. La construcción de dicho botón no reviste ninguna dificultad una vez familiarizados con las etiquetas INPUT ya vistas:

<input type="submit" value="Enviar">

Con este código generamos un botón como este:

Como puede verse, tan solo hemos de especificar que se trata de un botón de envío (type="submit")y hemos de definir el mensaje que queremos que aparezca escrito en el botón por medio del atributo value. Este tipo de campos INPUT, para envío de formularios, a menudo se conocen simplemente como "botones de submit".

Nota: Al enviar el formulario se creará un mensaje con tu programa de correo, que se debe enviar con ese

http://desarrolloweb.com/manuales/21/

Enviar

Manual de HTML – DesarrolloWeb.com 63 / 108

propio programa de correo, para que llegue al destinatario. Este es el comportamiento típico de los formularios

que se programan con HTML, que requiere que el usuario tenga un programa de correo instalado y configurado

para que funcione.

Una duda típica es cómo realizar el formulario para que se envíe directamente desde la página web, sin que el

usuario deba tener un programa de correo, sino que se pulse el botón de enviar y se genere y envíe el mensaje

automáticamente. Para ello es necesario realizar algo de programación, aparte del propio formulario en HTML, en

un lenguaje avanzado, que sea del lado del servidor, como PHP, ASP... En DesarrolloWeb.com tienes todo lo que

necesitas para aprender a conseguir el envío automático de correos, con explicaciones detalladas para obtener los

resultados por varias vías. Te recomendamos leer el manual Envío de formularios avanzado.

7.4.2.- botón de borrado (botón de reset)

Este botón nos permitirá borrar el formulario por completo, en el caso de que el usuario desee rehacerlo desde el principio. Su estructura sintáctica es análoga a la anterior:

<input type="reset" value="Borrar">

A diferencia del botón de envío, indispensable en cualquier formulario, el botón de borrado resulta meramente optativo y no es utilizado frecuentemente. Hay que tener cuidado de no ponerlo muy cerca del botón de envío y de distinguir claramente el uno del otro, para que ningún usuario borre el contenido del formulario que acaba de rellenar por error.

7.4.3.- Datos ocultos (campos hidden)

En algunos casos, aparte de los propios datos rellenados por el usuario, puede resultar práctico enviar datos definidos por nosotros mismos que ayuden al programa en su procesamiento del formulario. Este tipo de datos, que no se muestran en la página pero si pueden ser detectados solicitando el código fuente, no son frecuentemente utilizados por páginas construidas en HTML, son más bien usados por páginas que emplean tecnologías de servidor. No os asustéis, veremos másadelante qué quiere decir esto. Tan solo queremos dar constancia de su existencia y de su modo creación. He aquí un ejemplo:

<input type=hidden name="sitio" value="www.desarrolloweb.com">

Esta etiqueta, incluida dentro de nuestro formulario, enviara un dato adicional al correo o programa encargado de la gestión del formulario. podríamos, a partir de este dato, dar a conocer alprograma el origen del formulario o algún tipo de acción a llevar a cabo (una redirección por ejemplo).

7.4.4.- Botones normales

Dentro de los formularios también podemos colocar botones normales, pulsables como cualquier otro botón. Igual que ocurre con los campos hidden, estos botones por si solos no tienen mucha utilidad pero podremos necesitarlos para realizar acciones en el futuro. Su sintaxis es la siguiente.

<input type=button value="Texto escrito en el botón">

Quedaría de esta manera:

El uso más frecuente de un botón es en la programación en el cliente. Utilizando lenguajes como Javascript podemos definir acciones a tomar cuando un visitante pulse el botón de una página web.

http://desarrolloweb.com/manuales/21/

Texto escrito en el botón

Manual de HTML – DesarrolloWeb.com 64 / 108

7.4.5.- Ejemplo de formulario

Con este capítulo finalizamos el tema de formularios. Pasemos ahora a ejemplificar todo lo aprendido a partir de la creación de un formulario que consulta el grado de satisfacción de los usuarios de una línea de autobuses ficticia. El formulario está construido para que envíe los datos por correo electrónico a un buzón determinado.

Vemos el formulario en esta página. Vosotros tratar de construirlo para ver si habéis entendido bienlos temas sobre formularios.

Nombre

Email

Población Sexo

Hombre Mujer

Frecuencia de los viajes

Comentarios sobre su satisfacción personal

Deseo recibir notificación de las novedades en las líneas de autobuses.

El formulario se puede ver también en una página a parte. Recordad que podéis ver el código fuente de cualquier página web utilizando los menús de vuestro navegador, así podréis revisar el código que hemos utilizado para construir el formulario.

A continuación también mostraremos el código fuente de este formulario, que es importante que todos le echemos un vistazo, aunque sea rápidamente.

<form action="mailto:[email protected]" method="post" enctype="text/plain"> Nombre <input type="text" name="nombre" size="30" maxlength="100"> <br> Email <input type="text" name="email" size="25" maxlength="100" value="@"> <br> Población <input type="text" name="poblacion" size="20" maxlength="60"> <br> Sexo <br> <input type="radio" name="sexo" value="Varon" checked> Hombre <br> <input type="radio" name="sexo" value="Hembra"> Mujer <br>

http://desarrolloweb.com/manuales/21/

@

Varias veces al dia

Enviar formulario

Borrar todo

Manual de HTML – DesarrolloWeb.com 65 / 108

<br> Frecuencia de los viajes <br> <select name="utilizacion"> <option value="1">Varias veces al dia <option value="2">Una vez al dia <option value="3">Varias veces a la semana <option value="4">varias veces al mes </select> <br> <br> Comentarios sobre su satisfacción personal <br> <textarea cols="30" rows="7" name="comentarios"></textarea> <br> <br> <input type="checkbox" name="recibir_info" checked> Deseo recibir notificación de las novedades en las líneas de autobuses. <br> <br> <input type="submit" value="Enviar formulario"> <br> <br> <input type="Reset" value="Borrar todo">

</form>

Para acabar, vamos a ver lo que recibirían por correo electrónico en la empresa de autobuses cuando un usuario cualquiera rellenase este formulario y pulsase sobre el botón de envio.

nombre=Federico Mijo Silvestre [email protected] poblacion=Astorga, León sexo=Varon utilizacion=2 comentarios=No creo que sea una buena linea. Poner más autobuses. recibir_info=on

Referencias:

Hemos publicado un taller de HTML con un formulario para valorar la página web. Muy sencillo y práctico. Puede

ser interesante para afianzar estos conocimientos: Taller con formularios.

Además, también te recomendamos ver el videotutorial sobre formularios HTML, donde repasamos todo lo visto

hasta el momento sobre la creación de formularios en páginas web.

Artículo por Rubén Alvarez

7.5.- Etiquetas FIELDSET y LEGEND de formulariosLas etiquetas de HTML FIELDSET y LEGEND sirven para crear bloques de elementos dentro de formularios.

En el Manual de HTML de DesarrolloWeb.com ya hemos visto varios artículos para la creación de formularios en HTML. Pero nos quedaba por ver un par de etiquetas, que no siendo imprescindiblespara la realización de formularios, sí nos pueden ayudar a estructurarlos, mejorando la interfaz de usuario de nuestras páginas.

Los atributos FIELDSET y LEGEND se utilizan en conjunto y sirven respectivamente para definir y etiquetar grupos lógicos de elementos de formularios. Realmente no afectan a la operativa del formulario, pero sirven para agrupar elementos en diferentes áreas, de modo que se clarifique la entrada de datos del usuario. Al formar varios grupos de elementos se puede crear una estructura

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 66 / 108

mucho más fácil de asimilar por el usuario, sobre todo si se trata de formularios que tengan muchoselementos.

7.5.1.- Etiqueta FIELDSET

La etiqueta FIELDSET sirve para agrupar los elementos. Se utiliza con su respectiva etiqueta de cierre y lo que hace es crear un recuadro que rodea a los elementos de formulario colocados dentrode ella.

Por ejemplo, se podría usar de esta manera:

<fieldset>Elemento de formulario: <input type="text" name="elemento1"><br>Otro elemento: <input type="text" name="otro"></fieldset>

Simplemente creará un cuadrado que agrupará los dos elementos del formulario incluidos dentro del FIELDSET. Podemos ver el resultado en una página aparte.

7.5.2.- Etiqueta LEGEND

LEGEND sirve para nombrar o etiquetar un grupo creado con FIELDSET. Añade simplemente una nota aclaratoria sobre qué tipo de información se está agrupando en el recuadro. Tampoco sirve para nada en especial, de no ser porque queda bonita y porque puede servir para ayudar al usuario y mejorar la interfaz y la claridad de los formularios.

La etiqueta LEGEND se coloca después de la etiqueta FIELDSET. Tiene su propia etiqueta de cierre. Entre <LEGEND> y </LEGEND> colocamos el texto con el que queremos marcar el recuadro definido con FIELDSET.

A la etiqueta LEGEND se le puede poner el atributo align para indicar el lugar donde debe aparecerla leyenda. Por ejemplo podríamos indicar align=�right� para que apareciera en la parte de la derecha, en lugar de la izquierda, que es donde aparece por defecto.

Veamos ahora un ejemplo sencillo de utilización de las etiquetas FIELDSET y LEGEND en conjunto.

<form><fieldset><legend align="right">Datos personales</legend>Nombre: <input type="text" name="nombre"><br>Edad: <input type="text" name="edad" size="2"><br>Dirección: <input type="text" name="direccion"></fieldset><br><fieldset><legend align="right">Datos de tu ordenador</legend>Modelo de ordenador: <input type="text" name="modelo"><br>Sistema que te da el problema:<select><option value=cpu>CPU<option value=impresora>Impresora</select></fieldset><br><fieldset><legend align="right">Descripción del problema</legend><textarea cols="55" rows="8" name="descripcion"></textarea></fieldset></form>

El ejemplo en marcha tendría este aspecto.

Podremos comprobar como aparecen tres bloques en el formulario, producidos por tres etiquetas FIELDSET, con varios campos de formulario incluidos en cada una. Además, cada uno de los FIELDSET tienen dentro un LEGEND que sirve para nombrar con una leyenda cada uno de los tres bloques.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 67 / 108

7.5.3.- Etiqueta LABEL

Aunque no forma parte del objetivo de este artículo, queremos nombrar también otra etiqueta llamada LABEL que sí tiene una utilidad especial en la creación de formularios, además de la estética. Sirve para poner texto al lado de los elementos de formulario y que tal texto esté asociado al propio elemento. Ese texto, que pondremos con el tag LABEL, se asocia a un elemento concreto con el atributo FOR, colocando como valor del atributo el identificador del campo que se está asociando.

<label for="edad">Edad</label> <input type="text" name="edad" id="edad">

Como vemos, hemos creado un LABEL y hemos colocado en el atributo FOR el nombre del campo de formulario que estamos asociando a ese texto. El resultado es que el texto colocado dentro de LABEL es un elemento interactivo, al que podemos hacer clic y sería como si hiciésemos clic en el propio campo asociado al LABEL.

Para acabar, comentamos que estas etiquetas se hallan relatadas en otro artículo de DesarrolloWeb.com, con explicaciones escritas por otro autor, que podrían complementar y ampliar la presente información. Si te interesa, accede al artículo Las nuevas etiquetas de HTML 4.0 (2).

Artículo por Miguel Angel Álvarez

Parte 8:

Frames o marcos en

HTMLLos frames en HTML, o marcos si preferimos el término en español, son una manera de

mantener fijas algunas partes de la página, mientras se navega por las otras. Fueron en el

pasado un componente habitual de las páginas aunque hoy en día se han quedado en desuso

por diversas razones. Veremos también un caso especial de frames, que se crea con la

etiqueta IFRAME, que es importante conocer porque sí se usa bastante actualmente.

8.1.- Frames en HTMLIntrodución a los frames, un poco de historia y sus utilidades.

Una de las más modernas características de HTML son los frames, que se añadieron, tanto en Netscape Navigator como en Internet Explorer, a partir de sus versiónes 2.0. Los frames -que significan en castellano marcos- son una manera de partir la página en distintos espacios independientes los unos de los otros, de modo que en cada espacio se coloca una página distinta que se codifica en un fichero HTML distinto.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 68 / 108

Al principio se crearon como etiquetas propietarias del navegador Netscape y rápidamente la potencia del recurso hizo que el uso de frames se extendiera por toda la web. Poco tardaría InternetExplorer en incluirlos, para que no se le escapase una novedad tan popular de su competidor. Finalmente, como respuesta a la popularidad entre los desarrolladores de los frames, el estándar HTML 4.0 incluyó estas etiquetas dentro de las permitidas.

Los frames, como decíamos, nos permiten partir la ventana del navegador en diferentes áreas. Cada una de estas áreas son independientes y han de ser codificadas con archivos HTML también independientes. Como resultado, cada frame o marco contiene las propiedades específicas que le indiquemos en el código HTML a presentar en ese espacio. Así mismo, y dado que cada marco es independiente, tendrán sus propias barras de desplazamiento, horizontales y verticales, por separado.

Existen en la web muchas páginas que contienen frames y seguro que todos hemos tenido la ocasión de conocer algunas. Se suelen utilizar para colocar en una parte de la ventana una barra denavegación, que generalmente se encuentra fija y permite el acceso a cualquier zona de la página web. Una de las principales ventajas de la programación con frames viene derivada de la independencia de los distintos frames, pues podemos navegar por los contenidos de nuestro web con la barra de navegación siempre visible, y sin que se tenga que recargar en cada una de las páginas que vamos visitando.

Un ejemplo de las áreas que se pueden construir en una construcción de frames se puede ver en lasimágenes siguientes.

Para el que no haya tenido oportunidad de conocer los frames y su funcionamiento, ofrecemos uno de los ejemplos del tema de frames que simula la página de una carnicería.

Para las personas que desean aprender sobre frames os indicamos leer los siguientes artículos del Manual de HTML y el videotutorial sobre el desarrollo con frames.

Artículo por Miguel Angel Álvarez

8.2.- Frames - Explicación básicaExplicamos los detalles generales y los más básicos sobre la creación de frames. Etiquetas FRAMESET Y FRAME.

Las páginas web que están hechas con frames se componen de una declaración de los marcos y tantas páginas en formato HTML corriente como distintas divisiones hemos definido. La declaracióno definición de frames es la única página que realmente debemos aprender, puesto que las páginas que se van a visualizar en cada uno de los cuadros son ficheros HTML de los que venimos aprendiendo anteriormente en este manual.

Dicha definición está compuesta por etiquetas <FRAMESET> y <FRAME>, con las que se indicamos la disposición de todos los cuadros. La etiqueta <FRAMESET> indica las particiones de la ventana del navegador y la etiqueta <FRAME> indica cada uno de los cuadros donde colocaremos una página independiente.

Las particiones que se pueden hacer con un <FRAMESET> son en filas o columnas. Por ejemplo, podríamos indicar que deseamos hacer una división de la página en dos filas, o dos columnas, tres filas, etc. Para indicar tanto la forma de partir la ventana -en filas o columnas- como el número de particiones que pretendemos hacer, se ha de utilizar el atributo COLS o ROWS. El primero sirve para indicar una partición en columnas y el segundo para una partición en filas.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 69 / 108

Nota: Es importante indicar que no se puede hacer una partición en filas y columnas a la vez, sino que debemos

escoger en partir la ventana en una de las dos disposiciones. Más adelante indicaremos cómo partir la ventana

tanto en filas como en columnas, que se hace con la anidación de frames.

En el atributo COLS o ROWS -sólo podemos elegir uno de los dos- colocamos entre comillas el número de particiones que deseamos realizar, indicando de paso el tamaño que va a asignarse a cada una. Un valor típico de estos atributos sería el siguiente:

cols="20%,80%" Indica que se deben colocar dos columnas, la de la izquierda tendría un 20% del espacio total de la ventana y la de la derecha un 80%.

rows="15%,60%,25%" Así indicamos que deseamos tres filas, la de arriba con un 15% del espacio total, la del medio con un espacio correspondiente al 60% del total y la de abajo con un 25%. En total suman el 100% del espacio de la ventana.

Además del porcentaje para indicar el espacio de cada una de las casillas, también podemos indicarlo en pixeles. De esta manera.

cols="200,600" Para indicar que la columna de la izquierda debe tener 200 pixels de ancho y la de la derecha 600. Esto está bien si nuestra ventana tiene 800 pixels de ancho, pero esto no tiene porque ser así en todos los monitores de los usuarios, por lo que este modo de expresar los marcos es importante quese indique de la siguiente manera.

cols="200,*" Así indicamos que la primera columna ha de medir 200 pixels y que el resto del espacio disponible -que será mayor o menor dependiendo de la definición de la pantalla del usuario- se le asignará a segunda columna.

En la práctica podemos mezclar todos estos métodos para definir los marcos de la manera que deseemos, con pocentaje, con pixels o con el comodín (*). No importa cómo se definan, la única recomendación es que uno de los valores que indiquemos sea un asterisco, para que el área correspondiente a dicho asterisco o comodín sea más o menos grande dependiendo del espacio que tenga la ventana de nuestro navegador. Otros métodos de definir filas y columnas, atendiendo a este consejo, serían los siguientes:

rows="100,*,12%" Definimos tres filas, la primera con 100 pixels de ancho, la segunda con el espacio que sobre de las otras dos, y la tercera con un 12% del espacio total.

cols="10%,50%,120,*" Estamos indicando cuatro columnas. La primera del 10% del espacio de la ventana, la segunda con la mitad justa de la ventana, la tercera con un espacio de 120 pixels y la última con la cantidad de espacio que sobre al asignar espacio a las demás particiones.

Una vez hemos indicado el número de filas o columnas y el espacio reservado a cada una con la etiqueta <FRAMESET>, debemos especificar con la etiqueta <FRAME> la procedencia de cada uno de los frames en los que hemos partido la ventana.

Para ello, disponemos del atributo SRC, que se ha de definir para cada una de las filas o columnas. De esta manera.

<FRAME src="marco1.html">

Así queda indicado que el frame que estamos definiendo debe mostrar la página marco1.html en su interior.

Hasta ahora hemos visto bastante información teórica, la suficiente para saber construir nuestras propias estructuras de frames, pero seguro que para aclarar las cosas vendrá bien hacer alguna práctica. Así que en el próximo artículo pasaremos a la creación de frames en páginas web.

Artículo por Miguel Angel Álvarez

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 70 / 108

8.3.- Frames - Creación de una estructura simpleEjemplo de la creación de un frame simple para ilustrar lo aprendido hasta ahora.

Para ilustrar todo lo que venimos explicando podemos ver el ejemplo sobre cómo se crearía la definición de frames de la imagen que podemos ver a continuación.

<html> <head> <title>Definición de Frames</title> </head> <frameset rows="15%,*,75"> <frame src="pagina1.html"> <frame src="pagina2.html"> <frame src="pagina3.html"> </frameset> </html>

Se puede ver esta partición de frames en una página a parte.

Además tenemos algunas consideraciones que hacer para terminar de comprender este ejemplo:

• El título de la definición de frames es el que hereda toda la página web, por ello, no es buenaidea titular como "definición de frames" por ejemplo, ya que entonces toda nuestra página setitularía así y seguramente no sea muy descriptivo. Si estuviésemos haciendo una página para la carnicería pepe sería mejor titular a la definición de frames algo como "Carnicería Pepe, las mejores carnes en Madrid".

• La página que define los frames no tiene body. HTML puede arrojarnos un error si lo incluimos.

• Las páginas "pagina1.html", "pagina2.html"y "pagina3.html" han de escribirse en archivos independientes con el nombre indicado. En este ejemplo, dichas páginas deberían encontrarse en el mismo directorio que la declaración de frames. Si especificamos una ruta para acceder al archivo podemos colocarlo en el directorio que deseemos.

• Los colores de cada uno de los frames los hemos colocado con el atributo bgcolor colocado en la etiqueta <BODY> de cada una de las páginas que se muestran en los marcos.

Artículo por Miguel Angel Álvarez

8.4.- Frames - Una página en cada marcoVemos cómo serían las distintas páginas independientes que componen un sitio creado con frames.

Las páginas que mostraremos en cada marco son documentos HTML iguales a los que venimos creando anteriormente. Podemos colocar cualquier elemento HTML de los estudiados en este manual, como etiquetas de párrafo, imágenes, colores de fondo, etc.

Cada documento, como ya hemos indicado, se escribe por separado en su propio archivo HTML. Para el ejemplo del capítulo anterior podemos definir los archivos HTML de la siguiente manera.

pagina1.html Es la página que contiene el titular de la web. Simplemente se trata de una etiqueta <H1> de

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 71 / 108

titular. La página tiene su propio título, con la etiqueta <TITLE>, que no se podrá visualizar por ningún sitio a no ser que se muestre esta página sin los frames, ya que las páginas dentro de los marcos heredan el título de la definición de los frames.

<html> <head> <title>Titulo Carnicería Pepe</title> </head>

<body bgcolor="#DECC09"> <h1 align=center>Carnicería PEPE</h1> </body> </html>

pagina2.html Es la página que se presentará en el área principal de la definición de frames, es decir, la página que tiene más espacio para visualizarse y donde pondremos los contenidos de la web. En este caso muestra un mensaje de bienvenida a la web, que hará las veces de portada.

<html> <head> <title>Portada de Carnicería PEPE</title> </head>

<body bgcolor="#CF391C" text="#ffffff"> <h1 align="center">Bienvenidos a nuestra web</h1> <br> <br> La carnicería PEPE, con más de 100 años de experiencia, es la mejor fuente de carnes de vacuno y cerdo de la comunidad. <br> <br> Tanto en invierno como en verano puede encontrar nuestras ofertas de temporada de primera calidad. </body> </html>

pagina3.html En esta página se mostrará la barra de navegación por los contenidos del sitio. Contiene enlaces que deberían actualizar el contenido del área principal de la declaración de frames, para mostrar los distintos contenidos del sitio, por ejemplo, la portada, los productos, la página de contacto, etc.

<html> <head> <title>Barra de navegación de carnicería PEPE</title> </head>

<body bgcolor="#AC760E" link="ffffcc" vlink="ffffcc"> <div align="center"> <b> <a href="pagina2.html">Portada</a> | <a href="productos.html">Productos</a> | <a href="contacto.html">Contacto</a> </b> </div> </body> </html>

Podemos ver cómo queda la página de frames con estos contenidos, que simulan la página de una carnicería.

Artículo por Miguel Angel Álvarez

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 72 / 108

8.5.- Frames - Dirigir los enlacesExplicación sobre cómo dirigir el enlace al frame que deseemos que actualice, que no tiene porque ser el mismo donde está situado.

La única particularidad destacable en el ejemplo del capítulo anterior, y en el manejo de frames en general, se trata de que cada uno de los enlaces que colocamos en las páginas actualizan el frame donde está colocado este enlace. Por ejemplo, si tenemos enlaces en la parte inferior de la ventana, en el espacio correspondiente al tercer marco, actualizarán los contenidos del tercer frame, que es donde están situados los enlaces.

Este efecto que comentamos se puede observar en el ejemplo de la página de la carnicería, tal como quedaría al incluir los códigos de las distintas páginas.

Lo lógico es que al pulsar sobre un enlace de la barra de navegación actualicemos el frame principal, que es donde habíamos planeado colocar los contenidos, en lugar del frame donde colocamos la barra de navegación, que debería mantenerse fija. Para conseguir este efecto debemos hacer un par de cosas:

1. Darle un nombre al frame que deseamos actualizarDicho nombre se indica en la etiqueta <FRAME> de la definición de frames. Para ello utilizamos el atributo name, igualado al nombre que le queremos dar a dicho marco.

2. Dirigir los enlaces hacia ese framePara ello debemos colocar en el atributo target de los enlaces -etiqueta <A>- el nombre del frame que deseamos actualizar al pulsar el enlace.

Después de darle un nombre al frame principal, nuestra declaración de frames quedaría de la siguiente manera.

<frameset rows="15%,*,75"> <frame src="pagina1.html"> <frame src="pagina2.html" name="principal"> <frame src="pagina3.html"> </frameset>

Además, deberíamos colocar el atributo target a los enlaces, tal como sigue.

<a href="pagina2.html" target="principal">Portada</a> | <a href="productos.html" target="principal">Productos</a> | <a href="contacto.html" target="principal">Contacto</a>

Una vez realizados este par de cambios podemos ver como los enlaces de la barra de navegación sí actualizan la página que deben.

8.5.1.- Valores para el atributo target

Como hemos visto, con el atributo target de la etiqueta <A> podemos indicar el nombre del frame que deseamos que actualice ese enlace. Sin embargo, no es este el único valor que podemos aplicarle al atributo. Tenemos algunos valores adicionales que podemos asignar a cualquier enlace en general.

_blank Para hacer que ese enlace se abra en una ventana a parte. Nuestros ejemplos en este manual se suelen abrir en una ventana a parte, colocando este valor en el target de los enlaces que llevan a los ejemplos.

_self Se actualiza el frame donde está situado el enlace. Es el valor por defecto.

_parent El enlace se actualiza sobre su padre o sobre la ventana que estamos trabajando, si es que no hay un padre.

_top La página se carga a pantalla completa, es decir, eliminando todos los frames que pudiera haber. Este atributo es muy importante porque si colocamos en nuestra página con frames un enlace a unapágina externa, se abriría en uno de los frames y se mantendrían visibles otros frames de la página,

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 73 / 108

haciendo un efecto que suele ser poco agradable, porque parece que están evitando que nos escapemos.

La sintaxis de uno de estos valores de atributos colocados en un enlace sería la siguiente.

<A href="http://www.guiarte.com" target="_top">Acceder a guiarte.com</A>

Artículo por Miguel Angel Álvarez

8.6.- Frames - Anidar framesExplicamos como se crean estructuras con frames más complejas: anidación de frames.

Para crear estructuras de marcos en las que se mezclen las filas y las columnas debemos anidar etiquetas <FRAMESET>. Empezando por la partición de frames más general, debemos colocar dentro las particiones de frames más pequeñas. La manera de indicar esto se puede ver fácilmente con un ejemplo.

Los pasos para definir la anidación se pueden encontrar a la derecha.

Los distintos frames vienen numerados con el ordenen el que se escriben en el código.

En la imagen se puede ver el resultado final acompañada de la representación sobre la manera de definirlos. En primer lugar definimos una estructura de frames en dos columnas y dentro de la primera columna colocamos otra parcición de frames en dos filas. El código necesario es el siguiente.

<frameset cols="200,*"> <frameset rows="170,*"> <frame src="pagina1.html"> <frame src="pagina2.html"> </frameset> <frame src="pagina3.html"> </frameset>

Podemos ver el ejemplo en una página a parte.

Nota: hemos colocado un margen en cada una de las líneas de esta definición de frames para conseguir un

código más entendible visualmente. Estos márgenes no son en absoluto necesarios, simplemente nos sirven para

ver en qué nivel de anidación nos encontramos.

El ejemplo anterior se puede complicar un poco más si incluimos más particiones. Vamos a ver algo un poco más complicado para practicar más con las anidaciones de frames.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 74 / 108

Los pasos para definir la anidación se pueden encontrar a la derecha.

Los distintos frames vienen numerados con el ordenen el que se escriben en el código.

En la imagen se observa que el primer frameset a definir se compone de dos filas. Posteriormente, dentro de la segunda fila del primer frameset, tenemos otra partición en dos columnas, dentro de las que colocamos un tercer nivel de frameset con una definción en filas en los dos casos. El código se puede ver a continuación.

<frameset rows="60,*"> <frame src="pagina1.html"> <frameset cols="200,*"> <frameset rows="*,150"> <frame src="pagina2.html"> <frame src="pagina3.html"> </frameset> <frameset rows="*,60"> <frame src="pagina4.html"> <frame src="pagina5.html"> </frameset> </frameset> </frameset>

Podemos ver el ejemplo en una página a parte.

Hasta aquí hemos visto la parte más básica de la creación de frames. En los siguientes capítulos podremos aprender a configurar los marcos para variar su apariencia y, entre otras cosas, eliminar las barras que separan cada uno de los distintos frames.

Artículo por Miguel Angel Álvarez

8.7.- Frames - Atributos avanzadosLista de atributos de las etiquetas frameset y frame con las que podemos configurar la apariencia y características de los marcos.

Aparte de la creación de los marcos propiamente dicha, existen muchos atributos con los que configurar su apariencia. Para ello, tanto la etiqueta <frameset> como <frame> admiten diversos atributos que permiten especificar la forma de elementos como los bordes de los frames, el margen,la existencia o no de barras de desplazamiento, etc.

8.7.1.- Atributos para la etiqueta <frameset>

Ya hemos conocido el atributo cols y rows, que sirven para indicar si la distribución en marcos se hará horizontalmente o verticalmente. Sólo se puede utilizar uno de ellos y se iguala a las dimensiones de cada uno de las divisiones, separadas por comas.

border="número de pixels" Permite especificar de manera global para todo el frameset el número de pixels que ha de tener el borde de los frames.

bordercolor="#rrggbb"

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 75 / 108

Con este atributo podemos modificar el color del borde de los frames, también de manera global a todo el frameset.

frameborder="yes|no|0" Sirve para mostrar o no el borde del frame. Sus posibles valores son "yes" (para que se vean los bordes) y "no" o "0" (para que no se vean). En la práctica elimina el borde, pero permanece una línea de separación de los frames.

framespacing="número de pixels" Para determinar la anchura de la línea de separación de los frames. Se puede utilizar en Internet Explorer y junto con el atributo frameborder="0" sirve para eliminar los bordes de los marcos.

8.7.2.- Atributos para la etiqueta <frame>

Para esta etiqueta hemos señalado en capítulos anteriores los atributos src, que sirve para indicar el archivo que contiene el marco y name, para darle un nombre al marco y luego dirigir los enlaces hacia el. Veamos ahora otros atributos disponibles.

marginwidth="número de pixels" Define el número de pixels que tiene el margen del frame donde se indica. Este margen se aplica a la página que pretendemos ver en ese marco, de modo que si colocamos 0, los contenidos del página en ese marco estarán pegados por completo al borde del margen y si indicamos un valor de 10, los contenidos de la página estarían separados del borde 10 pixels.

marginheight="número de pixels" Lo mismo que el anterior atributo, pero para el margen vertical.

scrolling="yes|no|auto" Sirve para indicar si queremos que haya barras de desplazamiento en los distintos marcos. Si indicamos "yes" siempre saldrán las barras, si indicamos "no" no saldrán nunca y si colocamos "auto" saldrán sólo si son necesarias. Auto es el valor por defecto.

Consejo: hay que tener cuidado si eliminamos los bordes de los frames, puesto que la página web puede tener

dimensiones distintas dependiendo de la definición de pantalla del visitante. Si el espacio de la ventana se ve

reducido, podría verse reducido el espacio para el frame y puede que no quepan los elementos que antes si que

cabían y si hemos eliminado las barras de desplazamiento puede que el visitante no pueda ver todo el contenido

del marco.

Este mismo consejo se puede aplicar al redimensionamiento de frames, que veremos en el siguiente atributo. Si

hacemos que los marcos no sean redimensionables probablemente tengamos una declaración de frames

demasiado rígida, que puede verse mal en algún tipo de pantalla.

noresize Este atributo no tiene valores, simplemente se pone o no se pone. En caso de que esté presente indica que el frame no se puede redimensionar. Como hemos podido ver, al colocar el ratón sobre el borde de los marcos sale un cursor que nos señala que podemos mover dichoborde y redimensionar así los frames. Por defecto, si no colocamos nada, los marcos si se pueden redimensionar.

frameborder="yes|no|0" Este atributo permite controlar la aparición de los bordes de los frames. Con este atributo igualado a "0" o "no" los bordes se eliminan. Sin embargo, quedan los feos márgenes en el borde. Por lo que hemos podido comprobar funciona mejor en Netscape que en Internet Explorer. De todos modos, tenemos una nota un poco más adelante para explicar los frames sin bordes.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 76 / 108

Nota: los atributos de frames no funcionan siempre bien en todos los navegadores. Es recomendable que

hagamos un test sobre lo que estamos diseñando en varios navegadores para comprobar que nuestros frames se

ven bien en todas las plataformas.

bordercolor="#rrggbb" Permite especicicar el color del borde del marco.

Referencia: Tenemos un taller de HTML en el que explicamos como realizar un frame sin bordes que se vea

bien en los navegadores más habituales.

Artículo por Miguel Angel Álvarez

8.8.- Ventajas e inconvenientes del uso de framesVeamos una serie de cosas buenas y malas derivadas del uso de marcos o frames a la hora de diseñar y utilizar un sitio web.

El diseño con frames es un asunto bastante controvertido, ya que distintos diseñadores tendrán unas u otras opiniones.

Referencia: Si deseas saber qué son los frames y cómo crearlos consulta los capítulos de Frames de nuestro

manual de HTML.

En mi caso, pienso que es preferible no utilizarlos, aunque eso depende del tipo de sitio web que estés construyendo, ya que en algunos casos sí que sería muy adecuado su uso.

Voy a colocar unas ventajas e inconvenientes del uso de marcos (frames). Siempre es a mi entender,otros pueden tener otras opiniones.

8.8.1.- Ventajas de usar frames

• La navegación de la página será más rápida. Aunque la primera carga de la página sería igual, en sucesivas impresiones de páginas ya tendremos algunos marcos guardados , que notendrían que volverse a descargar.

• Crear páginas del sitio sería más rápido. Como no tenemos que incluir partes de código como la barra de navegación, título, etc. crear nuevas páginas sería un proceso mucho más rápido.

• Partes de la página (como la barra de navegación) se mantienen fijas y eso puede ser bueno, para que el usuario no las pierda nunca de vista.

• Estas mismas partes visibles constantemente, si contienen enlaces, pueden servir muy bien para mejorar la navegación por el sitio.

• Mantienen una identidad del sitio donde se navega, pues los elementos fijos conservan la imagen siempre visible.

8.8.2.- Inconvenientes de usar frames

• Quitan espacio en la pantalla. El espacio ocupado por los frames fijos se pierde a la hora de hacer páginas nuevas, porque ya está utilizado. En definiciones de pantalla pequeña o dispositivos como Palms, este problema se hace más patente.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 77 / 108

• Fuerzan al visitante a entrar por la declaración de frames. Si no lo hacen así, sólo se vería una página interior sin los recudros. Estos recuadros podrían ser insuficientes para una buena navegación por los contenidos y podrían no conservar una buena imagen corporativa.

• La promoción de la página sería, en principio, más limitada. Esto es debido a que sólo se debería promocionar la portada, pues si se promocionan páginas interiores, podría darse en caso de que los visitantes entrasen por ellas en lugar de por la portada, creandose el problema descrito en el punto anterior.

• A mucha gente les disgustan pues no se sienten libres en la navegación, pues entienden que esas partes fijas están limitando su movilidad por la web. Este efecto se hace más patente si la página con frames tiene enlaces a otras páginas web fuera del sitio y, al pulsar un enlace, se muestra la página nueva con los marcos de la página que tiene frames.

• Algunos navegadores no los soportan. Esto no es muy habitual, pero si estamos haciendo una página que queramos que sea totalmente accesible deberíamos considerarlo importante.

• Los bookmarks o favoritos no funcionan correctamente en muchos casos. Si queremos incluir un favorito a una página de un frame que no sea la portada podemos encontrar problemas.

• Puede que el botón de atrás del navegador no se comporte como deseamos.

• Si quieres actualizar más de un frame con la pulsación de un enlace deberás utilizar Javascript. Además los scripts se pueden complicar bastante cuando se tienen que comunicar varios frames entre si.

8.8.3.- Conclusión

El trabajo con frames puede ser más o menos indicado dependiendo de las características de la página a desarrollar, es tu tarea saber si en tu caso debes utilizarlos o no.

Artículo por Miguel Angel Álvarez

8.9.- Etiqueta IframeExplicamos detenidamente la etiqueta IFRAME de HTML y todos sus atributos, con algún ejemplo de uso.

Los frames (frame en inglés significa marco) son unas herramientas que han tenido una historia dilatada en el desarrollo de páginas web con HTML. De ser una etiqueta no estándar ha pasado a ser soportada por todos los navegadores y formar parte de las especificaciones de HTML. Por otra parte, el frame siempre ha sido una utilidad para hacer páginas web de uso, cuando menos, controvertido, puesto que tiene ciertas desventajas que muchas veces son más importantes que la indudable practicidad.

En cualquier caso, en DesarrolloWeb.com ya hemos hablado suficiente sobre la etiqueta Frame y hemos tratado ampliamente sus ventajas e inconvenientes. En este artículo vamos a hablar de una etiqueta "hermana" que es a día de hoy mucho más usada, porque resulta más útil y menos problemática que los propios frames. Se trata de iframe, un tag incluido en las especificaciones de HTML 4.0.

Nota: iframe viene de inline frame, pero en castellano a veces se les llama frames flotantes

Referencias sobre la etiqueta frame:

Frames en HTML Ventajas e inconvenientes del uso de frames Frames - Explicación básica Control de frames en Javascript Frames sin bordes Frames - Atributos avanzados

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 78 / 108

Actualizar dos frames con un solo enlace Crear variables o funciones globales a todos los frames Frames - Una página en cada marco ...

En concreto iframe sirve para crear un espacio dentro de la página donde se puede incrustar otra web. Es un cuadrado cuyas dimensiones debe especificar el desarrollador en la propia etiqueta iframe, que tiene asociada una página web que se carga en dicho espacio. Esa página web tendrá sus propios contenidos y estilos, independientes del contexto donde se está mostrando. Además será perfectamente funcional: si tiene enlaces se mostrarán en ese mismo espacio y si tiene scripts o aplicaciones dentro se ejecutarán también de manera autónoma en el espacio reservado al iframe.

8.9.1.- Ejemplos de uso de iframe

Iframe se utiliza en muchos contextos. Dentro de un iframe podemos mostrar contenidos de otras páginas, como si estuvieran en la nuestra, por lo que sirven para ejemplos como:

• Códigos de banner, que se invocan por medio de un iframe pidiendo los datos del banner generalmente a un servidor de banners que puede estar en otra red.

• Visualizar contenidos de terceros, como bloques de noticias o novedades que ofrecen en otras webs.

• Interfaces de usuario, en el que ciertas actividades se realizan de forma autónoma y el procesamiento está en otra página web.

8.9.2.- Uso de iframe frente a frame

Actualmente la etiqueta iframe se utiliza más a menudo que la etiqueta frame, porque no da tantos problemas como esta. La diferencia principal está basada en que la etiqueta iframe no necesita una declaración de los espacios de los frames o frameset, porque se incrusta en el código HTML de la página. El iframe, por tanto, no provoca problemas de navegación, como los que ocurren con los frames normales si no se entra correctamente a través del frameset.

También, ya que no existe el frameset en los iframe, no adolece de los problemas del uso de frames,sobretodo a la hora en que la página es indexada en los motores de búsqueda.

Por decirlo de alguna manera, trabajar con iframe o frames flotantes es tan sencillo como hacer unatabla, que se codifica dentro de la maqueta HTML, con su espacio reservado dentro de la página. Así, la única diferencia con respecto a una tabla es que el contenido del iframe se extrae de otra página web.

8.9.3.- Construcción de la etiqueta iframe

Como decimos, el iframe se coloca directamente en el código HTML, en el lugar donde queremos que aparezca.

Se colocaría con un código como este:

<iframe src="pagina_fuente.html" width=290 height=250>Texto para cuando el navegador no conoce la etiquetaiframe</iframe>

Como se ve, los atributos principales de iframe son la página web que se va a mostrar en el espacio y el ancho y alto del recuadro que reservemos para el frame flotante.

Como se puede ver, la etiqueta iframe tiene su correspondiente etiqueta de cierre. Todo el texto quecoloquemos entre la etiqueta de inicio y la de cierre es texto alternativo, que sólo se mostrará en caso que el navegador del visitante no acepte la etiqueta iframe.

8.9.4.- Todos los atributos de iframe

Estos serían los atributos disponibles para la etiqueta iframe:

src: Para indicar la página web que se mostrará en el espacio del frame flotante.

width: Para definir la anchura del recuadro del iframe

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 79 / 108

height: Para definir la altura del iframe

name: Para especificar el nombre del frame, que podemos utilizar luego para referirnos a él con el target de los links, o mediante javascript.

id: Para indicar el identificador del iframe, y poder referirnos a él desde javascript.

frameborder: para definir si queremos o no que haya un borde en el frame. Los valores posibles son 0 | 1. frameborder=0 indicaría que no queremos borde y frameborder=1 que sí.

scrolling: indica si se quiere que aparezcan barras de desplazamiento para ver los contenidos del iframe completo, en el caso que no aparezcan en el espacio reservado para el iframe. Los valores posibles son: yes | no | auto. El valor "yes" es para que aparezcan siempre las barras de desplazamiento o barras de scroll, "no" sirve para que no aparezcan nunca y "auto" es para que aparezcan sólo cuando son necesarias (es el valor por defecto)

marginwidth: Para definir el margen a izquierda y derechar que debe tener la página que va dentro del iframe, con respecto al borde. Este margen va en pixels, pero prevalecerá el margen quepueda tener asignada la página web que mostremos en el frame flotante.

marginheight: lo mismo que marginwidth, pero en este caso para el tamaño del margen por la parte de arriba y abajo.

margin: para especificar alineación del frame, igual que se especifica para las imágenes.

style y class: los atributos para definir el aspecto del iframe por medio de hojas de estilo css.

Para acabar, aquí vemos otro ejemplo de iframe con unos cuantos atributos más:

<iframe name=miframeflotante src="colabora.htm" width=400 height=550 frameborder="0" scrolling=yes marginwidth=2 marginheight=4 align=left>Tu navegador no soporta frames!!</iframe>

Artículo por Miguel Angel Álvarez

Parte 9:

Lo nuevo en HTML 4.0El estándar HTML 4.0 trajo consigo diversas etiquetas que implementan nuevos elementos

HTML, que podemos incorporar en páginas web.

9.1.- Las nuevas etiquetas de HTML 4.0En este artículo veremos estas nuevas etiquetas del estandar HTML 4.0.

9.1.1.- Introducción

Cuando Internet empezaba su imparable escalada, la versión del estándar HTML que circulaba era la 2.0, el cuál siguen soportando los navegadores más actuales. Pero las herramientas de que se disponía no ofrecían un control preciso de los documentos.

Pero como por aquel entonces el objetivo de Internet estaba fundamentalmente orientado al ámbitoacadémico y no al de diseño, no se le dio demasiada importancia a la cuestión de lanzar una versión

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 80 / 108

mejorada del estándar hasta que Netscape, que por aquel entonces era la empresa líder en el sector, tomó la iniciativa de incluir nuevas etiquetas pensadas para mejorar el aspecto visual de las páginas web.

Por este motivo el IETF (Internet Engineering Task Force) www.ietf.cnri.reston.va.us, o lo que es lo mismo, Grupo de Trabajo en Ingeniería de Internet, comenzó a elaborar nuevos estándares, los cuales dieron como fruto el HTML 3.0, que resultó ser demasiado grande para las infraestructuras que había en ese momento, lo cual dificultó su aceptación.

Así pues, una serie de compañías (entre las que estaban Netscape, Sun Microsystems o Microsoft, entre otras), se unieron para crear lo que hoy se denomina W3C (o lo que es lo mismo, Consorcio para la World Wide Web), que fue fundado en octubre de 1.994 para conducir a la World Wide Web a su máximo potencial, desarrollando protocolos de uso común, para normalizar el uso de la web entodo el mundo.

El compromiso del W3C de encaminar a la Web a su máximo potencial incluye promover un alto grado de accesibilidad para las personas con discapacidades. El grupo de trabajo permanente Web Accessibility Initiative (WAI, Iniciativa para la Accesibilidad de la Red), en coordinación con organizaciones alrededor de todo el mundo, persigue la accesibilidad de la Web a través de cinco áreas de trabajo principales: Tecnología, directrices, herramientas, formación, difusión, e investigación y desarrollo.

De esta iniciativa nació el borrador de HTML 3.2 y en su versión definitiva se introdujeron cambios esenciales para las posibilidades que empezaban a ofrecer los navegadores, estas inclusiones fueron las tablas, los applets, etc.

En julio de 1.997 nace el borrador del HTML 4.0 y finalmente se aprueba en diciembre de 1.997 este estándar incluía como mejoras los marcos (frames), las hojas de estilo y la inclusión de scripts en páginas web, entre otras cosas.

Artículo por Christian Santalucía

9.2.- Las nuevas etiquetas de HTML 4.0 (1)Veamos una serie de etiquetas para formatear el texto de las páginas HTML, con una breve descripción de cada una de ellas.

Entre el estándar del HTML 3.2 al 4.0 se introdujeron ocho nuevas etiquetas de las cuales daremos una breve explicación.

9.2.1.- <Q>... </Q>

Las etiquetas <Q> y </Q> actúan de forma muy parecida a <BLOCKQUOTE> pero con la particularidad de que añade un sangrado en párrafos más pequeños y sin necesidad de romper el párrafo.

Según el W3C, la etiqueta <BLOCKQUOTE> es para añadir sangrados largos y <Q>, para sangrados más pequeños, sin necesidad de romper el párrafo.

Nota: En el HTML 4.0 es imprescindible poner la etiqueta de apertura y la de clausura <Q>.... </Q>.

9.2.2.- <ACRONYM>... </ACRONYM>

Las etiquetas <ACRONYM>... </ACRONYM>, indican que hay un acrónimo en el texto. Un acrónimo es un pequeño texto que ayuda a explicar la estructura del texto una frase.

9.2.3.- <INS>... </INS> y <DEL>... </DEL>

Utilice < INS>...</INS> para marcar las partes de un documento que se han agregado desde la

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 81 / 108

versión pasada del documento. <DEL>... </ DEL> marca de manera similar un texto de un documento que se ha suprimido desde la versión anterior.

9.2.4.- <COLGROUP>... </COLGROUP>

Se utiliza para tener un mejor control sobre un el formato de las tablas especificando las características que comparten como: anchura, altura y alineación. Cada tabla debe tener por lo menos un <COLGROUP>; sin especificar ninguna característica de < COLGROUP >. HTML 4.0 asume que una tabla contiene un solo grupo de columnas y que este contiene todas las columnas de una tabla. Por ejemplo, esto nos serviría para crear una tabla con una celda en la que puede incluirse una descripción y después seguido de check boxes para seleccionar las opciones deseadas.

Código: <TABLE> <COLGROUP span="10" width="30"> <COLGROUP span="1" width="0*"> <THEAD> <TR>... </ TABLE>

De esta forma, <COLGROUP> proporciona un formato más agradable a los check boxes sin necesidad de especificar, propiedades identicas para cada fila.

La etiqueta de inicio < COLGROUP >, requiere otra de cierre. Con el que obtenemos: (en Nestcape sólo se verá la tabla, no el botón).

Artículo por Christian Santalucía

9.3.- Las nuevas etiquetas de HTML 4.0 (2)Explicación de las nuevas etiquetas de HTML 4.0 para uso en formularios.

Estamos haciendo un repaso de las nuevas etiquetas disponibles en el HTML 4.0. Esta información forma parte de una serie de artículos que comenzó en Las nuevas etiquetas de HTML 4.0 y se dio continuidad en el la segunda entrega, bajo el título Las nuevas etiquetas de HTML 4.0 (1).

En el presente texto vamos a hablaros sobre las etiquetas del HTML 4.0 relacionadas con la creación de formularios, que muchas veces son desconocidas, pero no por ello dejan de ser interesantes. El paseo por esta nueva serie de etiquetas del HTML viene de la mano de Luciano Moreno y con revisión en 2011 de Miguel Angel Alvarez.

9.3.1.- <FIELDSET>... </FIELDSET>

Hasta ahora, no disponíamos de ninguna manera de agrupar visualmente varios controles, si no echábamos mano de elementos que no son del formulario, como tablas o capas (divisiones o elementos DIV, como prefieras llamarles). Ahora, si encerramos una parte de un formulario dentro de la etiqueta FIELDSET, se mostrara un rectángulo alrededor de los campos englobados por dicha etiqueta.

Además, podemos indicar un título en el rectángulo creado por FIELDSET y para ello utilizamos la etiqueta LEGEND, que admite el parámetro align="left / center / right / top / bottom", lo que nos permite alinear el título horizontal y verticalmente.

Para aclarar el aspecto de la agrupación de campos con FIELDSET podemos ver el siguiente efecto obtenido al agrupar un par de elementos de formulario.

Datos personales Nombre: Edad:

Nota: La única pega es que deberemos introducir el conjunto en una celda de tabla o una capa DIV o cualquier

otro tipo de contenedor. A ese contenedor podemos asignarle un ancho determinado, ya que si no lo hacemos así,

el recuadro abarcara todo el ancho de pantalla disponible. Otra posibilidad es aplicar estilos CSS sobre la etiqueta

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 82 / 108

FIELDSET, en el caso que sepamos usar las Hojas de Estilo en Cascada.

Ejemplo:

<form action="#" method="post" enctype="text/plain" name="miform"> <table width="200"> <tr> <td> <fieldset> <legend align="left"><font color="red">Caja de texto</font></legend> pon tu nombre: <input type="text" size="15"> </fieldset> </td> </tr> <table> </form>

Referencia: Para los interesados, cabe señalar que en DesarrolloWeb.com existe un artículo que explica estas

etiquetas desde otro punto de vista y con las palabras de otro autor, que se puede leer en el link Etiquetas

FIELDSET y LEGEND de formularios.

9.3.2.- <LABEL>... </LABEL>

Hasta no hace mucho los textos que ponemos al lado de los campos de formulario no estaban asociados a dichos campos. Es decir, el texto que colocamos al lado de un elemento de formulario, para especificar qué debe escribir el usuario en el campo, no tiene ninguna relacion real con el propio elemento de formulario.

Por ejemplo, si tenemos un código como este:

Dirección: <input type="text" name="direccion">

El texto "Dirección" no está asociado para nada con el campo INPUT. Por ello, al pulsar sobre el texto "Dirección" no ocurre nada. Esto es así también con otros campos de formulario, como las cajas de checkbox o botones de radio.

<input type="checkbox" name="interesado"> Estoy interesado

Si pulsamos sobre el texto que hay al lado del campo de confirmación "Estoy interesado", ¡no sucede nada! Pero ahora, con la utilización de la etiqueta LABEL podemos conseguir que, haciendo clic en el texto "Estoy interesado", el control checkbox cambie de estado.

Ejemplo:

<form action="#" method="post" enctype="text/plain" name="un ejemplo más"> <label> <input type="checkbox" name="email"> Recibir email </label> </form>

Ese ejemplo de LABEL es perfectamente válido y asocia el texto "Recibir email" al campo checkbox de formulario, de manera que si pulsamos sobre "Recibir email" cambiará el estado del campo checkbox asociado. Sin embargo, en la etiqueta LABEL podemos utilizar un atributo llamado FOR, que sirve para indicar explícitamente a qué campo de formulario se está asociando ese texto. Para ello colocamos como valor del atributo FOR el identificador del campo que estamos asociando a eseLABEL. Esto nos permite una mayor versatilidad a la hora de componer el HTML de nuestra página. Veamos el siguiente ejemplo:

<form><label for="hombre">Hombre</label><input type="radio" name="sexo" id="hombre" value="hombre"><br><label for="mujer">Mujer</label><input type="radio" name="sexo" id="mujer" value="mujer"></form>

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 83 / 108

Si ponemos este ejemplo en marcha, veremos que pulsando en el texto "Hombre" se activa el botón de radio "hombre". Del mismo modo, si pulsamos sobre el texto "Mujer" se activará la opción del radio button "mujer". Podemos ver ese pequeño código en marcha a continuación:

Hombre Mujer

9.3.3.- <BUTTON>... </BUTTON>

A partir de la implementación de los estándares HTML 4.0 contamos con varias etiquetas nuevas para construir formularios, siendo BUTTON una de ellas, bastante útil por cierto. La pega es que las versiones de 4 de Nestcape se lanzaron antes de estas implementaciones, por lo que estas nuevas etiquetas sólo se pueden visualizar correctamente con Internet Explorer 4 y superiores. BUTTON se encuentra ampliamente soportada en la actualidad.

Esta etiqueta proporciona un método único para la implementación de cualquier tipo de botón de formulario. Sus principales atributos son:

• type="tipo", que puede tomar los ya conocidos valores submit (por defecto), reset y button. • name="nombre", que asigna un nombre identificador único al botón. • value="texto", que define el texto que va a aparecer en el botón.

La principal ventaja que aporta estas etiquetas es que ahora vamos a poder introducir dentro de ellas cualquier elemento de HTML, como imágenes y tablas.

Podemos ver un ejemplo a continuación.

<form action="#" method="post" enctype="text/plain" name="miform">

<button name="boton_1" type="button"> <table width="10" cellspacing="0" cellpadding="2" border="1"> <tr> <td>uno</td> <td>dos</td> </tr> <tr> <td>tres</td> <td>cuatro</td> </tr> </table> </button> </form>

Referencia: Si deseas aprender algo más sobre la etiqueta BUTTON te recomendamos leer el artículo Botones

HTML con la etiqueta BUTTON.

Artículo por Luciano Moreno

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 84 / 108

Parte 10:

Sonido en HTMLVeremos diversos modos de colocar un sonido de fondo en páginas web y los tipos de archivo

sonoro que son adecuados para páginas web.

10.1.- Sonido en HTML I, introducciónEste es el primer capítulo de un manuál de el sonido en la web.

En su corta pero rápida vida, las páginas web han pasado a ser no ya unos meros documentos textuales a los que se puede acceder por Internet, sino unas verdaderas presentaciones multimedia,que combinan textos con imágenes, sonidos, videos y elementos de realidad virtual.

Si el primer paso que se dio fue añadir imágenes a las páginas web, tanto estáticas como dinámicasGIF animados), el siguiente paso consistió en introducir sonidos en las mismas, consiguiendo con ellos el apelativo de �multimedia�. Y nos referiremos en lo sucesivo cuando hablemos de sonido tanto a sonido sintetizado como a verdaderas grabaciones de audio, de calidad muy elevada.

Ahora bien, aunque los navegadores han sido capaces de interpretar los ficheros de sonido adecuados desde hace ya algunas versiones, es cierto que la aplicación de sonidos a las páginas web ha estado limitada desde siempre por el ancho de banda necesario en las conexiones a Internetpara poder descargar de forma adecuada dichos ficheros, debido al tamaño �excesivo� de los mismos.

Otra de las limitaciones importantes que encontramos a la hora de incluir ficheros de sonido en nuestras páginas es la diferentes implementación que hacen de ellos los navegadores web más usados. En efecto, no sólo deberemos usar etiquetas HTML distintas para Internet Explorer que para Netscape Navigator, sino que a veces la forma misma de interpretar el sonido puede diferir de uno a otro navegador.

Por último, hay que destacar que a la hora de incluir ficheros de audio en nuestras páginas debemos ser conscientes que muchos de los formatos usados, sobre todo en grabaciones de calidad,precisan un plugin o programa especial para su reproducción en el navegador cliente. Y si es cierto que actualmente hay ciertos plugins se han transformado casi en un estándar en Internet (como el de Real Audio o el de MP3), hay otros posibles que no es normal tener instalados, por lo que si incluimos ficheros de esos tipos obligaremos al usuario a tener que instalarlos, cosa a la que suele ser reacio.

Artículo por Luciano Moreno

10.2.- Sonido en HTML II, características del sonido digitalConceptos básicos del sonido digital.

Vamos a estudiar algunos de los conceptos básicos del sonido digital, aunque sin entrar en demasiadas consideraciones técnicas. Para aquellos que deseen más información, existen multitud de sitios web que estudian específicamente el sonido digital y el hardware necesario para su

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 85 / 108

captura y reproducción.

El sonido tiene una naturaleza ondulante, es decir, se propaga en forma de ondas analógicas desde el objeto que lo produce. Las características propias de cualquier sonido (desde el producido por unautomóvil hasta una bella canción), sus diferentes tonos y notas dependen precisamente de las propiedades físicas de las ondas que lo forman.

Para poder viajar desde el emisor al receptor, las ondas de sonido precisan de un medio físico de soporte, ya sea el aire de la atmósfera, al agua, etc. Tanto es así que en el espacio exterior, donde no hay medio físico soporte, no se pueden transmitir sonidos.

Si representamos en un gráfico un sonido complejo, obtendremos la siguiente figura:

En la que podemos apreciar los diferentes valores de onda que va tomando el sonido.

Todos sabemos que los equipos informáticos no trabajan con datos analógicos, sino que lo hacen con datos digitales, formados por estados binarios. Por lo tanto, para representar un sonido, desde el punto de vista informático, es preciso capturarlo en una naturaleza binaria, para lo que se hace un muestreo del mismo, tomando determinados valores de las ondas y representando dichos valores en formato digital. En cada captura obtendremos un punto de la gráfica anterior.

Pero, ¿Cuántas muestras deberemos tomar?. Este es el verdadero meollo de la cuestión, ya que cuantas más muestras tomemos, más fiel será el sonido capturado respecto al original, con lo que tendrá más calidad.

Para medir el número de capturas utilizamos la frecuencia del muestreo. Como un Herzio es un ciclo por segundo, la frecuencia de una captura en Herzios representa el número de capturas que realizamos en un segundo. Así, una frecuencia de muestreo de 20 KHz (20 Kilo Herzios = 20000 Herzios) realizará 20000 capturas de puntos cada segundo.

El oído humano es captar de captar la asombrosa cantidad de 44000 sonidos por segundo, es decir, 44 KHz. Por lo tanto, para que un sonido digital tenga suficiente calidad deberá estar basado en una frecuencia similar a ésta. En general, el valor estándar de captura de sonidos de calidad es de 44,1 Khz (calidad CD), aunque hay capturadoras de sonido profesionales que llegan hasta los 100 Khz, con objeto de obtener un mayor número de puntos sobre la muestra, consiguiendo una calidad máxima.

Otro concepto del que habréis oído hablar en torno al sonido digital es el número de bits de una tarjeta de sonido. El origen de esta magnitud es que, a la hora de capturar el sonido, no sólo es importante el número de muestreos tomados, sino también la cantidad de información capturada encada uno de esos muestreos.

Una vez capturado el sonido, para su posterior reproducción en un equipo informático es necesario mandar una serie de impulsos o posiciones a los altavoces para que creen el sonido a partir de ellos. ¿Cómo?. Bien, produciendo a partir de esas posiciones movimientos de las membranas de los altavoces, movimientos que transforman de nuevo el sonido digital en analógico, estado en el que es capaz de viajar por el aire y producir los estímulos necesarios en nuestros tímpanos, con lo que somos capaces de percibir el sonido �original�. Cuantas más posiciones de información se envíen a

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 86 / 108

los altavoces, mejor calidad tendrá el sonido reproducido.

Con estas bases, se define el número de bits de un sonido digital como el número de impulsos de información (posiciones) que se envían a los altavoces para su transformación en ondas analógicas.

Las tarjetas de sonido actuales trabajan normalmente con 8 bits de información, con los que se pueden obtener 28=256 posiciones (ceros y unos binarios), aunque hay algunas de mayor calidad que son capaces de trabajar con capturas de 16 bits, que originan 216 = 65536 posiciones de información.

Como dato de referencia, los CDs actuales están basados en sonido grabado a 44 Khz y con un tamaño de muestra de 16 bits. Estas medidas se conocen con el nombre de sonido de calidad CD.

Por último, una vez que el sonido digital llega a nuestros oídos, impactan contra los tímpanos, verdaderas membranas especializadas que vuelven a transformar las ondas analógicas en impulsos eléctricos, que viajan hasta nuestro cerebro, donde son interpretados y producen las sensaciones auditivas que todos conocemos.

Una excepción al sonido anteriormente descrito, que podemos denominar "de datos de sonido", es el sonido sintetizado, en el que no se realiza ninguna captura de ondas sonoras reales, sino que es sonido totalmente digital, generado directamente en el equipo informático por en reproductor digital conocido con el nombre de MIDI (Music Instrument Digital Interface). Cuando se desea reproducir una nota musical concreta, se envía un comando MIDI al chip sintetizador, que se encarga de traducir ese comando en una vibración especial que produce la nota. Mediante este sistema es posible crear melodías bastante aceptables, aunque nunca tendrán la calidad ni riqueza de una onda sonora natural capturada.

Artículo por Luciano Moreno

10.3.- Sonido en HTML (III)Cuáles son los ficheros que podemos ejecutar desde el navegador y cuales desde un programa específico.

10.3.1.- Formatos de sonido

A la hora de incluir ficheros de sonido en nuestras páginas web debemos distinguir entre los que pueden ser directamente ejecutados por el navegador y aquellos que deben ser abiertos por un programa propio, que deberá tener el usuario instalado en su equipo para poder reproducir el fichero.

De forma general, podemos incluir en la web los siguietes tipos de ficheros de audio.

• WAV (Wave form Audio File format): formato típico de la casa Windows, de elevada calidad, usado en las grabaciones de CDs, que trabaja a 44 Khz y a 16 bits. Consta básicamente de tres bloques: el de identificación, el que especifica los parámetros del formato y el que contiene las muestras. Su principal inconveniente es el elevado peso de los ficheros, por lo que su uso queda limitado en Internet a la reproducción de ruidos o frases cortas. La extensión de estos ficheros es .wav. Es soportado por Internet Explorer y Netscape 4x.

• AU (Audio File format): formato creado por la casa Apple para plataformas MAC, cuyos ficheros se guardan con la extensión .au

• MIDI formato de tabla de ondas, que no guardan el sonido a reproducir, sino un código que nuestra tarjeta de sonido tendrá que interpretar. Por ello, este tipo de ficheros no puede almacenar sonidos reales, como voces o música rela grabada; sólo puede contener sonidos almacenables en tablas de ondas. Como contarpartida, los ficheros MIDI, que se guardan con extensión .mid, son de pequeño tamaño, lo que los hace idóneos para la web. Es soportado por Internet Explorer y Netscape 4x.

• MP3 (MPEG 1 Layer 3): desarrollado por el MPEG (Moving Picture Expert Group), obtiene una alta compresión del sonido y una muy buena calidad basándose en la eliminación de los componentes del sonido que no estén entre 20 hz y 16 Kh (los que puede oir el ser humano

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 87 / 108

normal). Tiene en cuenta el sonido envolvente (surround) y la extensión multilingüe, y guarda los ficheros con la extensión .mp3, y permite configurar el nivel de compresión, consiguiéndose calidades similares a las del formato WAVE pero con hasta 10 veces menos tamaño de fichero. Es soportado directamente sólo por Internet Explorer 5.5 y superiores.

• MOD especie de mezcla entre el formato MIDI y el formato WAV, ya que por un lado almacena el sonido en forma de instrucciones para la tarjeta de sonido, pero por otro puede almacenar también sonidos de dintrumentos musicales digitalizados, pudiendo ser interpretados por cualquier tarjeta de sonido de 8 bits. No es un formato estándar de Windows, por lo que su uso es más indicado para sistemas Mac, Amiga o Linux. La extensiónde los ficheros es .mod

• µ-Law Format de calidad similar al formato WAV, es original de las máquinas NeXt, y guarda sus ficheros con la extensión .au

• Real Audio de calidad media, aunque permite ficheros muy comprimidos, que guarda con extensión .rmp o .ra. Para su reproducción hace falta tener instalado el plugin Real Audio.

A la hora de trabajar con estos formatos de sonido, deberemos tener en cuenta las limitaciones en su uso, ya que muchos de ellos no pueden ser reproducidos más que en sistemas operativos concretos, y aún así, con plugins o programas específicos.

En busca de la compatibilidad, si usamos Windows como sistema operativo conviene usar para ficheros musicales a reproducir directamente en el navegador los formatos WAV y MIDI, que son losmás compatibles.

En cambio, si lo que deseamos es poder brindar a nuestros visitantes la opción de navegar con música ejecutable desde un programa externo, lo mejor es usar ficheros en formato MP3, ya que enla actualidad la mayoría de los navegantes tienen instalado en su equipo algún programa reproductor adecuado, pudiendo valer desde software incluido en Windows, como Windows Media Player, hasta aplicaciones esternas, como Winamp. En este caso, bsata colocar un enlace normal en nuestras páginas, apuntando al fichero de sonido.

Como ejemplo, si queremos enlazar en nuestra página un fichero MP3, bastaría con escribir:

<a href="sonidos/mp3.mp3" target="_blank"> Pincha aquí para oir la música. </a>

Que nos da:

Pincha aquí para oir la música

Con esto, al pinchar el usuario el enlace, se lanzará la aplicación que tenga asociada con el tipo de fichero MP3, que dependerá de la configuración interna de cada navegador y usuario.

Un caso especial es Netscape 6x. Casi no admite directamente ningún tipo de formato de sonido incrustado en la página, al no venir configuradas por defecto las aplicaciones o plugins necesarios. Y en el caso de ficheros enlazados, Nestscape 6x suele lanzar su propio reproductor, que suele ser de la casa AOL, precisando para la ejecución una serie de pasos para darse de alta en esa compañiacomo usuario del software.

10.3.2.- Resumiendo

cada usuario tendrá configurada su máquina de forma particular, soliendo prevalecer el último software de sonido instalado, ya que estos programas suelen adueñarse de ciertos tipos de ficheros para su ejecución automática. Entre las apliaciones posibles de ejecución de ficheros de audio, biende forma directa o en forma de plugina para los navegadores, destacan Windos Media Player, Real Player, Winamp, Quick time, etc.

Artículo por Luciano Moreno

10.4.- Sonido en HTML (IV)En este capítulo veremos la manera de incluir los archivos de música en el HTML.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 88 / 108

En este artículo vamos a seguir tratando temas relacionados con el sonido en páginas web, viendo la etiqueta BGSOUND (sonido de fondo) y EMBED (propietaria del antiguo navegador Netscape para embeber distintos contenidos multimedia). Veremos algunos ejemplos de ambas formas de añadir un sonido, ya sea música o cualquier otro tipo de sample en una página web.

Antes de empezar, permitirme recordar que estas cosas se tienen que utilizar con cuidado, porque no a todo el mundo le gusta que las páginas web emitan sonidos durante su visita y tampoco todos los tipos de páginas son adecuadas para tener una banda sonora.

10.4.1.- Incluir sonidos en la web

Una vez elegidos nuestros ficheros de sonido, es hora de incluirlos en nuestra página web. Lógicamente, para que un fichero de audio pueda ser reproducido por un navegador es necesario que su máquina tenga incluida una tarjeta de sonido y un par de altavoces.

Existen diversas formas de incluir un fichero de audio en una página, formas que dependen del tipode fichero y del navegador usado, y podemos usar diferentes etiquetas para cada una de ellas.

10.4.2.- BGSOUND

La etiqueta bgsound incorpora sonidos de fondo en una página web, sonidos que se ejecutan automáticamente al cargarse la página. Es una etiqueta propietaria de Microsoft, por lo que sólo es interpretada por Internet Explorer, admitiendo los formatos de audio MID y WAV, aunque generalmente también acepta AU y MP3, en versiones actuales del nevagador o mediante plugins de uso general.

Su sintaxis general, con sus atributos más importantes, es del tipo:

<bgsound src="ruta_fichero" loop="l" balance="b" volume="v"></bgsound>

Donde:

• src="ruta_fichero" fija la ruta en la que se encuentra el fichero de audio a reproducir. La ruta puede ser relativa a nuestro sistema de carpetas local, absoluta respecto el sistema de carpetas del servidor web o una URL completa que localice el fichero en Internet.

• loop="l" determina el número de veces (l) que se debe ejecutar el fichero de audio. Si le damos el valor infinite, el fichero se reproducirá indefinidamente.

• balance="b" determina el balance del sonido entre los dos altavoces del equipo, es decir, la potencia o intensidad con que se oirá en cada uno de ellos (derecho e izquierdo). Sus valorespueden estar entre -10,000 y +10,000, correspondiendo el valor 0 a un balance equilibrado entre los dos altavoces.

• volume="v" fija el volumen al que se oirá el sonido, y sus valores pueden variar entre -10,000 (mínimo) y 0 (máximo). No es soportado por los equipos MAC.

Ejemplo:

<bgsound src="../sonidos/wav.wav" balance=0 volume=0></bgsound>

La etiqueta bgsound admite muchas más propiedades (disabled, delay, id, class, controls, etc.). Asímismo, esta etiqueta es accesible en Internet Explorer mediante código JavaScript, pudiendo modificar en tiempo real sus propiedades balance, loop, src, y volume, aunque ésta última sólo es accesible en plataformas PC. Para una información completa sobre todas las propiedades y funcionalidades de este etiqueta podéis visitar la página correspondiente de Microsoft:

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/bgsound.asp

10.4.3.- EMBED

Nestcape Navigator implementó la etiqueta embed para incorporar ficheros de audio. Es ésta una etiqueta de caracter general, que se usa para la inclusión en las páginas web de todos aquellos archivos ajenos al navegador y que necesitan por lo tanto la ejecución de algún plugin para su interpretación.

Paradójicamente, Internet Explorer asumió después el uso de esta etiqueta para la inclusión de

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 89 / 108

ficheros de audio, para llegar a interpretarla mejor y ampliarla con más atributos y propiedades, de tal forma que la ejecución de sonidos con embed es actualmente más cómoda con este navegador, al incorporar la suite de Microsoft sus propios plugins para la interpretación de los diferentes formatos de audio. En cambio, si usamos Netscape Navigator nos encontraremos en muchos casos con un fallo en la reproducción o con un engorroso mensaje de necesidad de algún plugin especial (sobre todo en las versiones 6x), lo que nos obligará a visitar la página de Netscape para su descarga e instalación, que muchas veces no será efectiva.

Sea como sea, hay que indicar que esta etiqueta nos va a incluir en la página web un objeto especial, una especie de consola de mando, denominada Crescendo, que consta de tres botones, similares al de cualquier reproductor de audio: un botón Play, para comenzar la reproducción (si noestá establecida a automática), un botón Pause, para detenerla momentáneamente y un botón Stop,para detenerla definitivamente (puesta a cero). Esta consola es diferente según el navegador usado;en el caso de Internet Explorer se muestra la típica consola de Windows Media, cuyo tamaño podemos configurar, mientras que en Netscape se muestra una consola propia, de tamaño fijo definido.

La sintaxis general de la etiqueta embed es del tipo:

<embed atributo1="valor1" atributo2="valor2"...atributoN="valorN"></embed>

Y en el caso que nos ocupa, de la inclusión de ficheros de audio, los atributos podemos dividirlos en dos tipos:

1. Atributos referentes al sonido:

• src="ruta_fichero", que fija la ruta en la que se encuentra el fichero de audio a reproducir. La ruta puede ser relativa a nuestro sistema de carpetas local, absoluta respecto el sistema de carpetas del servidor web o una URL completa que localice le fichero en Internet.

• loop="l/true/false", que determina el número de veces que se debe ejecutar el fichero de audio. Los valores admitidos son l (número entero de veces), true (infinitas veces) y false (sólo una vez). Sólo es reconocida por Netscape Navigator.

• playcount="n", que define el número de veces (n) que se debe ejecutar en fichero de audio en el caso de Internet Explorer.

• type="tipo_fichero", atributo importante, que declara el tipo de fichero de audio que estamos usando, con lo que el navegador web puede ejecutar el programa o plugin adecuadopara la reproducción del fichero. Puede ser audio/midi, audio/wav, etc.

• autostart="true/false", que determina si el fichero de audio debe empezar a reproducirse por sí sólo al cargarse la página o si por el contrario será preciso la actuación del usuario (o de código de script) para que comience la audición.

• pluginspage="URL", que establece, en caso de ser necesario un plugin especial para reproducir el fichero, la página web donde se puede descragar el mismo. Sólo se activa en elcaso de que el navegador no sea capaz de reproducir el fichero por sí mismo, y es soportada tan sólo por Netscape Navigator.

• name="nombre", que asigna un nombre identificador (debe ser único en la página) a una etiqueta embed determinada, con objeto de ser accedida luego por lenguajes de script.

• volume="v", que determina el volumen de reproducción del sonido, y que puede variar entre 0 y 100. Es sólo soportada por Netscape Navigator, que en la consola muestra el valor establecido en su indicador de volumen, siendo su valor por defecto 50. En en caso de Internet Explorer, el valor del volumen por defecto es 50 en plataformas PC, y 75 en MAC, siendo necesario actuar sobre el control de volumen de la consola para modificarlo.

2. Atributos referentes a la consola:

• hidden="true/false", que establece si la consola va a ser visible (false) o no (true). Es éste un aspecto polémico, ya que si ocultamos la consola obligamos al usuario a oir nuestro fichero, sin posibilidad de detenerlo ni de modificar el volumen, y si la mostramos estaremos incrustando en la pantalla un objeto que muchas veces nos romperá el esquema de diseño denuestra página. Queda determinar su uso en cada caso concreto.

• width="w", que determina el ancho visible de la consola, en pixels. height="h", que determina el alto visible de la consola, en pixels. Estos atributos son también muy importantes, caso de que hayamos establecido hidden= "false", ya que de su valor va a depender la correcta visulazación de la consola. En el caso de Internet Explorer, que muestra un logo de Windows Media sobre los controles, el tamaño mínimo aceptable debe

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 90 / 108

ser de 140x100 pixels, ya que si no la consola saldrá deformada en exceso o recortada. Y en el caso de Netscape Navigator, deberemos asignar unos valores de 145x60 pixels, que es lo que ocupa la consola; si ponemos un tamaño menor, la consola será recortada, perdiendo funcionalidades, y si asignamos un tamaño mayor, aparecerán espacios grises alrededor de la consola, afeando el aspecto de la página. Si no especificamos estos atributos y tampoco hidden, nos aparecerán en la página tan sólo los mandos de la consola, sin logotipos añadidos (Internet Explorer) o la consola recortada (Netscape Navigator).

• align="top/bottom/center/baseline/left/right/ texttop/middle/absmiddle/absbotom", análogo al de la etiqueta IMG, define la alineación horizontal o vertical de la consola respecto de los elementos de la página.

• hspace="hs", que establece la separación horizontal, vspace="vs", que establece la separación vertical, en pixels, entre la consola y los elementos de la página que la redean. Análoga a sus equivelentes de la etiqueta IMG.

Estos son los atributos principales, aunque podemos encontrar referencias de otros admitidos, aunque no suelen ser operativos en la realidad, ya que no suelen funcionar de forma correcta o son específicos de Nestcape (como toda la serie de atributos que configuran los controles de la consola.

Ejemplo sin consola:

<embed src="../sonidos/mid.mid" hidden="true" type="audio/midi" autostart="true"></embed>

Ejemplo con consola:

<embed src="../sonidos/mid.mid" hidden="false" type="audio/midi" autostart="false" width="150" height="100"></embed>

Artículo por Luciano Moreno

10.5.- Sonido en HTML (V)En este capítulo veremos el potenciál de la etiqueta OBJECT.

10.5.1.- La etiqueta OBJECT

Con objeto de normalizar la inclusión de ficheros no nativos en los navegadores web se decidió sustituir las diferentes etiquetas que realizaban este papel (APPLET, BGSOUND, EMBED, etc.), y que no pertenecían a los estándares web, por una etiqueta general, que fuera capaz de incrustar enel navegador todo tipo de ficheros. La etiqueta elegida en el estándar HTML 4.0 fué OBJECT, a la que se dotó de suficientes atributos y flexibilidad para poder realizar correctamente su trabajo. Debido a esto, la propuesta ha sido usar la etiqueta object también para incluir ficheros de audio detodo tipo en las páginas web.

Ahora bien, la aceptación e implementación que la misma a tenido varía según el navegador en particular, así como en función del objeto a incrustar. De este forma, Internet Explorer a realizado su propia implementación de la etiqueta object, incluyendo en ella referencias a filtros y componentes ActiveX específicos para los ficheros de audio. Por su lado, los navegadores Netscape no soportan correctamente este etiqueta para ficheros de este tipo.

Restringiéndonos a Internet Explorer, la polémica sigue, ya que en diferentes manuales nos encontraremos diferentes formas de incrustar sonidos mediante object, unas que funcionan bien, y otras que no. ¿Porqué sucede esto?. Yo creo que porque Microsoft ha ido usando la etiqueta object para implementar todo un grán conjunto de componentes propios, que además han ido adaptándosea las diferentes versiones de Internet Explorer.

Como regla general, válida no sólo para incrustar ficheros de sonido, sino también para otros tipos, la etiqueta object va a definir un objeto o componente externo encargado de la reproducción del fichero, que en el caso de Internet Explorer suele ser algún tipo de control ActiveX. Mediante objectse instancia el objeto, se declara su URL y sus principales propiedades generales, y mediante un conjunto de etiquetas especiales, PARAM, se le van pasando los valores que necesita para su correcto funcionamiento o para su configuración deseada.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 91 / 108

La sintaxis general de la etiqueta object, para el caso de ficheros de sonido, es del tipo:

<object atributo1="valor1" atributo2="valor2" ... atributoN="valorN"> <param name="nombre" value="valor"> <param name="nombre" value="valor"> ... </object>

Los principales atributos de object, en referencia a ficheros de audio, son:

• classid="identificador_objeto", que fija la URL del objeto o componenteexterno necesario para reproducir el fichero de audio, y la implementación CLSID de los controles ActiveX necesarios.

• type="tipo_fichero", atributo importante, que declara el tipo de fichero de audio que estamos usando.

• width="w", que determina el ancho visible de la consola, en pixels.

• height="h", que determina el alto visible de la consola, en pixels.

• align="top/bottom/center/baseline/left/right /texttop/middle/absmiddle/absbotom", análogo al de la etiqueta IMG, define la alineaciónhorizontal o vertical de la consola respecto de los elementos de la página.

• hspace="hs", que establece la separación horizontal, vspace="vs", que establece la separación vertical, en pixels, entre la consola y los elementos de la página que la redean. Análoga a sus equivelentes de la etiqueta IMG.

• autostart="true/false", que determina si el fichero de audio debe empezar a reproducirse por sí sólo al cargarse la página o si por el contrario será preciso la actuación del usuario (o de código de script) para que comience la audición.

• standby="mensaje", que presenta en pantalla un mensaje al usuario mientras el fichero se carga.

En cuanto a los elementos param, los más importantes son:

• param name="FileName" value="ruta_fichero", determina la ruta o URL del fichero de audio a reproducir. No es necesario utilizar sólo ficheros WAV o MID, pudiendo reproducirse también ficheros MP3 o Real Audio. El reproductor del primero lo incluye Explorer en ActiveMovie (componente de Windows Media).

• param name="autostart" value="true/false", indica al navegador si se debe empezar a reproducir el sonido automáticamente al cargar la página o si por el contrario será preciso que el usuario pulse el botón Play para ello.

No son estos todos los atributos y parámetros posibles. Es más, en cuanto nos metemos en componentes Microsoft, podemos encontrarnos multitud de configuraciones posibles, que nos van apermitir fijar muchos aspectos de los mismos. Dejo a cada uno la posibilidad de profundizar en el estudio de aquellos componentes y propiedades que necesite, pero sabiendo que con los elementos vistos arriba tenemos más que suficiente para presentar un fichero de audio en nuestra página web.

xEjemplo:

<object classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A" width="150" height="175" type="audio/midi"> <param name="FileName" value="../sonidos/xfiles.mid"> <param name="autostart" value="true"> </object>>

Que podéis ver funcionando en esta ventana (sólo Internet Explorer).

10.5.2.- La etiqueta A

Si hasta ahora hemos visto cómo podemos incluir en nuestras páginas sonidos de fondo o inicializados por el usuario mediante interacción con la consola Crescendo, vamos a ver ahora cómopodemos implementar audio mediante el uso de una de las etiquetas más polivalentes en HTML: la etiqueta A.

Efectivamente, los enlaces son la base del hipertexto, base a su vez de la web, y dentro de sus

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 92 / 108

múltiples usos podemos considerar el enlace a ficheros de audio. El fichero enlazado puede ser interpretado directamente por el navegador (porque sea de reproducción directa o se tenga instalado el plugin adecuado) o puede ser ejecutado por un programa independiente que se abra automáticamente (Winamp, Real Audio, etc.), siendo este el caso más común. Si el usuario no dispone del programa o plugin adecuado, se le abrirá una ventana de descarga del fichero, con lo que podrá guardarlo hasta disponer de la aplicación necesaria para su reproducción.

La sintaxis general en este caso será del tipo:

<a href="ruta_fichero">Mensaje</a>

Ejemplo de fichero MID:

<a href="../sonidos/watermark.mid">Música para tí</a>

Que podemos ver en funcionamiento en esta ventana.

Ejemplo de fichero MP3:

<a href="../sonidos/mp3.mp3">Madonna</a>

Que tenemos en esta otra ventana.

Artículo por Luciano Moreno

Parte 11:

Otros asuntos

importantes y el futuro

del HTMLAcabamos el manual con esta última parte en la que trataremos algunos asuntos de vital

importancia a la hora de hacer páginas web profesionales. Además veremos el futuro del

HTML, que vendrá con la especificación de HTML 5.

11.1.- Doctype HTMLQué es el Doctype en los documentos HTML y XHTML. Vemos distintos tipos de Doctype disponibles.

Dentro del marco de nuestro manual de HTML y en líneas generales, podemos decir que el DOCTYPE es una declaración del estándar usado al construir un documento HTML o XHTML.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 93 / 108

Sin embargo, para ser un poco más estrictos, debemos aclarar que el Doctype es propio de documentos XML y SGML, y por tanto los lenguajes HTML o XHTML son unos simples herederos de algo que ya se venía utilizando.

El estándar que se utiliza en un documento se define utilizando un DTD, que son las siglas de Definition Type Document, y es una declaración en un metalenguaje para definir otro lenguaje. Dicho de otra manera, el DTD marca las reglas para la definición de lenguajes como el HTML y en el Doctype estamos indicando simplemente qué DTD se tiene que utilizar para interpretar el documento HTML que estamos codificando.

Nota: Podemos conocer más lo que es un DTD en el artículo DTD y XML Schema, de la introducción a XML

publicada en DesarrolloWeb.com.

Así, en resumen, podríamos decir que los documentos HTML o XHTML están escritos en un lenguaje y con el Doctype especificamos este lenguaje y la versión del mismo. Los navegadores leerán esta declaración de doctype e interpretarán la página atendiendo a las reglas definidas en ese lenguaje.

Nota: Para los navegadores es importante conocer el doctype de la página web, porque de ese modo pueden

mostrar la página web con la versión exacta del lenguaje HTML o XHTML con la que fue construida. Si no tienen

una declaración de doctype, interpretarán la página en lo que se llama "quirks mode", un modo que procura

maximizar la compatibilidad de la página con versiones anteriores del lenguaje HTML. Para más información

sobre este enfoque de la explicación del doctype os recomendamos leer el artículo sobre la declaración doctype

en documentos HTML.

De modo que la utilización de la etiqueta es necesaria si deseamos cumplir un estándar de HTML o XHTML, para especificar qué versión o lenguaje utilizamos y que el browser renderice la página conforme a dicho estándar.

El DOCTYPE tiene una forma como sigue:

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

El doctype debe incluirse en la primera línea del código HTML de la página.

Por explicar de alguna manera esta etiqueta, que suena un poco a chino, dice que es un DOCTYPE de un documento HTML y nos da dos datos adicionales. Con el texto "-//W3C//DTD XHTML 1.0 Transitional//EN" indicamos que este documento se tiene que validar con la especificación de XHTML 1.0 y que el tipo de documento es Transitional. Por otra parte, http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd es la URL del DTD que sirve para validarel cóigo HTML de la página.

El tipo de documento, que habíamos señalado como Transitional en el doctype expresado antes, quiere decir el documento utiliza un abanico más amplio de etiquetas HTML y atributos, incluso algunos que puedan haberse quedado obsoletos. Hay otros dos tipos de documentos. Por un lado tenemos strict, que indica que el código es HTML o XHTML estricto, sin incluir atributos y etiquetas en deshuso. El otro tipo de documento que falta es el frameset, que se utiliza cuando estamos realizando una declaración de frames o frameset.

Así que, dependiendo de nuestra página y el código que utilicemos, tendremos que declarar uno u otro doctype. Existen diversos Doctype que abarcan una gran gama de posibilidades, configurando distintas versiones de HTML o XHTML y distintos tipos de documento, strict, transitional o frameset. Este artículo de desarrollo web .com se completa ahora con una lista de algunos de estos doctype más utilizados en la actualidad:

Doctype XHTML 1.0 strict

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 94 / 108

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

Doctype XHTML 1.0 transitional

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

Doctype XHTML 1.0 frameset

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

Doctype HTML 4.01 strict

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Doctype HTML 4.01 transitional

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Doctype HTML 4.01 frameset

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

Artículo por Miguel Angel Álvarez

11.2.- Juego de caracteres, charset, del documento HTMLCómo y por qué debemos especificar el juego de caracteres, también conocido como charset, en los documentosHTML.

HTML es un lenguaje para modelar páginas web que se utiliza en la Red Global y por tanto, debe permitir crear documentos escritos en varios idiomas. Bien sabemos que cada idioma tiene determinados caracteres, que forman las palabras, y algunos de ellos pueden ser hasta específicos de una lengua en concreto, como por ejemplo la letra Eñe "ñ" del español o la ce cedilla "ç" del catalán, portugués etc. Pero no solo están las letras de cada alfabeto, sino también algunos signos como el dólar o euro, que también deben poderse representar en una página web.

En el mundo informático en general los archivos de texto pueden escribirse con varios juegos de caracteres distintos. Esto es algo que la mayoría de las personas no tiene ninguna necesidad de saber, por lo que, cuando guardamos un archivo de texto en un programa como el Bloc de Notas, nadie nos pregunta qué juego de caracteres estamos utilizando o queremos usar.

Existen diversos juegos de caracteres, que tienen un conjunto mayor o menor de letras y símbolos, dependiendo para lo que fueron diseñados. Quizás alguien haya oído hablar, o visto nombrar por alguna parte, el juego de caracteres UTF-8, que es uno de los más comunes, o el ISO-8859-1, que esel predeterminado en la mayoría de los editores de texto plano, en Windows. Es decir, aunque no lo sepamos, cuando se guarda un archivo de texto en el ordenador, se codifica utilizando un juego de caracteres determinado.

Como ya podemos hacernos una idea, el juego de caracteres no es más que un conjunto de letras y símbolos utilizados en la escritura y ahora ya sabes que cualquier fichero informático que contiene texto plano (archivos .txt o .html por ejemplo) está codificado con un juego de caracteres. A la hora de crear páginas web en HTML debemos tener en cuenta esto porque, dependiendo del juego de caracteres utilizado, tendremos disponibles unos u otros símbolos a la hora de redactar los textos de una página web.

En este artículo, que escribimos para completar el Manual de HTML de DesarrolloWeb.com, pretendemos ofrecerte todas las claves sobre la elección y definición de los juegos de caracteres en tu página web, de manera que no tengas nunca el típico problema de no verse correctamente los acentos, letras como la ñ u otros símbolos como los mayores y menores que.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 95 / 108

11.2.1.- Informar sobre el juego de caracteres con la etiqueta META CHARSET

En un documento HTML tenemos la posibilidad de informar sobre qué juego de caracteres estamos utilizando. Aunque, en caso que no lo hagamos, los navegadores intentarán detectarlo automáticamente. Claro está que, si nosotros mismos indicamos qué juego de caracteres usamos, será mucho mejor porque el navegador no tendrá que deducirlo por su cuenta y nos ahorraremos posibles errores de interpretación.

Para informar en el código fuente HTML del conjunto de caracteres que utilizamos se dispone de una etiqueta META, que se coloca en la cabecera del documento (en el HEAD). Esa etiqueta tiene esta sintaxis.

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

Como vemos, dentro de esta etiqueta se está informando el "charset" (set o conjunto de caracteres) utilizado, que en este caso sería "ISO-8859-1". Si estamos trabajando con UTF-8 podríamos utilizar esta META para informar sobre ello:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Nota: En HTML indicar el juego de caracteres es meramente opcional, pero en XHTML siempre se debe señalar

en el documento básico. XHTML utiliza por defecto el juego de caracteres UTF-8 y si lo indicamos en la etiqueta

META, debemos tener en cuenta el cierre de esa etiqueta, utilizando un código como este:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

o bien:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>

11.2.2.- Qué charset escoger y cómo guardar el documento para ello

Los lectores de este artículo, que entiendo escriben sus páginas web con contenidos en Español, generalmente se decantarán entre dos posibles charset. Uno es el UTF-8 y otro es el ISO-8859-1, que son adecuados justamente por contener los caracteres típicos de español y de otra serie de idiomas occidentales.

Cualquiera de estas dos opciones es bastante común y nos ofrecerá todo lo que podamos necesitar. La elección por tanto es un poco indiferente cuando estamos trabajando en HTML y quizás dependaun poco más del programa que usemos para editar el código fuente de nuestras páginas o de nuestro sistema operativo. En Windows, la mayoría de los programas guardan los archivos de texto bajo el juego de caracteres ISO-8859-1, por ello, lo más seguro es que estemos utilizando ese charset aunque ni siquiera lo sepamos.

Muchos programas, como el Bloc de Notas, no nos preguntan siquiera el juego de caracteres que queremos utilizar para guardar el archivo, pero hay otros editores más avanzados que sí permiten escoger el charset deseado. Dependiendo del programa se puede decidir ese juego de caracteres dediversas maneras. Muchos de ellos tienen cuadros de diálogo en la opción "Guardar como" que incluyen un menú para marcar el charset que queremos utilizar y otros se pueden configurar en las opciones de programa, para configurar el juego de caracteres predeterminado a utilizar cuando guardamos los archivos. Hay incluso programas que son suficientemente inteligentes para que, a vista del código HTML y el charset que hemos definido en el mismo en la etiqueta META, guarden por ellos mismos el archivo con la codificación correcta.

Por ejemplo, si vemos el código fuente de DesarrolloWeb.com veremos que nosotros hemos escogido el ISO-8859-1, pues la mayoría de los que editamos código fuente del sitio trabajamos en Windows tradicionalmente y los archivos están con el juego de caracteres predeterminado de la mayoría de los programas Windows. Otra manera de ver el juego de caracteres de una página es utilizando el navegador Firefox en la opción del menú "Ver / Codificación de caracteres".

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 96 / 108

11.2.3.- Utilizar caracteres que no están en nuestro juego de caracteres

Si lo deseamos, en HTML también podemos colocar en el texto de nuestra página web un carácter que no se encuentre disponible en el juego de caracteres que estamos utilizando. Para ello se utilizan los caracteres especiales o entidades especiales del HTML , que no son más que unos códigos especiales para escribir caracteres que no están dentro del alfabeto inglés, como los acentos, ñ, ç, etc. e incluso símbolos como &, o >. �

Podemos encontrar en DesarrolloWeb.com una explicación más detallada de los caracteres especiales, así como una lista de los disponibles en HTML

Nota: Estaría bien comentar que estamos obligados a utilizar siempre los caracteres especiales cuando

queramos colocar en el texto los mayores y menores que (">" o "<"), para no confundirlos con las aperturas y

cierres de etiquetas.

11.2.4.- Conclusión sobre los juegos de caracteres (charset) en HTML

Con estas notas espero que tendrás suficiente información como para no dejar la elección del juego de caracteres a la mera suerte o configuración de tus programas y, lo que es más importante, que los tengas en cuenta cuando generes código HTML para informar siempre tu charset y que no haya problemas de interpretación de tu página web.

Con esto espero que se solucionen también todas las dudas de las personas que experimentan problemas puntuales en sus páginas web, cuando algunos caracteres no se muestran correctamente. La mayoría de las veces, como hemos dicho, esos se soluciona simplemente especificando el juego de caracteres en el código fuente del HTML, en la etiqueta META para especificar el charset.

Artículo por Miguel Angel Álvarez

11.3.- Etiqueta META robotsExplicación de la etiqueta META robots y diferentes posibilidades de configuración.

Mediante las diferentes etiquetas META que podemos colocar en un sitio web disponemos de una variedad amplia de metainformaciones para comunicar a cualquier sistema que lea nuestra página web. En este artículo vamos a presentar una etiqueta interesante para definir cómo se tienen que comportar los motores de búsqueda a la hora de visitar nuestra página y mostrarla entre los resultados de búsquedas realizados en el buscador. Se trata la etiqueta meta de robots.

La etiqueta META de Robots sirve para personalizar el comportamiento de robots de indexación, tipo Google, a la hora de procesar nuestra página web. Cada una de las páginas de nuestro sitio puede tener una declaración de la etiqueta meta de robots distinta, con lo que podemos incluso definir de manera independiente cómo deseamos que se trate cada una de las páginas que componen el web.

En DesarrolloWeb.com hemos publicado anteriormente informaciones acerca de distintas etiquetas META en artículos dispersos. Además, tenemos un Generador de Etiquetas Meta que también puede resultar de interés para los lectores.

11.3.1.- Etiqueta ROBOTS de META Tags

Como hemos dicho, la etiqueta robots, dentro de las posibles etiquetas con Metainformaciones acerca de un documento web, sirve para llevar un control exhaustivo de lo que puede o no puede hacer un robot de indexación cuando visita nuestro sitio web. Los comportamientos más típicos quepodemos definir son permitir o no indexar una página y seguir o no sus enlaces.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 97 / 108

Nota: Conviene recordar que también se puede definir el comportamiento de los robots de búsqueda con

nuestro sitio, a la hora por ejemplo de permitir o no indexar las distintas páginas, mediante el archivo robots.txt.

Ahora veamos cómo se define esta etiqueta META de robots.

<META name="robots" content="NOINDEX">

Como se puede ver, se define el etiqueta META y se acompaña de dos atributos esenciales:

Name: que para la etiqueta META que controla los comportamientos en motores de indexación el valor es "robots".

Content: se indica las directivas que queremos que apliquen los motores de indexación cuando visitan la página.

11.3.2.- Valores posibles de la etiqueta META ROBOTS

En el atributo Content de la etiqueta meta debemos colocar las directrices que deseemos para buscadores, tantas como deseemos, separadas por comas. Las distintas directrices a aplicar son las siguientes:

INDEX / NOINDEX Sirve para indicar si se desea o no permitir la indexación de la página por los motores de búsqueda.

FOLLOW / NOFOLLOW Con esta directriz se indica si se debe o no permitir a los motores de búsqueda recorrer o seguir recorriendo la web a través de los enlaces que encuentre en el cuerpo del documento.

ARCHIVE / NOARCHIVE Esto permite decir si deseamos o no que el motor de búsqueda archive el contenido del sitio web ensu caché interna. Como habremos podido ver, buscadores como Google tienen una caché y podemosver las páginas web tal como las tiene cacheadas el buscador. Para ello, en los resultados de las búsquedas aparece un enlace que pone caché. Si decimos que no archive la página, no debería mostrar ese enlace de caché. Esto en realidad, según Google, no evita que se guarde en caché la página, sino que no permite verla a los usuarios del buscador y por lo tanto no muestra el enlace.

SNIPPET / NOSNIPPET Esta directriz en principio no resulta muy útil, al menos a primera vista. Sirve para que el motor de búsqueda no muestre ninguna descripción de un sitio, sólo su título. Si utilizas NOSNIPPET automáticamente defines un NOARCHIVE, por lo que la página tampoco se mostrará en caché.

ODP / NOODP Sirve para decirle al buscador que debe, o no, mostrar el título y descripción de la página iguales a los que se encuentra en el Open Directory Project. En algunos casos, algunos buscadores muestran como título y descripción de una web los que se han publicado en el ODP (ENLACE A http://www.dmoz.org/).

YDIR / NOYDIR Es básicamente lo mismo que ODP / NOODP, con la diferencia que es para que no se pueda, o si, mostrar la descripción y título que aparece en el directorio de Yahoo.

Cuando no existe esta etiqueta los buscadores interpretan las condiciones más favorables para ellos, es decir, que pueden hacer todo lo que suelen hacer con otras páginas a la nuestra, como indexarla, seguir sus enlaces, archivarla, etc.

11.3.3.- Ejemplos de etiquetas META ROBOTS

A la hora de utilizar la META ROBOTS básicamente lo que podemos hacer es restringir las posibilidades de los motores de búsqueda, puesto que las posibilidades por defecto son las menos restrictivas.

Esto quiere decir que una etiqueta como la siguiente es irrelevante, porque el buscador siempre va a indexar la página y seguir sus enlaces de manera predeterminada:

<META name="robots" content="INDEX,FOLLOW">

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 98 / 108

Podemos definir entonces casos más restrictivos como estos:

<META name="robots" content="INDEX,NOFOLLOW">

Para indicar que se desea que se indexe la página, pero no se sigan los enlaces. Dada que la opción INDEX es la que se sobreentiende por defecto, esta etiqueta tendría el mismo valor que la siguiente:

<META name="robots" content="NOFOLLOW">

Para indicar que no queremos que se sigan los enlaces de la página.

<META name="robots" content="NOINDEX,NOFOLLOW">

Para indicar que no queremos que se indexe la página ni se sigan los enlaces que pueda contener.

<META name="robots" content="NOARCHIVE">

Lo único que indicamos es que no se muestre el enlace para ver la página en la caché del buscador.

<META name="robots" content="NOINDEX,NOFOLLOW,NOARCHIVE,NOODP,NOSNIPPET">

Con esta restrictiva etiqueta forzamos para que no se indexe la página, no se sigan los enlaces, no se muestre el link de caché, no se muestre el título y descipción del Open Directory Project y sólo se muestre el título de la página en los resultados de las búsquedas.

Artículo por Miguel Angel Álvarez

11.4.- El futuro del desarrollo web: HTML 5HTML 5 es una tecnología creada para modernizar la web y el desarrollo de aplicaciones web, online y offline, que aun tiene bastante camino por recorrer para ser una realidad.

En el momento de escribir este artículo, la especificación de HTML 5 está todavía en fase de borrador, no obstante, en algunos navegadores, recientemente se están poniendo en marcha, de forma experimental, algunas de las características que traerá consigo este nuevo estándar. Paralelamente, van surgiendo nuevas informaciones y referencias que explican qué es HTML 5, lo que hace que nos sintamos cada vez más impacientes por conocer bien las nuevas particularidades del lenguaje y sobre todo, por comenzarlas a aplicar en nuestros desarrollos.

Este artículo de DesarrolloWeb.com pretender ofrecer algunas pistas para conocer el camino que actualmente está recorriendo el lenguaje de marcación para convertirse en una realidad, a la vez que explicar un poco cuáles son las novedades más importantes que están por venir.

11.4.1.- Por qué se crea HTML 5

Los que nos dedicamos a hacer páginas web sabemos que un sitio web es como un puzzle de tecnologías que operan entre si. Para hacer una página, en principio, se necesita simplemente HTML, pero esta afirmación hoy tiene poco que ver con la realidad y las necesidades de los desarrolladores para crear una rica experiencia de usuario.

Es que hoy pocos sitios web se basan únicamente en HTML. Quien más quien menos utiliza CSS para definir el aspecto de la página, algún tipo de script del lado del cliente, en Javascript, vídeos en diversos formatos o Flash para realizar alguna animación o interacción con el usuario. Para poder beneficiarse e integrar todas estas tecnologías, existen multitud de etiquetas que se han ido creando al paso, según se iban necesitando, y las cuales no han pasado por el filtro de los normalizadores de tecnologías como el W3C.

Por tanto, más de 10 años después que se publicase la última especificación del HTML, resulta primordial para el futuro de la web la creación de un nuevo estándar que recoja y solucione de alguna manera, las necesidades de los desarrolladores que se han ido creando a lo largo de todo este tiempo.

11.4.2.- Esfuerzos en diversas vertientes para la creación de HTML 5

Sin duda ya hace tiempo que se necesitaba esta nueva especificación, que hoy todavía está en fase de borrador y podríamos preguntarnos ¿por qué ha pasado tanto tiempo sin publicarse esta nueva versión del lenguaje? La respuesta es que HTML 5 se ha convertido en un proyecto muy ambicioso,

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 99 / 108

donde hay muchas personas, empresas e instituciones que tienen mucho que opinar. Es de vital importancia, por tanto, coordinar a todos los implicados para crear un único frente común, que asegure esta vez un éxito de la tecnología como un estándar.

En principio, los encargados de regular los estándares de Internet son los integrantes del W3C, quehan estado trabajando durante bastante tiempo en otros lenguajes como XML. No se puede decir que hayan dejado de lado HTML, pero de alguna manera estaban creando otros estándares más rígidos que sustituyesen al lenguaje. Ante esta falta de interés en HTML y las necesidades reales delos desarrolladores de webs por parte del W3C, se creó en 2004 una comunidad de personas interesadas en mejorar y modernizar el lenguaje de marcación. Este nuevo grupo, llamado WHATWG (Web Hypertext Application Technology Working Group), se creó a raíz de una conferencia del W3C con personas integrantes de los equipos de desarrollo de Apple, la Fundación Mozilla y Opera, a la que se han ido agregando personal de Microsoft y otras empresas implicadas en el mundo web.

El WHATWG, que funciona de manera independiente del W3C, tiene como objetivo principal trabajar en la nueva especificación del HTML 5 y a ellos debemos muchas de los avances que están por llegar con relación al lenguaje. Es una organización abierta, donde cualquiera puede participar libre gratuitamente. De hecho, según comentan en su web, están realmente interesados en las opiniones e intereses de las personas que trabajan con el desarrollo web, para crear unas especificaciones que respondan a las necesidades reales de los profesionales de Internet.

11.4.3.- Enlaces relacionados

Para la documentación de los lectores, publicamos los enlaces a los borradores de especificaciones del HTML 5 y las organizaciones que trabajan en ellos:

W3C HTML Working Group: http://www.w3.org/html/

WHATWG http://www.whatwg.org

Última versión publicada del borrador de HTML 5 http://www.w3.org/TR/html5/

Borrador del HTML 5 por la WHATWG http://www.whatwg.org/specs/web-apps/current-work/multipage/

11.4.4.- Conclusión

Hemos podido comprobar que existen numerosos esfuerzos para la creación de las nuevas especificaciones del HTML 5, llevados a cabo por distintas organizaciones, independientes, pero que trabajan en un frente común.

En el siguiente artículo veremos qué es HTML 5, cuándo estará listo y cuáles son las principales novedades que traerá.

Artículo por Miguel Angel Álvarez

11.5.- Qué es HTML 5Veremos qué es HTML 5, su previsión de tiempo para convertirse en una especificación recomendada y las novedades más significativas que proporcionará.

En el artículo anterior publicado en DesarrolloWeb.com, "El futuro del desarrollo web: HTML 5" explicamos las razones por las que es verdaderamente importante esta nueva versión del lenguaje de marcación HTML y vimos quiénes son los que están llevando a cabo su especificación.

Ahora convendría explicar qué es exactamente HTML 5, ya que no es simplemente una nueva versión del lenguaje de marcación HTML, sino una agrupación de diversas especificaciones

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 100 / 108

concernientes a el desarrollo web. Es decir, HTML 5 no se limita sólo a crear nuevas etiquetas, atributos y eliminar aquellas marcas que están en desuso o se utilizan inadecuadamente, sino que va mucho más allá.

Así pues, HTML 5 es una nueva versión de diversas especificaciones, entre las que se encuentran:

• HTML 4 • XHTML 1 • CSS Nivel 2 • DOM Nivel 2 (DOM = Document Objetc Model)

A la par, HTML 5 pretende proporcionar una plataforma con la que desarrollar aplicaciones web más parecidas a las aplicaciones de escritorio, donde su ejecución dentro de un navegador no implique falta de recursos o facilidades para resolver las necesidades reales de los desarrolladores. Para ello se están creando unas APIs que permitan trabajar con cualquiera de los elementos de la página y realizar acciones que hasta hoy era necesario realizar por medio de tecnologías accesorias.

Estas API, que tendrán que ser implementadas por los distintos navegadores del mercado, se están documentando con minuciosidad, para que todos los Browsers, creados por cualquier compañía las soporten tal cual se han diseñado. Esto se hace con la intención que no ocurra lo que viene sucediendo en el pasado, que cada navegador hace la guerra por su parte y los que acaban pagándolo son los desarrolladores y a la postre los usuarios, que tienen muchas posibilidades de acceder a webs que no son compatibles con su navegador preferido.

11.5.1.- Cuándo estará listo HTML 5

Según informan en la página de la organización WHATWG, HTML 5 se prevé esté listo como especificación de implementación recomendada en el 2012. ¿Quiere esto decir que vamos a tener que esperar hasta 2012 para aprovechar las ventajas de HTML 5? realmente no es justamente así, puesto que algunos navegadores ya implementan muchas de las características del moderno lenguaje.

Resulta que HTML 5 está formado por muchos módulos distintos, cuyo grado de especificación estáen niveles dispares. Por tanto, muchas de las características de HTML 5 están ya listas para ser implementadas, en un punto de desarrollo que se encuentra cercano al que finalmente será presentado. Otras muchas características están todavía simplemente en el tintero, a modo de ideas o borradores iniciales.

De hecho, las versiones más nuevas de casi todos los navegadores, incluido el polémico Internet Explorer 8, implementan algunas de las características de HTML 5. Claro que, para que una web sevea bien en todos los sistemas, hay que utilizar sólo aquellas partes que funcionan en todos los navegadores, por lo que a día de hoy, pocas son las utilidades realmente disponibles del lenguaje, siqueremos hacer un sitio web compatible. No obstante, en el peor de los casos, podemos empezar a usar a nivel experimental estas características, aunque sólo sea para frotarnos las manos en espera de incorporarlas realmente en nuestras prácticas de desarrollo habituales.

11.5.2.- Cuáles son las novedades de HTML 5

HTML 5 incluye novedades significativas en diversos ámbitos. Como decíamos, no sólo se trata de incorporar nuevas etiquetas o eliminar otras, sino que supone mejoras en áreas que hasta ahora quedaban fuera del lenguaje y para las que se necesitaba utilizar otras tecnologías.

• Estructura del cuerpo: La mayoría de las webs tienen un formato común, formado por elementos como cabecera, pie, navegadores, etc. HTML 5 permite agrupar todas estas partes de una web en nuevas etiquetas que representarán cada uno de las partes típicas de una página.

• Etiquetas para contenido específico: Hasta ahora se utilizaba una única etiqueta para incorporar diversos tipos de contenido enriquecido, como animaciones Flash o vídeo. Ahora se utilizarán etiquetas específicas para cada tipo de contenido en particular, como audio, vídeo, etc.

• Canvas: es un nuevo componente que permitirá dibujar, por medio de las funciones de un API, en la página todo tipo de formas, que podrán estar animadas y responder a interacción

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 101 / 108

del usuario. Es algo así como las posibilidades que nos ofrece Flash, pero dentro de la especificación del HTML y sin la necesidad de tener instalado ningún plugin. Puedes conocermás sobre este nuevo elemento en el manual de canvas que estamos creando en DesarrolloWeb.com

• Bases de datos locales: el navegador permitirá el uso de una base de datos local, con la que se podrá trabajar en una página web por medio del cliente y a través de un API. Es algo así como las Cookies, pero pensadas para almacenar grandes cantidades de información, lo que permitirá la creación de aplicaciones web que funcionen sin necesidad de estar conectados a Internet.

• Web Workers: son procesos que requieren bastante tiempo de procesamiento por parte del navegador, pero que se podrán realizar en un segundo plano, para que el usuario no tenga que esperar que se terminen para empezar a usar la página. Para ello se dispondrá también de un API para el trabajo con los Web Workers.

• Aplicaciones web Offline: Existirá otro API para el trabajo con aplicaciones web, que se podrán desarrollar de modo que funcionen también en local y sin estar conectados a Internet.

• Geolocalización: Las páginas web se podrán localizar geográficamente por medio de un APIque permita la Geolocalización.

• Nuevas APIs para interfaz de usuario: temas tan utilizados como el "drag & drop" (arrastrar y soltar) en las interfaces de usuario de los programas convencionales, serán incorporadas al HTML 5 por medio de un API.

• Fin de las etiquetas de presentación: todas las etiquetas que tienen que ver con la presentación del documento, es decir, que modifican estilos de la página, serán eliminadas. La responsabilidad de definir el aspecto de una web correrá a cargo únicamente de CSS.

Como se puede ver, existirán varios API con los que podremos trabajar para el desarrollo de todo tipo de aplicaciones complejas, que funcionarán online y offline. Quizás se entienda mejor por qué HTML 5 es un proyecto tan ambicioso y que está llevando tanto tiempo para ser elaborado.

Artículo por Miguel Angel Álvarez

11.6.- Nuevos elementos de formularios en HTML5Conociendo algunos de los nuevos elementos con los que podemos contar en los formularios web a partir de HTML5.

Durante los últimos meses HTML 5 está en boca de todos. Se ha generando gran expectativa alrededor de un sin número de tecnologías que nos trae el nuevo lenguaje de la web, no solo por parte de los desarrolladores, sino también de usuarios, debido a que las nuevas especificaciones delHTML mejoran sensiblemente la experiencia de la navegación.

Con HTML5 se pretende facilitar el desarrollo aplicaciones web, las cuales siguen unos parámetros de compatibilidad, tanto usuarios de ordenadores de escritorio, como para los que usan o navegan a través desde un dispositivo móvil. En este artículo vamos a tratar una de esas utilidades que tienen como objetivo mejorar las capacidades de las aplicaciones web. Se trata de los nuevos elementos para formularios HTML.

Los formularios en HTML5 se extienden para dar respuesta a diversas necesidades que se habían detectado en el pasado y en concreto con la llegada de los dispositivos de movilidad. Smartphones, tablets, etc. ganan cada día más aficionados, debido a su practicidad y portabilidad. Hoy estos dispositivos tienen gran potencia, a nivel de hardware y software, y ante estos nuevos avances la web debía responder con algunas herramientas para mejorar la usabilidad, en este caso de los formularios HTML clásicos.

Con las nuevas especificaciones del lenguaje de la web, se va mejorando en gran medida la experiencia de navegación e interacción del usuarios. Con el uso de dispositivos móviles táctiles, nose cuenta con un teclado físico, por eso las aplicaciones y sistemas operativos implementan lo que se llama el teclado virtual, que le permita al usuario realizar la entrada de texto de una forma similar a la que se utiliza en los ordenadores de escritorio.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 102 / 108

A lo largo de este articulo y algunos otros que vendrán a futuro, estaremos hablando y viendo de primera mano todas las bondades con las que cuentan los formularios web. En algunos casos se trata de elementos nuevos para los formularios, en otros casos simplemente se reforman elementos existentes para ofrecer alguna ventaja. En general al desarrollador le caen como anillo al dedo, pues permiten ahorrarse diversos trabajos que teníamos que realizar con algunas tecnologías auxiliares como javascipt.

Nota: Con toda esta evolución del lenguaje de la web, se hace un poco mas fácil la escritura de aplicaciones

web, pues recordemos que con HTML5 no solo se crean nuevas etiquetas, sino que también hay una evolución de

tecnologías auxiliares como el mismo lenguaje del cliente Javascript, además del DOM, y una muy importante

nueva versión del popular CSS. Todos éstos contribuyen a una nueva forma de concebir a la web tanto para los

que desarrollamos, como para los que exploran la web.

11.6.1.- Los nuevos elementos o etiquetas con las que podemos contar en un formulario HTML5

En esta sección veremos cuáles son los cinco nuevos elementos que podemos integrar dentro de cualquier formulario web. Con estos nuevos elementos obtenemos mayor interactividad en nuestrasaplicaciones web, realizando tareas que normalmente se llevaban a cabo con ayuda de códigos Javascript un tanto complejos. Ahora, con las nuevas especificaciones de HTML5, es posible realizarlas mismas tareas, con la inmensa ventaja de usar etiquetas nativas, que generan campos destinados a algunos trabajos en particular, evitándonos usar elementos clásicos a los que asignar funcionalidades con programación.

Debemos aclarar que algunos elementos, de los que se han incorporados en las nuevas especificaciones de HTML5, pueden parecer muy poco practicos. En ocasiones puede que se difícil encontrarle una utilidad dentro de nuestras aplicaciones web, sin embargo, mencionaremos los cinco nuevos elementos aunque no vayamos a trabajar con todos en esta serie de artículos sobre losformularios y sus nuevas herramientas y elementos.

Nota: La potencia de estos nuevos elementos radica en su uso simplificado. Algunos oncliso disponen de nuevas

API de programación Javascript, que se integran muy fácilmente en cualquier entorno de desarrollo que utilice

tecnología HTML5.

Los nuevos elementos son los siguientes:

• meter • progress • detalist • keygen • output

11.6.2.- Algunos detalles sobre los cinco nuevos elementos de los formularios

Como hemos podido ver anteriormente son cinco nuevas etiquetas, con las que podemos contar en los formularios web. A continuación vamos a hacer mención de cada una, además de los posibles usos que podemos dar en nuestras aplicaciones web, con el propósito de que todos ustedes se hagan una idea sobre lo que podemos lograr con estas nuevas etiquetas.

Etiqueta METER: Esta nueva etiqueta se usa para representar escalas de medidas conocidas, de ahí su nombre: Meter, el cual tiene relación directa con medida. Se puede emplear para representar escalas de medición conocidas como longitud, masa, peso, entre otras.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 103 / 108

Etiqueta PROGRESS: Con esta etiqueta no hay que hacer mayor explicación, pues como su nombre lo indica, se usa para crear barras de progreso. Podemos emplearlas o usarlas en procesos de larga duración, como la descarga de archivos, para indicar a cualquier usuario de nuestra aplicación el progreso de la operación que se está realizando.

Elemento DATALIST: Es una extensión que sirve para crear campos de autocompletado. Sirve para especificar una lista de datos u opciones que se pueden utilizar para sugerir el autocompletado de elementos como INPUT. Por tanto, para utilizar un DATALIST, tenemos que combinar ese elemento con otros elementos de formulario al que le colocamos atributos nuevos para asociar el DATALIST para hacer el autocompletado.

Etiqueta KEYGEN: Usada para generar pares de claves, clave pública y privada. Al enviar el formulario al servidor por cualquiera de los métodos HTTP, en el cliente se guarda una clave privada la clave pública se empaqueta y se envía al servidor.

Etiqueta o elemento OUTPUT: Muestra el resultado de un cálculo matemático, su uso básico puede ser tan básico como el de mostrar una simple suma de dos números.

De momento, dejamos por aquí este listado de nuevos elementos de formulario, citando a los lectores a un próximo articulo, donde veremos el uso de algunos de estos nuevos elementos.

Artículo por Dairo Galeano

11.7.- Las mejoras de los elementos INPUT de HTML5Una breve descripción de las nuevas características presentes en los elementos de formulario INPUT en HTML5.

Cuando uno habla de formularios, se refiere también a la interacción entre los usuarios y una aplicación web, basada en la introducción de datos de entrada. En muchas ocasiones, la entrada de datos puede convertirse en una tarea tediosa para los desarrolladores, quienes tienen que buscar que métodos son los mejores para introducir datos de una manera intuitiva y validarlos por medio de la programación.

Es frecuente ver, en aplicaciones web medianamente bien realizadas, rutinas de validación de datosque permiten al usuario rellenar los formularios con la información correcta. El trabajo para la validación de los datos generalmente se realiza con un lenguaje del lado del cliente como Javascript, aunque algunos prefieren lenguajes de servidor para validar datos.

Nota: No siempre es recomendable validar los datos en el servidor, por el abuso de transacciones HTTP que

pueden producirse. Por ello, el mejor método para la validación es JavaScript en el lado del cliente, o una mezcla

entre ambas arquitecturas, cliente y servidor. Lamentable hay quienes no reconocen las bondades del lenguaje de

programación del lado del cliente estándar, Javascript, aunque esto poco a poco va pasando a la historia y ahora

más con el HTML5.

Gracias a HTML5 los desarrolladores hemos ganado unas importantes herramientas para validar datos en un formulario, de una forma más fácil, con menos rutinas de código. Incluso en algunos casos no es necesario siquiera hacer nada de JavaScript, pues existen mecanismos para verificar la corrección de los datos, con solo un poco de HTML.

11.7.1.- Doce tipos nuevos de INPUT para mejorar el trabajo con formularios

Para los que en algún momento sintieron que los INPUT disponibles en los formularios clásicos se

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 104 / 108

quedaban cortos, HTML5 tiene la respuesta. A decir verdad, muchos habremos podido pensar eso en alguna ocasión, sobre todo cuando hemos tratado de desarrollar aplicaciones dirigidas a dispositivos móviles. HTML5 está pensado para ser usado en múltiples entornos, y por tal razón se han credo doce nuevos tipos de INPUT.

Nota: Aunque pueda parecer que no tiene demasiada importancia la creación de todos estos tipos de INPUT

nuevos, podemos decir que es un gran paso adelante. Aun más ahora, que se pueden desarrollar aplicaciones

nativas para dispositivos, con ayuda de algunos framework como Titanium o Phonegap, del que publicaremos un

manual en Desarrolloweb.com muy pronto. Incluso, como exploraremos también en este sitio, con HTML5

vamos a poder crear aplicaciones nativas en Windows 8. Como puede verse con el nuevo lenguaje de la web se

nos abren nuevos horizontes y todas estas nuevas implementaciones serán muy utilizadas en todos esos nuevos

entornos de aplicaciones.

A continuación mencionamos cada uno de los doce nuevos INPUT que están presentes en la quinta especificación del lenguaje HTML, con una breve explicación de cada uno.

INPUT tel: Este tipo de input viene predispuesto con un formato para escribir números telefónicos. En realidadno hace ninguna validación, pero sí se puede implementar una con la nueva API de validación de JavaScript.

INPUT number pre formateado: Sirve para escribir solo números. En algunos navegadores, cuando se ejecuta el evento onSubmit no se hace el envío en caso que el campo number esté lleno de caracteres que no sean numéricos.

INPUT search: Además de proporcionar un campo de entrada, se le agrega un icono de búsqueda para distinguirlo de un campo de navegación.

INPUT color: Este input nos brinda una paleta de colores donde el usuario puede escoger un color de forma dinámica. Es lo que llamamos un colorpicker, con la particularidad que nos lo ofrece el propio navegador.

INPUT range: Proporciona un control que se desliza, cambiando automáticamente el valor del campo.

INPUT URL: Este tipo de entrada viene con un formato para URL absoluta.

INPUT email: Tiene la capacidad de aceptar únicamente direcciones de correo electrónico. Además, se pueden enviar varios email separados por comas, si tiene especificado el atributo multiple.

INPUT datetime: Para obtener fecha del conjunto de la zona horaria UTC.

INPUT date: Para introducir una fecha que no haga parte de del conjunto horario.

INPUT month: Para introducir meses del año.

INPUT week: Ofrece una utilidad para escribir y captar información de semanas.

INPUT time: Obtiene información con horas, minutos y segundos.

Tipo datetime-local: Recibe la hora local del dispositivo.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 105 / 108

11.7.2.- Más allá de los nuevos INPUT: nuevos atributos

Con todos los nuevos tipos INPUT se logra un gran avance con respecto a los formularios clásicos de la web. Algunas de las ventajas pueden ser observables en dispositivos touch (con pantallas táctiles).

Nota: Si quieres ver los nuevos INPUT funcionando en navegadores de escritorio, recomendamos usar la última

versión de Google Chrome (la versión 13 en adelante debería funcionar). Firefox también puede servir, puesto que

se actualiza bastante rápido.

Si bien los nuevos INPUT son revolucionarios, también existen varias ventajas que nos traen diversos nuevos atributos, venidos también a raíz de la evolución de los formularios de HTML5. Conesos atributos nuevos podemos hacer cosas realmente interesantes sin mayores problemas. En este artículo vamos a realizar un ejemplo con dos de ellos.

Atributo placeholder: Sin duda habrás visto en muchas ocasiones un efecto efecto sobre los campos INPUT, en páginas como Twitter, donde hay un texto que indica la información que el usuario debe ingresar. Al situar el foco encima del campo, ese texto desaparece para que el usuario escriba lo que desee. Pues bien,ese efecto se consigue con el atributo placeholder de una manera inmediata. Podemos ponerlo en práctica con un código como el siguiente.

<input type="text" placeholder="Ingrese el nombre">

Solo hay asignar al atributo placeholder el texto que deseamos que aparezca en el INPUT, y una vezse situe el foco en el campo de texto, simplemente desaparece.

Atributo autofocus: El efecto logrado mediante el atributo autofocus es igual al de las páginas de búsqueda como Google, donde al cargar la pagina el foco de la aplicación ya se encuentra en un INPUT. Su uso sería tan simple como este.

<input type="search" style="border-color:#12c5a1" autofocus>

Para mayor claridad os dejamos un ejemplo básico con estos atributos asignados a campos INPUT.

<!DOCTYPE html><html lang="es"><head><title>Prueba1</title><style>input{border-radius:7px;border-color: #cfc;}

</style></head><body>

<input type="text" placeholder="Ingrese el nombre"><input type="search" style="border-color:#12c5a1" autofocus></body></html>

En futuros artículos usaremos más utilidades de los formularios HTML5.

Artículo por Dairo Galeano

11.8.- Etiquetas nuevas de HTML5Cuáles son las etiquetas nuevas del lenguaje HTML5, con una breve descripción sobre su utilidad y clasificación.

La nueva versión del lenguaje HTML trae consigo muchas novedades. Como vimos en el artículo

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 106 / 108

Qué es HTML5, el nuevo estándar está compuesto de diversas tecnologías de lo más variado, para suplir todas las necesidades de la Web actual y de los nuevos dispositivos de movilidad.

En esa línea comprensión de lo que es HTML5, cabe destacar que existen varios lenguajes que están siendo actualizados con el nuevo estándar, como HTML, CSS o Javascript. Si tuviésemos una pila de asuntos que representasen cada una de estas novedades, la del propio lenguaje HTML sería la menor, seguida de CSS y luego de Javascript. Sin embargo, hay varias cosas que debemos conocer sobre el lenguaje de etiquetado en esta nueva versión, que están cambiando enormemente la manera en la que se conciben y desarrollan los sitios web actuales.

11.8.1.- Novedades en HTML de HTML5

Ya dentro del lenguaje HTML específicamente, las novedades que nos trae en su versión 5 son una serie de etiquetas útiles en la web actual, algo bien sencillo de aprender y de aplicar a los sitios web, así como el propio lenguaje de marcación es también sencillo de asimilar. Las podemos clasificar en dos partes:

• Etiquetas que nos traen soporte a nuevas funcionalidades: es decir, aquellas que nos sirven para extender el HTML, dando soporte a asuntos como el vídeo o el sonido, lienzos donde diseñar dibujos, etc.

• Etiquetas que componen la web semántica: algunas etiquetas que realmente no proponen nuevas funcionalidades, sino que sirven para componer sitios indicando qué son los bloques de código de una web, en lugar de cómo se deben representar.

Nota: Podríamos definir otras clasificaciones o incluso subgrupos en cada uno de los anteriores items, pero de

momento está bien para aclarar cuáles son las novedades clave que trae HTML5.

Dentro de cada grupo tenemos multitud de nuevas etiquetas que comentaremos brevemente a continuación.

11.8.2.- Elementos que dan soporte a nuevas funcionalidades

Existen numerosas novedades dentro del HTML5 que se han representado por etiquetas o elementos de diversa índole. Algunas etiquetas son realmente nuevas y otras como EMBED ya existían y se han incorporado al estándar.

Etiquetas para Multimedia: Algunos elementos nuevos servirán para integrar contenido multimedia,pues sabemos que cada día esos nuevos tipos de información están más presentes en la Web.

• AUDIO: Para insertar sonido dentro de una web. • VIDEO: Para insertar clips de vídeo. • EMBED: Para embeber contenido externo de otro tipo, como el traído de diversos plugins

que se comercializan actualmente o se comercializarán en el futuro. • SOURCE: Permite especificar varias fuentes diferentes cuando se insertan elementos en

AUDIO y VIDEO. • TRACK: Permite especificar varias pistas de sonido o vídeo para los elementos AUDIO y

VIDEO.

Nota: En DesarrolloWeb.com existen diversos talleres de HTML5 que explican diversos usos de las etiquetas

AUDIO y VIDEO, que podemos leer si nos pasamos por el Taller de HTML5.

Nuevos elementos de formulario: En el caso del HTML5 y los formularios tenemos que destacar que no solamente se han creado nuevas etiquetas, sino que se ha añadido soporte a las existentes anteriormente. De momento estas son las nuevas etiquetas que nos ofrece.

• METER: Para trabajar con medidas y escalas. • PROGRESS: Implementa barras de progreso. • DATALIST: Extensión para crear campos con funcionalidad de autocompletar.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 107 / 108

• KEYGEN: Genera claves pública y privada para encriptación. • OUTPUT: Realizar y mostrar cálculos matemáticos.

Nota: Para ver descripciones más detalladas sobre este asunto recomendamos la lectura del artículo Nuevos

elementos de formularios en HTML5.

Pero hablando de novedades en formularios, no debemos dejar de remarcar que HTML5 también trae diversos nuevos usos de INPUT, que nos sirven para especificar qué tipo de información concreta queremos introducir en ellos. Ello proporciona utilidad especial a esos campos INPUT, pensando también en los dispositivos móviles y la forma con la que tratan dichos campos. Todo eso se explica con detalle en el artículo Las mejoras de los elementos INPUT de HTML5.

Dibujos completos en HTML5, lienzo de CANVAS: Luego tenemos una utilidad nueva que merece la pena verla por separado, puesto que nos va a transformar la manera con la que se experimentará la web. Se trata de un lienzo en donde se puededibujar cualquier cosa e incluso hacer animación compleja.

CANVAS: Una etiqueta que genera un lienzo en la página donde realizar cualquier tipo de diseño, soporta dibujo de todo tipo de formas, degradados, imágenes, etc.

Nota: La etiqueta CANVAS del HTML simplemente delimita un área de la página donde se puede dibujar, pero

para realizar esos dibujos se tiene que utilizar el lenguaje Javascript, a través del API de Canvas. Para aprender a

diseñar en un CANVAS os recomendamos la lectura del Manual del Elemento Canvas del HTML5.

11.8.3.- Elementos para la web semántica

Como decíamos, la segunda clasificación de las nuevas etiquetas del HTML5 está relacionada con loque se llama la "web semántica". Vamos a dedicar otros artículos a estudiar en profundidad esta web semántica y por qué es importante utilizarla ya mismo en nuestros proyectos, pero de momento veamos a continuación una lista de elementos que han sido agregados al HTML para especificar qué son y no cómo se deben mostrar en la página.

Secciones dentro de una página: Algunas de las nuevas etiquetas nos sirven para decir qué secciones contiene una página.

• ARTICLE: Especifica un artículo, es decir, una unidad de contenido. • SECTION: Es una sección dentro de un documento. • HEADER: La cabecera de una página. • FOOTER: El pie de página o informaciones que formen el pie de una sección. • ASIDE: Es una parte de la web que muestra contenido accesorio, generalmente colocado en

un panel lateral. • NAV: con el que colocar el navegador principal de una página web.

Otros tipos de informaciones: Hay otras muchas etiquetas que nos sirven para definir qué es el contenido que se escribe dentro.

• BDI: Define una parte del texto que debe ser entendido aparte de la línea de contenido que se esté escibiendo.

• MENU: una lista de opciones que formen parte de un menú. • COMMAND: Uno de los elementos o botones de un menú de opciones. • DETAILS: Detalles o información suplementaria que se puede ver u ocultar por el usuario. • SUMMARY: Encabezamiento para detalles especificados en DETAILS. • FIGURE: es un contenido que ilustre el artículo, como fotos, diagramas, ilustraciones, etc. • FIGCAPTION: El pie o explicación de un FIGURE. • HGROUP: Un grupo de encabezamientos, útil cuando se tiene diversos bloques de

encabezamientos del mismo nivel H1, H2... • MARK: Un texto o información que es remarcable.

http://desarrolloweb.com/manuales/21/

Manual de HTML – DesarrolloWeb.com 108 / 108

• TIME: Para escribir una fecha, una hora o ambas. • WBR: Define un posible salto de línea.

En el próximo artículo veremos unas explicaciones más conceptuales acerca de las etiquetas semánticas y cómo éstas deben cambiar el modo en el que se entiende la composición de una página web.

Artículo por Miguel Angel Álvarez

http://desarrolloweb.com/manuales/21/