¿Cómo funciona esto?

Básicamente la pieza clave es el "browser", "navegador", "visualizador" o "cliente" o como quieras llamarle, HTML...

Seguir leyendo
¿Cómo funciona esto? 2

La idea es sencilla: sólo tienes que crear un documento con tu editor preferido, como documento...

Seguir leyendo
Introduccion al HTML

Elementos en un documento HTML- En esta guía, a las instrucciones que forman el lenguaje HTML les llamaremos...

Seguir leyendo
Estructura de una pagina

Estructura de una página HTML- Las páginas HTML están estructuradas en dos partes diferenciadas: la HEAD...

Seguir leyendo
Cabecera de una pagina

La HEAD es la primera de las dos partes en que se estructura un documento HTML. En la HEAD reside información...

Seguir leyendo
Cuerpo de una pagina

El cuerpo (BODY) es la segunda y última de las dos partes en que se estructura un documento HTML. Por supuesto...

Seguir leyendo
Textos en color

Para definir distintos tamaños de letra, en HTML se utiliza el elemento lleno donde x es un número que puede...

Seguir leyendo
Tamaños y tipos de letra

Se puede controlar el color del texto utilizando el elemento con el atributo COLOR="xxx", donde "xxx" es el nombre...

Seguir leyendo
Bloques y Separadores

Si se analiza una página cualquiera veremos que, en realidad, está compuesta de distintos bloques. Es algo así...

Seguir leyendo
Textos preformateados

Posiblemente ya te habrás dado cuenta de que, cuando escribes un texto con tu editor, a la hora de ver lo hecho con el...

Seguir leyendo
Otros efectos en el texto

Una o varias líneas de texto, pueden estar centradas respecto a los márgenes de la ventana. Esto afecta sólo...

Seguir leyendo
Listas y menús

Hay elementos que permiten crear texto con varios formatos de listado: Estos pueden ser ordenados (se refiere a...

Seguir leyendo
Tablas

Las tablas son sin duda uno de los elementos más potentes del HTML. Con pocos elementos se pueden conseguir...

Seguir leyendo
Códigos hexadecimales

Estos códigos de color se pueden utilizar como valor de atributo en los elementos <FONT COLOR> y <BODY...

Seguir leyendo
Creación de enlaces

El siguiente es sin duda el elemento más importante del HTML, ya que permite realmente "navegar" por uno o varios...

Seguir leyendo
Insertar imagenes

Insertar imágenes en un documento permite crear páginas mucho más atractivas. Según el tipo de gráficos utilizado se...

Seguir leyendo
Imágenes de fondo

El fondo (background) de esta capa es una imagen en formato GIF. Es un atributo del elemento <DIV> se escribe así:...

Seguir leyendo
Ejemplos de listas

Se escriben todas igual, sólo hay que cambiar el nombre de los gráficos:...


Seguir leyendo
Introducción a los Formularios

Esta es una de las partes más técnicas y complejas del HTML. Los formularios o forms en inglés, son unas páginas...

Seguir leyendo
¿Cómo se escriben los formularios?

La base del formulario es el elemento <FORM>, y es el que define una zona de la página como formulario. En...

Seguir leyendo

¿Cómo funciona esto?

Básicamente, la cosa es simple: la pieza clave es el "browser", "navegador", "visualizador" o "cliente" o como quieras llamarle, HTML, es decir, el programa que ahora mismo estás utilizando para ver esto. Todas las codificaciones de efectos en el texto que forman el lenguaje HTML no son más que instrucciones para el visualizador. Partiendo de esto, se entiende el porqué no se ve lo mismo con todos los visualizadores. Depende de cómo estén diseñados y para qué versión de lenguaje estén diseñados.

Actualmente existen multitud de ellos, aunque los más conocidos son el Internet Explorer de Microsoft (en lo sucesivo IE), el Netscape Navigator de Netscape (en lo sucesivo Netscape), o el Mozilla Firefox (que en realidad es el nuevo Netscape), el nuevo Chrome de google y sin olvidar el navegador Opera, que tiene fama de ser el que más respeta los estándares, cosa muy de agradecer en estos tiempos.

Todo lo que se dice en esta guía funciona correctamente con Netscape, Opera o Firefox, casi todo con el IE. Algunas cosas puede que no se vean bien dependiendo del navegador utilizado, sobre todo si son versiones antiguas.

¿Cómo funciona esto?(continuación)

La idea es sencilla: sólo tienes que crear un documento con tu editor preferido (como documento entenderemos el conjunto de ficheros, tanto de texto como de imágenes, que forman las distintas páginas), guardarlo con la extensión .htm o .html, abrirlo con tu navegador preferido, y ya tienes un hipertexto en marcha.

Las páginas o documentos creados pueden residir en el disco duro de tu ordenador personal, en un disquete, en un CD-ROM, o estar a varios miles de kilómetros en otro ordenador llamado servidor web o servidor http, que es el protocolo utilizado. Si es así, entonces te estarás moviendo por la WWW (World Wide Web) que es como se ha dado en llamar a este tipo de servicios de Internet.

Así pues, en esencia, una página escrita en HTML no es más que texto normal, escrito con cualquier editor, y al que, cuando se le quiere dar algun aspecto especial, como por ejemplo el tamaño de la letra, habrá que acompañar de ciertos códigos para indicar el efecto deseado. A estos códigos se les llama elementos del lenguaje.

Pero no hay que olvidar que al fin y al cabo no hablamos más que de texto. Simple y llano texto. Por lo tanto, para montajes sencillos, en los que no se requiera ningún efecto especial, nos podemos olvidar hasta del mismísimo HTML. El visualizador nos presentará perfectamente cualquier página ".txt" generada por cualquier editor, y los links entre documentos sólo requieren un simple y sencillo comando. Y aún así podremos conseguir el tipo y tamaño de letra y colores de texto y fondo que queramos, simplemente configurando el visualizador.

Como ya habrás deducido, lo primero es crear las páginas en tu máquina, es decir, en local, y eso ya te permite navegar por tu documento, simplemente abriendo las páginas creadas con tu navegador preferido.

Introducción al HTML

Elementos en un documento HTML

En esta guía, a las instrucciones que forman el lenguaje HTML les llamaremos elementos. Otros autores también las denominan "TAGS", o "ETIQUETAS". La notación de los elementos consiste en los símbolos < y > que encierran dentro una instrucción.

Los elementos pueden ser llenos o vacíos.

Elementos llenos

Se forman escribiendo la instrucción correspondiente seguida del texto al que se quiere aplicar la instrucción y se termina repitiendo la instrucción pero con una barra inclinada inmediatamente antes de la misma. Por ejemplo, el elemento H1 que sirve para dar el máximo tamaño al texto, se escribirá:

<H1> Texto de prueba </H1>.


y este sería el resultado:

Texto de prueba

Si olvidas poner </H1> todo el resto de la página tendrá el mismo tamaño grande.

Elementos vacíos

Los elementos vacíos se escriben como los llenos, pero no es necesario poner la instrucción repetida al final con una barra. Esto se debe a que estos elementos no producen un efecto sobre el texto. Generalmente se utilizan para separar bloques de texto, y por tanto no es necesario indicar su fin. Empiezan y terminan en el mismo punto. Por ejemplo, el elemento <HR> que sirve para dibujar una linea horizontal en la pantalla, se escribirá:

<HR>

Y este sería el resultado:


Elementos con argumento

Algunos elementos se escriben con argumento. Es como pasarle parámetros a la instrucción, y se llaman atributos del elemento.

Por ejemplo, el elemento <A> que sirve para hacer un link (enlace) con otro documento o con otra página del actual, se escribirá:

<A HREF="http://www.miservidor.com/mifichero.htm"> Link de prueba  </A>.

Este es un elemento lleno donde al atributo HREF se le asigna el valor que aparece entre comillas: "http://www.miservidor.com/mifichero.htm". El texto al que afecta este elemento es Link de prueba y realiza un link con el fichero mifichero.htm que está en el servidor www.miservidor.com.

Los elementos pueden escribirse tanto en mayúsculas como en minúsculas. Puede ser preferible la primera opción ya que aporta claridad al documento fuente, y eso se agradece a la hora de hacer correcciones, pero CUIDADO, el valor de algunos atributos hay que escribirlos EXACTAMENTE como deban ser. En el ejemplo anterior no funcionaría el link si escribiéramos www.miservidor.com en mayúsculas, eso es un nombre de máquina y sería interpretado como OTRA máquina.

Los elementos pueden anidarse unos con otros, teniendo cuidado de poner los cierres en el lugar adecuado. Por ejemplo, el elemento <H1> combinado con <I> que sirve para generar texto en itálica, se escribirá:

<H1><I>Texto de prueba </I></H1>.

y este sería el resultado:

Texto de prueba

Los elementos, en HTML, los puedes escribir tanto en mayúsculas como en minúsculas. Funciona igual <P> que <p>. A la hora de revisar el código escrito, resulta más claro si se escribieron en mayúsculas, pero si en el futuro hay que convertir la página a otro estándar, como el XHTML, no se admitirán las mayúsculas. Si no piensas migrar a otras tecnologías, hazlo como más cómodo te resulte.

Estructura de una página HTML

Las páginas HTML están estructuradas en dos partes diferenciadas: la HEAD (cabecera) y el BODY(cuerpo).

Ejemplo de página

Si escribes:

<!Tipo de documento>
<HTML>
<HEAD>
<TITLE> Documento de prueba </TITLE>
</HEAD>
<!-- Esto es un comentario-->
<BODY>
<H1> Esto es una "demo" de documento HTML </H1>
Esto es el más sencillo de los documentos HTML.
</BODY></HTML>

El tipo de documento no es obligatorio a efectos prácticos, es decir que la página se verá igual tanto si lo escribes como si no. Sólo sirve como identificación del tipo de contenido del fichero a los efectos de cumplir las especificaciones de estándar recomendadas por el consorcio W3C, que es el organismo que regula el lenguaje. Por ejemplo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://w3.org/TR/REC-html40/loose.dtd">

Indica que cumple el estándar HTML 4.0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://w3.org/TR/REC-html40/strict.dtd">

Significa que cumple el estándar HTML 4.0 y, además, no contiene elementos desaconsejables.

Y esta es una definición de marcos que cumple el estándar HTML 4.0:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
"http://w3.org/TR/REC-html40/frameset.dtd">

En el HTML 4.0 se consideran desaconsejables aquellos elementos que, aún siendo soportados, han sido sustituidos por otros y, por ello, es posible que sean eliminados en el futuro. En cualquier caso, el que un elemento escrito en tus páginas se vea o no, dependerá siempre del navegador utilizado y/o de su versión, no de lo que diga el estándar.

Puedes ver el aspecto real del ejemplo de página pulsando aquí.

Para escribir comentarios en la página (que sólo se ven en el texto fuente, pero no en el visualizador) se utilizará el elemento

<!-- -->

cuidado: el que no se vea de forma normal en el navegador, no significa que no pueda verse el código fuente. Nunca escribas comentarios con claves de acceso o datos confidenciales.

Cabecera (HEAD) de un documento HTML

La HEAD es la primera de las dos partes en que se estructura un documento HTML.

En la HEAD reside información acerca del documento, y generalmente no se ve cuando se navega por él. En la HEAD se pone el elemento lleno <TITLE> que es una breve descripción que identifica la página.

No hay que confundir el elemento <TITLE> con el nombre del fichero. Por ejemplo, esta página está contenida en un fichero llamado head.htm y el texto de su <TITLE> es: Head de un documento. Se escibirá asi:

<HEAD>
<TITLE>Head de un documento </TITLE>
</HEAD>

Dentro de la HEAD puede utilizarse otro elemento: META. Por ejemplo, si se escribe:

<HEAD>
<TITLE>Head de un documento </TITLE>
<META HTTP-EQUIV="Refresh" CONTENT="10">
</HEAD>
Esto hace que el visualizador vuelva a cargar la página activa al cabo de 10 segundos. También puede hacerse a un servidor. Así:
<HEAD> <TITLE>Head de un documento </TITLE>
<META HTTP-EQUIV="Refresh" CONTENT="10; URL=http://miservidor/mipagina.htm">
</HEAD>

Utiliza esto con precaución. Si sabes que el contenido de la página no va a cambiar, es inútil hacer esto, y si lo haces contra un servidor, puedes sobrecargarlo. Este elemento, sólo tendrá utilidad en casos muy especiales.

Otra opción es forzar la expiración inmediata en la caché del navegador de la página recibida, lo que provoca que la página sea solicitada de nuevo al servidor cada vez, en lugar de cargar la copia que ya existe en la máquina del cliente. Se escribe así:

<HEAD>
<TITLE>Head de un documento </TITLE>
<META HTTP-EQUIV="Expires" CONTENT="Tue, 20 Aug 1996 14:25:27 GMT">
</HEAD>
Si se pone una fecha ya pasada, como la que hay en el ejemplo, el navegador elimina inmediatamente de la caché la página recibida, y si no es pasada, lo hará en el momento indicado por la misma. También se le puede dar valor cero a la fecha de expiración:

<HEAD>
<TITLE>Head de un documento </TITLE>
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>

Otra opción es impedir directamente que el navegador guarde en caché la página. Esto es especialmente útil cuando se trabaja con formularios que consultan datos dinámicos:

<HEAD>
<TITLE>Head de un documento </TITLEv
<META HTTP-EQUIV="Expires" CONTENT="no-cache">
</HEAD>

Si tienes interés en que tus páginas aparezcan en los grandes buscadores de Internet, y puedan ser encontradas con facilidad, puedes poner las palabras clave que contiene la página separadas por comas. Por ejemplo:

<HEAD>
<TITLE>Head de un documento </TITLE>
<META NAME="keywords" CONTENT="HTML, internet  ">>
</HEAD>>

Este otro sirve para que los buscadores puedan ofrecer un breve resumen de los contenidos de tu página:

<HEAD>
<TITLE>Head de un documento </TITLE>
<META NAME="description" CONTENT="Manual para escribir HTML.">
</HEAD>

Puedes poner todos los elementos <META> que creas necesarios, pero sin repetirlos.

Cuerpo (BODY) de un documento HTML

El cuerpo (BODY) es la segunda y última de las dos partes en que se estructura un documento HTML. Por supuesto es obligatoria, ya que es aquí donde reside el verdadero contenido de la página, y por tanto, al contrario de la HEAD sí se ve cuando navegamos por ella.

Se escibirá asi:

<BODY>

texto texto texto texto texto texto texto texto texto texto texto texto
texto texto texto texto texto texto texto texto texto texto texto texto

</BODY>

Como ya habrás visto, los navegadores, por defecto, presentan el texto de una página ajustando los contenidos a la esquina superior izquierda de la pantalla. El elemento BODY tiene parámetros que permiten modificar los márgenes por defecto. Lo malo es que cada navegador los interpreta de una manera. Por ejemplo, Netscape utiliza solamente dos instrucciones que afectan simultáneamente a los márgenes superior e inferior e izquierdo y derecho respectivamente:

marginwidth="pixels", para los márgenes izquierdo y derecho. marginheight="pixels", para los márgenes superior e inferior.

En cambio, el Internet Explores, utiliza uno para cada cual:

leftmargin="pixels", para el margen izquierdo topmargin="pixels", para el margen superior rightmargin="pixels", para el margen derecho bottommargin="pixels", para el margen inferior

Donde pixels es el número de pixeles que se quiere mover cada margen hacia el interior de la página. Estos parámetros también son accesibles desde instrucciones de estilo.

Otro problema que suele presentarse con los márgenes es que a la hora de imprimir una página, cada impresora, junto con el navegador, se las ingeniarán para hacer justo lo contrario de lo que se desea... Tal vez algun dia todo esto funcione bien.

Otra cosa que puede controlarse desde BODY es el color que tomarán los links que pongamos en la página. Por ejemplo, para hacer que los links sean amarillos antes de ser visitados, azul-verde cuando son activados, y verdes después de haber sido utilizados, se escribe:

<BODY LINK="#FFFF00" VLINK="#22AA22" ALINK="#0077FF">

Tamaños y tipos de letra en HTML

Para definir distintos tamaños de letra, en HTML se utiliza el elemento lleno <Hx> </Hx> donde x es un número que puede variar entre 1 y 6, siendo 1 el tamaño mayor.

Se escribirán así:

<H1> Texto de prueba (H1)</H1>.
<H2> Texto de prueba (H2)</H2>
<H3> Texto de prueba (H3)</H3>
<H4> Texto de prueba (H4)</H4>
<H5> Texto de prueba (H5)</H5>
<H6> Texto de prueba (H6)</H6>

y este sería el resultado:

Texto de prueba (H1)

Texto de prueba (H2)

Texto de prueba (H3)

Texto de prueba (H4)

Texto de prueba (H5)
Texto de prueba (H6)

No hay que olvidar poner el cierre </Hx> a cada elemento utilizado. Este tipo de elemento se suele utilizar para escribir encabezamientos, ya que después del cierre automáticamente el visualizador inserta un salto de párrafo.

Por ejemplo: si escribes

<H1> Texto en H1 </H1> <H3> Texto en H3 </H3>

se verá:

Texto en H1

Texto en H3

Y no una cosa al lado de la otra, como cabría esperar. Este elemento admite un parámetro de alineación. Así, si escribes:

<H3 align=center> Texto en H3 </H3>

Texto en H3

Otra forma de cambiar los tamaños de letra es utilizar el elemento <FONT > con el atributo VALOR, que es un número entre 1 y 7. El valor por defecto del texto es 3. La gran diferencia de esta notación respecto a la anterior es que no se produce un salto de párrafo después de cada cambio, por lo que pueden hacerse cosas como esta:

<FONT SIZE=3>A</font>
<FONT SIZE=4>A</font>
<FONT SIZE=5>A</font>
<FONT SIZE=6>A</font>
<FONT SIZE=7>A</font>
<FONT SIZE=6>A</font>
<FONT SIZE=5>A</font>
<FONT SIZE=4>A</font>
<FONT SIZE=3>A</FONT>

Dará como resultado: A A A A A A A A

Se puede cambiar el tamaño por defecto (3) de toda la página con el elemento <BASEFONT SIZE=valor>. El texto tomará el tamaño indicado por valor y lo mantendrá hasta que aparezca otro elemento <BASEFONT SIZE=valor> y lo restaure o lo cambie por otro diferente. Tanto si se ha establecido un valor base como si se utiliza el valor por defecto, los tamaños también pueden indicarse de forma relativa, por lo que el valor puede ser positivo (+) o negativo (-) respecto al tamaño base. Por ejemplo estos dos valores dan el mismo resultado:

<FONT SIZE=5>ABcde</FONT>
<FONT SIZE=+2>ABcde</FONT> 
ABcde ABcde

Se dispone tambien del atributo del elemento <FONT> que permite elegir tipos de letra entre los varios de que dispone por defecto Windows. Se trata del atributo FACE. Este atributo permite forzar el tipo de letra que el diseñador de la página quiere que vea el cliente, sin importar el que por defecto tenga establecido el visualizador.

Si escribes

<FONT FACE="arial">Texto de prueba 12345 con tipo ARIAL</FONT>
<FONT FACE="times new roman">Texto de prueba 12345 con tipo TIMES NEW ROMAN</FONT>
<FONT FACE="courier new">Texto de prueba 12345 con tipo COURIER NEW</FONT>
<FONT FACE="courier">Texto de prueba 12345 con tipo COURIER</FONT>
<FONT FACE="roman">Texto de prueba 12345 con tipo ROMAN</FONT>
<FONT FACE="small fonts">Texto de prueba 12345 con tipo SMALL FONTS</FONT>

Se verá:

Texto de prueba 12345 con tipo ARIAL
Texto de prueba 12345 con tipo TIMES NEW ROMAN
Texto de prueba 12345 con tipo COURIER NEW
Texto de prueba 12345 con tipo COURIER
Texto de prueba 12345 con tipo ROMAN
Texto de prueba 12345 con tipo VERDANA
Texto de prueba 12345 con tipo SMALL FONTS

Por supuesto, este atributo es compatible con todos los demás ya conocidos, como color y tamaño. Por ejemplo, si escribes

<FONT FACE="impact" SIZE=6 COLOR="red">
Texto de prueba 12345 con tipo IMPACT</FONT>
Se verá:

Texto de prueba 12345 con tipo IMPACT

Se pueden hacer todas la combinaciones que se quieran, pero hay que tener presente que si en la máquina cliente no está instalada una determinada fuente, ésta no se verá y en su lugar aparecerá la fuente por defecto del visualizador. No es interesante por tanto, definir tipos raros, que probablemente, no llegarán a verse nunca.

Si a pesar de todo, se define un tipo del que se tienen dudas de que exista en el cliente, se pueden indicar otros tipos alternativos, de forma que el navegador si no tiene el primer tipo, utilizará el siguiente, y si tampoco lo tiene el próximo, etc. Así:

<FONT FACE="raro, courier" SIZE=4 COLOR="red">
Texto de prueba 12345 con tipos alternativos</FONT>
Se verá:

Texto de prueba 12345 con tipos alternativos

Como puedes ver, se ha declarado como primer tipo de letra el llamado "raro" que, por supuesto, no existe, y el navegador pasa a utilizar el siguiente, "courier", que sí es habitual.

Texto en color

Se puede controlar el color del texto utilizando el elemento con el atributo COLOR="xxx", donde "xxx" es el nombre en inglés del color que se desea. Hay que tener presente que algunos no se verán o se verán mal si la máquina no soporta, por lo menos, 256 colores. Por supuesto, este efecto es anidable con el de tamaño y todos los demás.

Si escribes:

<B><FONT COLOR="red">Texto ROJO </FONT>
<br>
<FONT COLOR="blue">Texto AZUL </FONT>
<br>
<FONT COLOR="navy">Texto AZUL MARINO </FONT>
<br>
<FONT COLOR="green">Texto VERDE </FONT>
<br>
<FONT COLOR="olive">Texto OLIVA </FONT>
<br>
<FONT COLOR="yellow">Texto AMARILLO </FONT>
<br>
<FONT COLOR="lime">Texto LIMA </FONT>
<br>
<FONT COLOR="magenta">Texto MAGENTA </FONT>
<br>
<FONT COLOR="purple">Texto PURPURA </FONT>
<br>
<FONT COLOR="cyan">Texto CYAN </FONT>
<br>
<FONT COLOR="brown">Texto MARRON </FONT>
<br>
<FONT COLOR="black">Texto NEGRO </FONT>
<br>
<FONT COLOR="gray">Texto GRIS </FONT>
<br>
<FONT COLOR="teal">Texto TEAL </FONT>
<br>
<FONT COLOR="white">Texto BLANCO </FONT>
<br>
</B>
Se verá:

Texto ROJO
Texto AZUL
Texto AZUL MARINO
Texto VERDE
Texto OLIVA
Texto AMARILLO
Texto LIMA
Texto MAGENTA
Texto PURPURA
Texto CYAN
Texto MARRON
Texto NEGRO
Texto GRIS
Texto TEAL
Texto BLANCO

He aquí una combinación de colores y tamaños: Si escribes:

<FONT SIZE=6 COLOR="red">E</FONT><FONT SIZE=4>sto es una </FONT>
<FONT SIZE=6 COLOR="red">P</FONT><FONT SIZE=4>rueba </FONT>
Resulta:

Esto es una Prueba

Los colores también se pueden definir en hexadecimal (por ejemplo el rojo es <FONT COLOR=#FF0000>). Cuando son colores básicos, como los del ejemplo de arriba, es más cómodo escribir el nombre aunque sea en inglés, pero cuando se trata de definir un color que "no tiene nombre" no hay más remedio que usar la codificación hexadecimal. En el índice encontrarás una tabla con los códigos de colores.

Las definiciones de bloques y separadores.

Si se analiza una página cualquiera veremos que, en realidad, está compuesta de distintos bloques. Es algo así como un mosaico en el que cada parte de la composición final tiene sus propios contenidos, que pueden ser texto, gráficos o las dos cosas. Dependiendo de la composición que se quiera hacer, habrá que elegir los elementos más convenientes para que nuestros contenidos aparezcan finalmente con la alineación debida, el tamaño apropiado, etc.

Comenzaremos con el elemento <Hx> </Hx> donde x es un número que puede variar entre 1 y 6, siendo 1 el tamaño mayor.

Se escribirán así:

<H1> Texto de prueba (H1)</H1>.
<H2> Texto de prueba (H2)</H2>
<H3> Texto de prueba (H3)</H3>
<H4> Texto de prueba (H4)</H4>
<H5> Texto de prueba (H5)</H5>
<H6> Texto de prueba (H6)</H6>
y este sería el resultado:

Texto de prueba (H1)

Texto de prueba (H2)

Texto de prueba (H3)

Texto de prueba (H4)

Texto de prueba (H5)
Texto de prueba (H6)

No hay que olvidar poner el cierre </Hx> a cada elemento utilizado.

Este tipo de elemento suele emplearse para escribir encabezamientos, ya que después del cierre, automáticamente, el visualizador inserta un salto de párrafo.

Por ejemplo, si escribes:

<H1> Texto en H1 </H1> <H3> Texto en H3 </H3>
se verá:

Texto en H1

Texto en H3

Y no una cosa al lado de la otra, como cabría esperar. Este elemento admite un parámetro de alineación. Así, si escribes:

<H3 align=center> Texto en H3 </H3>

Texto en H3

Para definir los párrafos se utiliza el elemento lleno <P> </P> (por Paragraph). Aunque a menudo no se utiliza el cierre </P>, ya que el texto continuará normalmente hasta que encuentre otro párrafo <P>, es conveniente acostumbrarse a ponerlo siempre. En la nueva definición del XHTML el cierre es obligatorio.

Se escribirá así:

<P> Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1
Texto 1 Texto 1 </P>

<P> Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 </P>
Y este sería el resultado:

Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1

Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2

Como puede verse, hay una línea en blanco entre los dos bloques. Si no se quiere dejar esa línea vacía entre los dos párrafos puede utilizarse el elemento <BR> (por BReak). Es decir, que el elemento <BR> es un separador, no un indicador de bloque.

Se escribirá así:

<P>Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1
Texto 1 Texto 1 <BR>
Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 </P> 
y este sería el resultado:

Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2

El elemento <P> admite cuatro atributos de alineación: ALIGN=LEFT (por defecto), ALIGN=RIGHT , ALIGN=CENTER y ALIGN=JUSTIFY Se escribirán así:

<P ALIGN=LEFT>
Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1
Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 </P>
<P ALIGN=RIGHT>
Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2
Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 </P>
<P ALIGN=CENTER>
Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3
Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 </P>
<P ALIGN=JUSTIFY>
Texto 4 Texto 4 Texto 4 Texto 4 Texto 4  Texto 4 Texto 4 Texto 4
Texto 4 Texto 4 Texto 4 Texto 4 Texto 4  Texto 4 Texto 4 Texto 4 </P>
y este sería el resultado:

Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1 Texto 1

Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2 Texto 2

Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3 Texto 3

Texto 4 tex Texto 4 Texto 4 tex Texto 4 Texto 4 tex Texto 4 Texto 4 Texto 4 Texto 4 Texto 4 Texto 4 Texto 4 tex Texto 4 Texto 4 Texto 4 Texto 4 tex Texto 4 Texto 4 tex Texto 4 Texto 4 tex Texto tex 4 Texto 4 Texto 4 tex Texto 4 Texto 4 tex Texto 4 Texto 4 tex Texto tex 4 Texto 4 Texto 4 tex Texto 4 Texto 4 tex Texto 4 Texto 4 tex Texto tex 4 Texto 4 Texto 4 tex Texto 4 Texto 4 tex Texto 4 Texto 4 tex Texto tex 4 Texto 4


Un elemento que se comporta de forma parecida a <BR> es <DIV> pero que admite los mismos atributos que <P>: ALIGN=LEFT ALIGN=RIGHT y ALIGN=CENTER

Se escribe así:

<DIV ALIGN=LEFT> texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 </DIV> <DIV ALIGN=RIGHT> texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 < /DIV> <DIV ALIGN=CENTER> texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 </DIV> Fíjate en que aquí sí se utiliza el cierre </DIV>. Este sería el resultado:

texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1
texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2 texto2
texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3 texto3

Como puedes ver, salvo por las alineaciones, que ya se hacen con <P>, no tiene ninguna utilidad práctica, y en general solamente se utiliza para definir bloques especiales definidos con instrucciones de estilo (bordes, tamaño, situación, alineación, color, etc., etc.)


Otro elemento que es casi igual que <DIV> pero que no admite atributos de alineado, y no produce separación de párrafo ni de línea es <SPAN>. En realidad, de forma directa no sirve para nada, y ha sido creado también para aplicar las hojas de estilo.

Se escribe así:

<SPAN>
texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1
texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1 texto1
</SPAN>

Otro interesante efecto es el elemento lleno <BLOCKQUOTE> que sirve para presentar párrafos adentrados (como si estuviesen tabulados).

Se escribirá así:

<BLOCKQUOTE>
texto texto texto texto texto texto texto texto texto texto
texto texto texto texto texto texto texto texto texto texto
<BLOCKQUOTE>
texto texto texto texto texto texto texto texto texto texto
texto texto texto texto texto texto texto texto texto texto
</BLOCKQUOTE>
</BLOCKQUOTE>
Y este sería el resultado:
texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto
texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto

Fíjate que en este ejemplo hay un anidamiento, y por tanto, debe haber dos cierres <BLOCKQUOTE> al final

Otro separador de bloques de texto es el elemento vacío <HR> (por Horizontal Rule). Este sería el resultado:


Al igual que al texto, se le puede incluir un parámetro de color, pero no funciona en todos los navegadores. También se puede cambiar su apariencia añadiéndole el atributo . Así:
<HR NOSHADE>
El resultado es:
El elemento
admite dos parámetros: WIDTH y SIZE. El primero define la longitud de la línea y el segundo su anchura. No es obligado usar los dos a la vez Por ejemplo, si escribes
<HR WIDTH=400 SIZE=5>
El resultado será:
El valor del atributo WIDTH se puede expresar, como en el ejemplo anterior, en número de puntos (píxels), o en tantos por ciento referidos al ancho total de la ventana. Así:
<HR WIDTH=80% SIZE=5> 
El resultado será:
Además se puede indicar su posición respecto a los márgenes de la ventana con los atributos ALIGN=CENTER (por defecto) ALIGN=LEFT y ALIGN=RIGHT. Por ejemplo:
<HR WIDTH=80% SIZE=5 ALIGN=LEFT>
El resultado será:

O bien:

<HR WIDTH=80% SIZE=5 ALIGN=RIGHT>
El resultado será:

Hay otro elemento, aparecido en la versión 6 de Netscape, que permite rodear un texto con un marco, y opcionalmente ponerle una etiqueta. Se trata del elemento: <FIELDSET>. Recuerda que si no tienes la versión adecuada de navegador, en los siguientes ejemplos sólo verás el texto, pero no los enmarcados. Si se escribe:

<FIELDSET>
Esto es una prueba de enmarcado
</FIELDSET>

Se obtiene:

Esto es una prueba de enmarcado

Este elemento tiene un parámetro que permite etiquetar el recuadro:

Si se escribe:

<FIELDSET>

       <LEGEND>Esto es una etiqueta</LEGEND>
 Esto es una prueba de enmarcado

</FIELDSET>

Se obtiene:

Esto es una etiquetaEsto es una prueba de enmarcado

El parámetro <FIELDSET> tiene tres atributos que indican la posición de la etiqueta: LEFT (por defecto), RIGHT y CENTER, aunque no funciona en todos los navegadores. Por ejemplo:

<FIELDSET>
       <LEGEND ALIGN=CENTER> Esto es una etiqueta </LEGEND>
 Esto es una prueba de enmarcado
</FIELDSET>

Se obtiene:

Esto es una etiquetaEsto es una prueba de enmarcado

Si en estos ejemplos no ves el recuadro o la etiqueta no está donde debiera, es porque no tienes una versión de navegador adecuada.

Por supuesto, dentro del recuadro generado por <FIELDSET> se puede poner cualquier cosa: formularios, imágenes, texto, etc.

Textos preformateados

Posiblemente ya te habrás dado cuenta de que, cuando escribes un texto con tu editor, a la hora de ver lo hecho con el visualizador, algunas cosas no están como tú las pusiste... Como por ejemplo poner dos o tres espacios en blanco entre palabras, o intentar encolumnar los datos de una pequeña tabla: ¡acaba todo junto y en la misma línea!

Este efecto se puede eliminar con el elemento lleno <PRE> . Al texto que va dentro del elemento PRE se le pueden aplicar todos los elementos que se quiera, siempre que sean elementos que no alteren la posición del texto. Por ejemplo si utilizas el elemento <H>, se rompería el preformateo pero no ocurrirá lo mismo con <FONT SIZE>. Por defecto, los textos preformateados se ven con tipo de letra "curier", es decir de paso fijo y los no preformateados en "Times New Roman". Estos tipos son configurables en el visualizador.

Se escribirá así:

<PRE>

1 2 3 4 5 6 7 <B>Esto es una demostracion de</B> 8 9 10 11 12 13 14 texto preformateado. 15 16 17 18 19 20 21 </PRE>

y este sería el resultado:

1  2  3  4  5  6  7         Esto es una demostracion de 

8  9 10 11 12 13 14         texto preformateado.

15 16 17 18 19 20 21

Dentro de un bloque preformateado también se pueden poner links a otros documentos y codificación para caracteres especiales (se verá más adelante lo que es eso). Este elemento admite el parámetro WIDTH=x donde x define la máxima longitud de línea visualizada. El navegador, por defecto, elimina varios espacios en blanco y los convierte en uno solo. Si lo que deseas es separar una palabra de otra más de un espacio, se puede recurrir a una instrucción especial que le indica esto al navegador, pero hay que darla codificada; funciona como un avance de carro, y aunque en pantalla cumple su objetivo, cuando se imprime la página, no todas las impresoras son capaces de interpretarlo correctamente. Se escribe: y como alias se utiliza:

Por ejemplo, si escribes:

texto texto     texto texto
Se ve así:

texto texto texto texto

Para definir espacios en blanco sin utilizar el elemento <PRE> hay que utilizar el elemento <SPACER>. este elemento puede ir acompañado de los atributos TYPE y SIZE y se puede utilizar en cualquier zona de una página, pero donde más se aprecia su efecto es en las columnas. Se escibirá asi:
<MULTICOL COLS=2>
<SPACER TYPE=HORIZONTAL SIZE=35>
texto texto texto texto texto texto texto texto texto texto texto texto
<P>
<SPACER TYPE=HORIZONTAL SIZE=35>
texto texto texto texto texto texto texto texto texto texto texto texto
<SPACER TYPE=VERTICAL SIZE=35>
texto texto texto texto texto texto texto texto texto texto texto texto
</MULTICOL>

Y se ve así:

texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto

texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto

Como puedes ver, con TYPE=horizontal deja espacio en blanco a la izquierda de la primera linea. Es el valor por defecto. TYPE=vertical deja espacio en blanco por arriba de la primera linea. Para ambos tipos el tamaño del espacio se da en puntos (pixeles) con el atributo SIZE. El valor por defecto es 0.

Fíjate en que entre las dos instrucciones con tipo horizontal hay un elemento <P>. En efecto, es necesario indicarle a <SPACER> donde termina el párrafo para que ejecute la siguiente instrucción del mismo tipo. Este elemento no funciona con el navegador de Microsoft. Para conseguir columnas sin utilizar este elemento la única solución es emplear tablas: <TABLE>

Otros efectos en el texto

Una o varias líneas de texto, pueden estar centradas respecto a los márgenes de la ventana. Esto afecta sólo al texto que hay entre <CENTER> y </CENTER>, pero no a todo el párrafo. Por ejemplo:
texto texto texto texto texto texto texto texto texto texto texto texto
<CENTER>texto centrado texto centrado</CENTER>
texto texto texto texto texto texto texto texto texto texto texto texto  
Se verá:

texto texto texto texto texto texto texto texto texto txto texto texto texto texto texto texto texto

texto centrado texto centrado
texto texto texto texto texto texto texto texto texto txto texto texto texto texto texto texto texto

Esto, además de a texto sólo, se puede aplicar a una tabla, una imagen o cualquier otra cosa.

Quedan algunos otros elementos que modifican el aspecto del texto. Algunos, aparentemente, hacen la misma cosa, y otros no funcionan con el visualizador de Netscape, por lo que se omiten aquí.

Texto en negrita:
<B>Texto en negrita</B>
Texto realzado:
<STRONG>Texto realzado</STRONG>
Texto en itálica:
<I>Texto en itálica</I>
Texto con énfasis:
<EM>Texto con énfasis</EM>
Texto ejemplo de código:
<CODE>Texto ejemplo de código</CODE>
Texto teletipo:
<TT>Texto teletipo</TT>
Texto subrayado:
<U>Texto subrayado</U>
Texto tachado:
<STRIKE>Texto tachado</STRIKE>
Texto de dirección:
<ADDRESS>Texto de dirección</ADDRESS>
Texto intermitente
<BLINK>Texto intermitente</BLINK>
Texto superíndiceTexto normal
<SUP>Texto Superíndice</SUP>
Texto subíndiceTexto nomal
<SUB>Texto Subíndice</SUB>
Texto grande
<BIG>Texto grande</BIG>
Texto pequeño
<SMALL>Texto pequeño</SMALL>
En los navegadores de última generación se ha implementado un efecto que permite incluir explicaciones ocultas que aparecen al pasar el ratón por encima (sin pulsar), pero sin cambiar de página ni abrir ninguna ventana nueva. Por ejemplo, si escribes:

<ACRONYM TITLE="Hyper Text Markup Language">HTML</ACRONYM>

Al pasar el ratón sobre la palabra HTML, se desvela su significado: HTML

De funcionamiento similar al anterior también tenemos el elemento

<abbr TITLE="Hyper Text Markup Language">HTML</abbr>

Y este es el aspecto que toma el texto: HTML Este último elemento NO funciona con el navegador IE. Como puedes ver, los dos trabajan de la misma forma que el parámetro title que se aplica al elemento <A> y se diferencian de éste solamente por el tipo de subrayado, que es más ligero.

Listas y menús

Hay elementos que permiten crear texto con varios formatos de listado: Estos pueden ser ordenados <OL> (se refiere a numerados, no ordenados por algun criterio), desordenados <UL> (no numerados), directorios <DIR>, menu <MENU> y listados de definición <DL>. Veamos cómo es la sintaxis básica y apariencia de estos elementos, a partir de los cuales, pueden hacerse combinaciones muy complejas mediante anidamientos de unos con otros, hasta conseguir prácticamente cualquier presentación deseada:

Esto es una lista ordenada (numerada):

  1. Primera linea
  2. Segunda linea
Se escribe:
<OL>
<LI>Primera linea
<LI>Segunda linea
</OL>
Fíjate en que los elementos <LI> no necesitan cierre. Terminan cuando aparece otro igual o se cierra la lista. Puede ser conveniente poner el cierre </LI> si se van a aplicar instrucciones de estilo. Esto es una lista desordenada ( no numerada):
  • Primera linea
  • segunda linea
Se escribe:
<UL>
<LI>Primera linea
<LI>Segunda linea
</UL>
En este caso los números han sido sustituidos por unos puntos gruesos. Esa es la apariencia por defecto; se puede cambiar usando el atributo TYPE con tres valores (el valor por defecto es DISC). Con el valor CIRCLE se verá:
  • Primera linea
  • segunda linea
Se escribe:
<UL TYPE=CIRCLE>
<LI>Primera linea
<LI>Segunda linea
</UL>

También puede usarse el valor SQUARE. Así:

  • Primera linea
  • segunda linea
Se escribe:
<UL TYPE=SQUARE>
<LI>Primera linea
<LI>Segunda linea
</UL>
Las listas ordenadas no sólo se pueden ordenar con números. También se pueden utilizar letras y numeración romana tanto en mayúsculas como minúsculas. Para esto se utiliza el atributo TYPE del elemento <OL> con los siguientes valores: TYPE=1 (por defecto) para números, TYPE=A para letras mayúsculas, TYPE=a para letras minúsculas, TYPE=I para numeración romana en mayúsculas y TYPE=i para numeración romana en minúsculas.

Esto es una lista ordenada con letras mayúsculas:

  1. Primera linea
  2. Segunda linea
  3. Tercera linea
  4. Cuarta linea
Se escribe:
<OL TYPE=A>
<LI>Primera linea
<LI>Segunda linea
<LI>Tercera linea
<LI>Cuarta linea
</OL> 
Esto es una lista ordenada con letras minúsculas:
  1. Primera linea
  2. Segunda linea
  3. Tercera linea
  4. Cuarta linea
Se escribe:
<OL TYPE=a>
<LI>Primera linea
<LI>Segunda linea
<LI>Tercera linea
<LI>Cuarta linea
</OL>
Esto es una lista ordenada con numeración romana en mayúsculas:
  1. Primera linea
  2. Segunda linea
  3. Tercera linea
  4. Cuarta linea
Se escribe:
<OL TYPE=I>
<LI>Primera linea
<LI>Segunda linea
<LI>Tercera linea
<LI>Cuarta linea
</OL>
Esto es una lista ordenada con numeración romana en minúsculas:
  1. Primera linea
  2. Segunda linea
  3. Tercera linea
  4. Cuarta linea
Se escribe:
<OL TYPE=i>
<LI>Primera linea
<LI>Segunda linea
<LI>Tercera linea
<LI>Cuarta linea
</OL> 
En algunos casos puede interesarnos que la lista no comience por el número 1 (por ejemplo si es una lista que continua en otra página). Se puede conseguir con el atributo START combinado con TYPE.

Esto es una lista ordenada con letras mayúsculas y que comienza por la E:

  1. Primera linea
  2. Segunda linea
  3. Tercera linea
  4. Cuarta linea
Se escribe:
<OL TYPE=A START=5>
<LI>Primera linea
<LI>Segunda linea
<LI>Tercera linea
<LI>Cuarta linea
</OL>
El número que pones en el atributo START indica en que número o letra comenzará la lista. la E es la quinta letra. Esto es un menú:
  • Primera linea
  • Segunda linea
  • Se escribe:
    <MENU>
    <LI>Primera linea
    <LI>Segunda linea
    </MENU> 
    La diferencia entre un menú y una lista desordenada, es que las líneas en la lista desordenada comienzan en el margen izquierdo y las del menú unas posiciones más a la derecha (aunque eso depende del visualizador, con Netscape se ven igual). Esto es un directorio:
  • Primera linea
  • Segunda linea
  • Se escribe:
    <DIR>
    <LI>Primera linea
    <LI>Segunda linea
    </DIR> 
    Ocurre lo mismo que con el menú, con Netscape no se aprecia diferencia. Esto es una lista de definicion:
    Primera linea
    Segunda linea
    Se escribe:
    <DL>
    <DT>Primera linea
    <DD>Segunda linea
    </DL> 
    Fíjate que ahora en lugar del elemento <LI> se utiliza <DT> y <DD>, y como tipo <DL>. Estos tres nuevos elementos también se pueden usar con cualquiera de los anteriores tipos de lista, alterando por completo su apariencia. Para hacerse una idea de la variedad de aspectos que se pueden conseguir, lo mejor es ver la página de ejemplos de listados.

    Tablas

    Las tablas son sin duda uno de los elementos más potentes del HTML. Con pocos elementos se pueden conseguir efectos espectaculares. En el interior de las celdas de una tabla, que pueden ser con borde visible o invisible, se puede poner cualquier cosa: texto de cualquier tamaño y color, imágenes, links... Por supuesto, además de permitir cualquier contenido, tienen sus propios atributos de alineación tanto horizontal como vertical, y atributos de dimensionado. Por defecto se autodimensionan, es decir, se adaptan en tamaño a su contenido, pero también es posible definirlo de forma fija. Las tablas han sido utilizadas largo tiempo para maquetar el contenido de las páginas, y aunque las nuevas tendencias aconsejen hacer esto con bloques (capas XHTML), no es un elemento que vaya a desaparecer, y es mucho más sencillo de utilizar. El elemento básico de definición de tabla es <TABLE> </TABLE> y en su interior se disponen los sub elementos <TR> para definir una fila (Row) <TH> para definir una cabecera (Header) <TD> para definir una celda de datos (Data). Estos sub elementos también han de llevar sus correspondientes cierres: </TR> </TH> </TD>. Una cabecera <TH> es lo mismo que una celda de datos <TD> pero de forma automática el texto de su contenido recibe los atributos de negrita y centrado. Sólo es posible definirlas al principio de las filas, de las columnas o de ambas a la vez.

    He aquí una tabla-resumen de los elementos utilizados y los atributos que admite cada uno:

    Resumen de tablas
    TABLE TR TD TH CAPTION
    BORDER X - - - -
    BORDERCOLOR X - - - -
    ROWSPAN - - X X -
    COLSPAN - - X X -
    ALIGN - X X X X
    VALIGN - - X - -
    WIDTH X - X - -
    HEIGTH X - X - -
    CELLPADDING X - - - -
    CELLSPACING X - - - -
    NOWRAP - - X - -
    EVENTS X X X X -

    Veamos el significado de cada atributo:

    • BORDER Indica el ancho de los bordes de la tabla. Se mide en píxels. Si no se escribe este atributo, es equivalente a BORDER=0 (por defecto).
    • BORDERCOLOR Establece el color de los bordes de la tabla. No funciona igual en todos los navegadores.
    • CELLSPACING Indica el número de píxels que separan una celda de otra. Aunque pueda parecerlo, no hace lo mismo que BORDER. Su valor por defecto es 2.
    • CELLPADDING Indica los píxels de separación entre el borde de la celda y su contenido. Su valor por defecto es 1.
    • WIDTH Según donde se escriba, sirve para controlar el ancho de toda la tabla o de sus columnas. Si se incluye en <TABLE> puede indicar el tamaño tanto en píxels como en porcentaje respecto al ancho de la pantalla.
    • ALIGN Indica la alineación horizontal de los datos dentro de las celdas. Puede tener tres valores: LEFT (izquierda), RIGHT (derecha) y CENTER (centro).
    • VALIGN Indica la alineación vertical de los datos dentro de las celdas. Puede tener tres valores: TOP (arriba), BOTTOM (abajo) y MIDDLE (centro).
    • ROWSPAN Se utiliza en la definición de una celda (<TD>) o cabecera (<TH>) para indicar que su anchura o altura son equivalentes a un determinado número de filas.
    • COLSPAN Se utiliza en la definición de una celda (<TD>) o cabecera (<TH>) para indicar que su anchura o altura son equivalentes a un determinado número de columnas.
    • NOWRAP Para impedir que las líneas de texto dentro de una celda se trunquen en los espacios en blanco.
    • EVENTS Se pueden capturar todos los eventos típicos de los navegadores en cualquiera de las partes de una tabla. Para ello es necesario JavaScript, y no es compatible con todos los navegadores. Por ejemplo: <TABLE BORDER onMouseOver="javascript:alert('Aviso')"> ... </TABLE>

    Recientemente se han implementado al elemento <TABLE> algunos atributos muy interesantes que permiten definir qué bordes o líneas de la tabla se mostrarán:

    Este atributo sirve para definir qué bordes del marco de la tabla serán visibles: <TABLE FRAME="valor"> ... </TABLE> donde valor puede ser:

    • void - Ningún lado (por defecto).
    • above - Sólo el borde superior
    • below - Sólo el borde inferior.
    • hsides - Sólo los bordes superior e inferior.
    • vsides - Sólo los lados derecho e izquierdo.
    • lhs - Sólo el lado izquierdo.
    • rhs - Sólo el lado derecho.
    • box - Los cuatro lados.
    • border - Los cuatro lados (no es lo mismo que el ya conocido)
    Y este otro sirve para definir qué bordes de la tabla serán visibles: <TABLE RULES="valor"> ... </TABLE> donde valor puede ser:
    • none - Ninguna línea de división (por defecto).
    • groups - Sólo aparecen líneas de división entre grupos de filas y grupos de columnas.
    • cols - Sólo aparecerán líneas de división entre filas.
    • rows - Sólo aparece líneas de división entre columnas.
    Estos últimos atributos no funcionan igual en todos los navegadores, y no funcionan en absoluto si no son de la última generación. Según el navegador de que se trate, puede que haya que combinar más de un atributo para conseguir el efecto deseado. Lo mejor es hacer pruebas con algunas versiones para asegurarse.

    Las posibilidades son tan amplias, que lo mejor es ver la página de ejemplos de tablas que encontrarás en el índice.

    Códigos hexadecimales de color

    Estos códigos de color se pueden utilizar como valor de atributo en los elementos <FONT COLOR> y <BODY BGCOLOR FGCOLOR TEXT LINK VLINK ALINK>. Algunos no funcionarán en ciertos visualizadores, así como si Windows no está configurado con 256 colores al menos.

    La codificación de estos colores está basada en mezclas cromáticas RGB (RED GREEN BLUE), es decir, se mezclan ciertas cantidades de los tres colores básicos (rojo verde y azul), para conseguir el color deseado. La cantidad de cada color está definida por el código que utilizamos, que tiene seis dígitos en hexadecimal. Si los cortamos en 3 grupos de dos de izquierda a derecha, obtendremos la cantidad (en hexadecimal) de cada color.

    La sintaxis para cambiar el fondo de la página (background) a color rojo es: <BODY BGCOLOR=#FF0000> y para dar color al texto, ver la página Texto de colores.

    códigos RGB

    Creación de enlaces (links)

    El siguiente es sin duda el elemento más importante del HTML, ya que permite realmente "navegar" por uno o varios documentos, que pueden residir en cualquier parte, pareciéndonos que siempre estamos en el mismo; a esto se le llama hipertexto ya que con esta posibilidad, en realidad, nuestro documento puede ser infinito... En efecto, para la persona que está leyendo sobre un determinado tema, no hay diferencias ostensibles que le hagan notar dónde está el documento que lee. Para el lector, todo parece un mismo documento, cuando en realidad, probablemente el conjunto de lo que lee está repartido por medio mundo, o en un plano más modesto, el documento leído puede estar compuesto en realidad por varios cientos de páginas que "saltan" de unas a otras sin notarlo.

    Todo esto lo consigue el elemento <A> (por Anchor, en inglés = ancla o punto de anclaje). En lo sucesivo le llamaremos enlace o sinplemente link (en inglés link=eslabón o enlace).

    Pero seguramente te preguntarás qué es eso de un "link". Pues un link es un área de la pantalla, que puede contener una o varias palabras o una imagen, que es "sensible" al puntero del ratón, y al ponerlo sobre ella y pulsar el botón izquierdo el visualizador llamará a la página que tiene asignada el link. Habitualmente por defecto los visualizadores señalan un área linkada subrayándola, si es texto, o poniéndole un borde si es una imagen, ambas cosas en color azul. Por supuesto, eso se puede cambiar en las configuraciones de visualizador. Si no se desea que aparezca el subrayado para mejorar la estética en algunos casos, se puede parametrizar con una instrucción de estilo.

    Se escribirá:

    <A HREF="http://www.miservidor.es/mifichero.htm"> Link de prueba  </A>.
    

    Y se vería así: Link de prueba

    Si lo que se desea es que aparezca sin subrayado o de otro color, o ambas cosas, se puede recurrir a una instrucción de estilo. Así:

    <A HREF="http://www.miservidor.es/mifichero.htm"
      style="color:red; text-decoration:none;"> Link de prueba  </A>.
    
    Y se vería así: Link de prueba (Esto puede que no funcione en algunos navegadores antiguos)

    El elemento <A> tiene dos atributos: HREF y NAME.

    En el ejemplo de arriba al atributo HREF se le asigna el valor que aparece entre comillas: "http://www.miservidor.es/mifichero.htm". El texto sobre el que se monta el enlace es Link de prueba y realiza un link con el fichero mifichero.htm que está en el servidor www.miservidor.com.

    Esta forma de escribir la ruta del link de forma completa, se utiliza cuando hay que saltar de una máquina a otra, si el enlace es para otra página de nuestro propio servidor es suficiente escribir la ruta virtual corta: /mifichero.htm o bien: /otro_directorio/mifichero.htm según proceda.

    Como has visto, el punto de enlace se realiza en el texto escrito antes del cierre del elemento </A>, pero también puede hacerse con una imagen cualquiera, que iría en lugar del texto, incluso puedes poner el texto junto con una imagen. Por ejemplo para hacer un link que nos lleve al índice desde una bola roja, se escribe:

        Ir al inicio <A HREF="inicio.htm"> <img src="bolaroja.gif"> </A>.
    
    Y este sería el resultado:

    Ir al inicio

    Al igual que el texto aparece subrayado en azul cuando forma parte de un enlace, los gráficos reciben un borde azul alrededor de toda la imagen, lo que a veces puede resultar poco estético. Esto también tiene solución, pero aquí se hace en la instrucción de la imagen:

        Ir al inicio <A HREF="inicio.htm"> <img src="bolaroja.gif" border=0> </A>.
    
    Y este sería el resultado:

    Ir al inicio

    El valor de los atributos hay que escribirlos EXACTAMENTE como se deba. En el ejemplo anterior no funcionaría el link si escribiéramos www.miservidor.es en mayúsculas o con alguna otra diferencia, eso es un nombre de máquina y sería interpretado como OTRA máquina. Esto es aplicable a todos los parámetros: servicio (http://) servidor (www.miservidor.com) y fichero (mifichero.htm). Estas precauciones son ineludibles en el caso de servidores montados en máquinas con sistema operativo UNIX.

    Dentro de los parámetros pasados a HREF, podrás ver que al principio pone http://, esto es, el tipo de servicio al que el visualizador va a llamar, y hay varios :

    Servicio Descripción Ejemplo Efecto
    http:// Servicios WWW <A HREF="http://www.google.com/"> WWW</A> WWW
    ftp:// Servicios FTP <A HREF="ftp://ftp.uv.es/">FTP</A> FTP
    news:// Servicios NEWS <A HREF="news://news.uv.es/">NEWS</A> NEWS
    mailto:// Servicios E-mail <A HREF="mailto:migue.hit@hotmail.com">E-mail</A> E-mail
    file:///C| Fichero local <A HREF="inicio.htm/">Fichero</A> Fichero

    Además de HREF, el elemento <A> puede tener otro atributo: TARGET. Se utiliza para ordenar la apertura de otra ventana del visualizador con la página que se desee. Se escribirá:

         <A HREF="indice.htm" TARGET="Ventana-2"> </A>
    
    Esta instrucción mostrará la página indice.htm pero con otra ventana del visualizador, es decir tendremos lanzado el visualizador 2 veces.

    Del mismo modo, el atributo TARGET puede utilizarse para salir de una pantalla compuesta de frames. En efecto, si estamos en una pantalla con, por ejemplo, dos frames, cualquier link invocado desde cualquiera de ellos, hace que la página llamada aparezca en ese mismo frame. Para volver a una pantalla "normal" sin frames, se puede escribir un link con la sintaxis siguiente:

         <A HREF="indice.htm" TARGET="_parent"> </A>
    
    Existen otros valores para TARGET:

    TARGET="_blank": Para que el enlace se muestre en una nueva ventana vacía. También puede darse un nombre cualquiera con el mismo efecto. TARGET="_self": Para mostrar el enlace en la misma ventana o frame que lo referencia (valor por defecto). TARGET="_top": El documento solicitado se cargará en la pantalla actual, ocupando toda la ventana y destruyendo la estructura de frames anterior, si existe.

    Como se acaba de ver, el atributo HREF sirve para enlazar con otro documento, que puede estar en un servidor o ser un fichero local, pero que siempre se nos presentará desde la primera línea del mismo. El atributo NAME se utiliza para definir algo así como "un punto de aterrizaje" en cualquier línea del documento de destino, de forma que nos aparecerá en pantalla desde la línea deseada y no desde el principio. Esto es muy útil cuando se trata de documentos largos divididos en secciones.

    Se escribirá así:

    En el documento activo:

    <A HREF="http://www.miservidor.es/mifichero.htm#punto1"> Ir al punto 1</A>
    
    En el documento destino:
    <A NAME="punto1"></A>
    
    NAME también puede utilizarse para saltar de una línea a otra dentro de un mismo documento. Se escribirá así:

    Dentro del documento activo En la línea de partida:

    <A HREF="#punto1">Ir al punto 1</A>
    
    En la línea de destino
    <A NAME="punto1"></A>
    
    Por ejemplo, si haces "clik" aquí con el ratón, saltarás al principio de esta página.

    Como habrás visto en el cuadro de arriba, es posible enviar un e-mail desde un link con la instrucción:<A HREF="mailto:migue.hit@hotmail.com">Enviar e-mail</A>. Con esta sintaxis se invoca al cliente de correo predeterminado para que abra una ventana con la dirección deseada ya escrita. Si además quieres que dicha ventana se abra con el asunto (subject) y el texto (body) ya escritos se puede conseguir así:

    <A HREF="mailto:migue.hit@hotmail.com?&subject=Asunto de prueba&body=Texto de
    prueba">Enviar e-mail</A>
    

    Con los links, al igual que con los formularios, es posible moverse usando la tecla de tabulación, para conseguir que el enfoque salte de un link a otro en un cierto orden. Para ello se utiliza el atributo tabindex. Por ejemplo, pulsa la tecla "Tab":

    Tablas Imágenes Body

    Como puedes ver, los saltos en esta línea se han producido siguiendo la numeración indicada por los disintos tabindex, al resto de links se llega por orden de escritura. Se escribe:

    <A HREF="tablas.htm" tabindex="2">Tablas</A> <A HREF="imagen1.htm" tabindex="3">Imágenes</A> <A HREF="body.htm" tabindex="1">Body</A>

    Esto solamente funciona con versiones recientes de navegadores. Otro atributo reciente de los links es title que permite escribir una descripción del link sin necesidad de pulsar en él, simplemente poniendo encima el puntero del ratón. Por ejemplo:

    <A HREF="tablas.htm" title="Saltar a la sección de tablas">Tablas</A>

    Se obtiene: Tablas


    Debes saber que...

    • El texto que pongas después del símbolo # puede ser cualquiera, siempre que no tenga espacios en blanco, caracteres especiales ni caracteres codificados, y por supuesto, que no esté repetido en el mismo documento de destino.
    • Si en el documento de destino no existe el punto definido en el documento de origen, el visualizador nos presentará en pantalla la última línea del mismo.
    • Cuando hagas un link, es preferible utilizar direcciones relativas. Si utilizas direcciones absolutas y después tienes que mover los ficheros por cualquier razón, tendrás que modificar todas las direcciones.
    • Si al hacer un link, después del nombre de la máquina no pones el nombre de un fichero, por defecto el servidor entiende que se le pide la "home page" (página inicial) de ese directorio. Generalmente (aunque depende de la configuración del servidor) el fichero inicial de un directorio suele ser index.htm o default.htm
    • Si un servidor no tiene definida página inicial, simplemente nos mostrará una lista de todos los ficheros y directorios que tenga en el directorio definido como raíz si el servidor tiene activada la opción de listar directorios, en caso contrario, dará un error.
    • Si después de la dirección de la máquina a la que le haces el link en lugar de un nombre de fichero pones el de un directorio, generalmente el servidor nos mostrará un simple listado de los ficheros y directorios que éste contenga si el servidor tiene activada la opción de listar directorios, en caso contrario, dará un error.
    • No sólo puedes montar el link sobre un texto, también puedes hacerlo sobre una imagen cualquiera. Es decir, después del link y antes de puedes poner lo que quieras.
    • El arte de escribir buen HTML reside en dar una buena estructura a la información. Siempre que puedas huye de crear páginas muy largas. Crea cuantas necesites, con buena estructura y enlázalas con cuantos links sean precisos.
    • Recuerda: si tu trabajo HTML no va a residir en un servidor en red, y has utilizado direcciones absolutas, al hacer un link, no empieces con aquello de: "http://....". No funcionará.
    • Si continuas deseando poner direcciones absolutas con ficheros locales, tendrá que ser así file:///C:/MIDIRECTORIO/mifichero.htm
    • Después de C (que puede ser A, B, D o la unidad de disco que quieras) fíjate en que las barras que separan los directorios y ficheros son barras a la derecha.

    Insertar imagenes

    Insertar imágenes en un documento permite crear páginas mucho más atractivas. Según el tipo de gráficos utilizado se pueden conseguir efectos realmente sorprendentes.

    Para insertar una imagen en un documento HTML se utiliza el elemento <IMG>. Este elemento puede ir acompañado de los atributos SRC ALT ISMAP ALIGN WIDTH HEIGTH BORDER VSPACE HSPACE. Con las nuevas implementaciones que Netscape hace del elemento, se consiguen efectos de imagen flotante y por tanto se ha hecho necesario dotar al elemento <BR> del atributo CLEAR.

    Veamos ejemplos del uso de <IMG>:


    Imagen alineada a la izquierda (por defecto)
    <IMG SRC="sugeren.gif">texto texto texto texto  texto texto texto texto
    
    
    texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto
    Imagen con un texto alternativo Sirve para que, si no es posible cargar la imagen, aparezca un texto en su lugar. También se utiliza para que al colocar el puntero del ratón sobre la imagen, sin pulsar, aparezca el texto. Para verlo tienes de deshabilitar la opción de cargar imágenes de tu visualizador (sólo es posible con Netscape).
    <IMG SRC="sugeren.gif" ALT="AQUI VA UNA IMAGEN">
    AQUI VA UNA IMAGEN
    Imagen alineada a la izquierda.Texto alineado arriba
    <IMG SRC="sugeren.gif" ALIGN=TOP> texto texto texto texto texto  texto exto
    texto texto texto texto texto  
    texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto
    Imagen alineada a la izquierda.Texto alineado abajo
    <IMG SRC="sugeren.gif" ALIGN=BOTTOM> texto texto texto texto texto  texto exto
    texto texto texto texto texto  
    texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto
    Imagen alineada a la izquierda.Texto alineado al centro
    <IMG SRC="sugeren.gif" ALIGN=MIDDLE> texto texto texto texto texto  texto exto
    texto texto texto texto texto  
    texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto
    Imagen alineada a la izquierda.Texto alineado a la derecha de la imagen
    <IMG SRC="sugeren.gif" ALIGN=LEFT> texto texto texto texto texto  texto texto
    texto texto texto texto texto  
    texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto
    Imagen alineada a la izquierda.Texto envolviendo la imagen
    <IMG SRC="sugeren.gif" ALIGN=LEFT> texto texto texto texto texto <BR CLEAR>
    texto texto texto texto texto texto texto  
    texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto
    Imagen alineada a la derecha.Texto alineado a la izquierda de la imagen

    <IMG SRC="sugeren.gif" ALIGN=RIGHT> texto texto texto texto texto  texto texto
    texto texto texto texto texto  
    texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto

    Si tu visualizador no soporta esto, hay un truco para conseguir algo parecido:

    <TABLE> <TR><TD>texto texto texto texto texto texto texto texto texto texto texto texto</TD><TD align=center><IMG SRC="sugeren.gif"></TD></TR> </TABLE>

     
    texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto

    Imagen redimensionada a más.Texto alineado a la derecha de la imagen
    <IMG SRC="sugeren.gif" ALIGN=LEFT WIDTH=272 HEIGTH=92 > texto texto texto texto
    texto texto texto texto texto texto texto texto  
    texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto.

    Aquí la imagen es la misma de los ejemplos anteriores, pero ha sido redimensionada por el visualizador. Su tamaño original es de 136x46 puntos. Este es su aspecto al doble: 272x92.


    Imagen redimensionada a menos.Texto alineado a la derecha de la imagen
    <IMG SRC="sugeren.gif" ALIGN=LEFT WIDTH=75 HEIGTH=20 > texto texto texto  texto
    texto texto texto texto texto texto texto texto  
    texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto.

    Aquí la imagen es la misma de los ejemplos anteriores, pero ha sido redimensionada por el visualizador. Su tamaño original es de 136x46 puntos. Este es su aspecto a la mitad: 75x23

    Consideraciones sobre WIDTH y HEIGTH

    Estos dos atributos, además de para variar el tamaño de un gráfico, también pueden (casi deben) utilizarse con los valores naturales del mismo. Es decir, que no se pretende alterar las dimensiones del gráfico. Y te preguntarás que finalidad tiene esto. La razón estriba en cómo funcionan los navegadores. Cuando el navegador solicita una página y comienza a recibirla, lo primero que hace es leer la cabecera, a continuación lee el código del BODY y por último carga las imágenes que contenga la página haciendo nuevas conexiones al servidor para cada una de ellas.

    Esta forma de trabajar tiene como consecuencia, que si en el código del BODY no hay instrucciones sobre el espacio que hay que reservar en pantalla para cada imagen, cuando éstas lleguen en el último paso de la carga de la página, el texto ya estará compuesto, pero al no saber el tamaño de las imágenes, no se habrá reservado el espacio adecuado para insertarlas, por lo que todo el texto será desplazado hacia abajo, con la consiguiente pérdida del formato original de la página, ya que el navegador no va a recomponer el texto que ya estaba escrito.


    Imagen alineada a la izquierda con marco.Texto alineado a la derecha de la imagen
    <IMG SRC="sugeren.gif" ALIGN=LEFT BORDER=5> texto texto texto texto texto  texto
    texto texto texto texto texto texto  
    texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto
    Imagen alineada a la izquierda.Texto alineado a la derecha de la imagen. Espacios verticales y horizontales vacíos forzados.
    texto texto texto texto texto texto texzto texto texto texto texto texto
    <IMG SRC="sugeren.gif"> ALIGN=LEFT HSPACE=100 VSPACE=30
    texto texto texto  texto texto texto texto texto texto texto texto texto texto texto
    texto texto texto texto   
    texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto texto texto texto texzto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto


    Usar una imagen como punto de montaje de un link
    texto texto <A HREF="indice.htm"><IMG SRC="sugeren.gif" ></A>texto texto. 

    Como puedes ver, la imagen aparece rodeada de un marco de color como es habitual en los puntos de link (en el texto es el subrayado). Si quieres eliminar el marco, escribe:

           ....  IMG SRC="sugeren.gif" BORDER=0 > 

    Ahora que ya sabes cómo manejar las imágenes, veamos algunos efectos especiales algo más complicados.

    Mapeado de una imagen para usarla como direccionador

    <A HREF="/cgi-bin/imagemap/mimapa"><IMG SRC="sugeren.gif" ISMAP></A> 

    Si mueves el ratón por encima de la imagen, verás que en la ventanita de estado del navegador (en la parte inferior izquierda de la ventana) aparecen junto a un interrogante unos números que cambian según muevas el ratón. Con cuidado intenta poner el puntero en la esquina superior izquierda y en la inferior derecha. Verás las cifras 1,1 y 136,46, respectivamente, que son las medidas en puntos que tiene el gráfico. Como ya habrás supuesto, esto es un sistema de coordenadas, y para que nuestra imagen funcione como un menú direccionador, lo que necesitamos es que algún elemento convierta esas coordenadas en una dirección del estilo ya conocido: "http://miservidor.es/mifichero.htm". Esto siginifica que con un solo link podemos obtener un enorme número de direcciones, teóricamente tantas como pares de coordenadas tiene la imagen. En la práctica serán menos, ya que andar intentando atinar en el punto 11,32, por ejemplo, es un poco engorroso.

    Existen multitud de programas llamados mapeadores que parten la imagen en imaginarios trozos, y cada uno de ellos indica un link con alguna parte. Estos programas generan un fichero con todas las direcciones. Algo así:

    rect http://miservidor.es/mifichero1.htm 12,35
    rect http://miservidor.es/mifichero2.htm 90,42
    rect http://miservidor.es/mifichero3.htm 112,46 
    Este podría ser el aspecto del fichero del ejemplo, el llamado mimapa. El parámetro rect significa rectángulo, y nos indica que la imagen ha sido troceada en rectángulos y las coordenadas indican la esquina superior izquierda y la inferior derecha. También podría ser en círculos (circ) o polígonos (poly). Ahora veamos el resto de instrucciones del ejemplo:
    <A HREF="/cgi-bin/imagemap/mimapa"><IMG SRC="sugeren.gif" ISMAP></A>
    La primera parte A HREF ya la conocemos, es un link. Después viene un directorio: cgi-bin. Este es un directorio especial que tienen los servidores http, donde se ejecutan los programas auxiliares del servidor, y al que normalmente sólo puede acceder el administrador del sistema. En ese directorio hay un fichero llamado imagemap (según el sistema puede ser otro) que es un programa que se encarga de leer tu fichero mimapa, capturar las coordenas que señale el puntero del ratón y servir la dirección que tiene asociada, con lo que acabamos obteniendo un link normal. Ya por último, aparece ISMAP que es el que convierte una simple imagen en una potente herramienta.

    Sólo queda por decir que el fichero mimapa tiene que estar en otro directorio especial que tiene el servidor a estos efectos, y al que por supuesto, solo puede acceder el administrador del sitema.

    Todo esto es suponiendo que el servidor está en una máquina UNIX. Si reside en tu propio PC con Windows o en un MAC (que los hay), tendrás que ver las instrucciones concretas del programa servidor. La forma de montar el mapa puede variar de un programa servidor a otro, pero la base de funcionamiento es siempre la misma.

    Otra forma alternativa de conseguir que una imagen responda con ciertas acciones, es operar con los elementos de formularios. En el índice encontrarás información sobre un tipo de formulario que devuelve un par de coordenadas, que una vez evaluadas permite ejecutar una acción.


    Pero, una vez más, Netscape ha propuesto una solución mucho más simple: que sea el propio visualizador quien haga las veces de programa conversor. En efecto, un recurso tan bueno como los mapas, no debe depender de tener tu máquina en red y de que haya un servidor http que te atienda. Además, eso resta portabilidad a los documentos locales y a los trabajos personales en disquete. Para ello ha implementado el elemento MAP que acompañará a IMG.

    Por ejemplo, en la siguiente imagen, la mitad izquierda nos envía a indice.htm y la mitad derecha a intro.htm. Mueve el puntero del ratón horizontalmente sobre la imagen y observa la ventanita de estado que hay en la parte inferior izquierda de la pantalla, verás como cambia el nombre del link.

      

    Se escribe así:

    <MAP NAME="nombre1">
    <AREA SHAPE="rect" COORDS="1,1,75,46" HREF="indice.htm">
    <AREA SHAPE="rect" COORDS="76,1,136,46" HREF="intro.htm">
    </MAP>
    
    <IMG SRC="sugeren.gif" USEMAP="#nombre1">
    Aunque se comprende a simple vista, analicémoslo:

    En primer lugar tenemos el elemento MAP, que lo que está haciendo es definir un mapa de coordenadas. Va acompañado del atributo NAME que da nombre al mapa. Es necesario nombrarlo porque podría haber más de uno en la misma página, y evidentemente, sus nombres no deberán repetirse.

    A continuación tenemos el atributo AREA que define las áreas de la imagen. El parámetro SHAPE="rect" indica la figura geométrica que estamos utilizando para ello. Al igual que con los otros mapas, puede ser rect circ y poly.

    El parámetro COORDS fácilmente se adivina que indica las coordenadas del área, en este caso vértice superior izquierdo e inferior derecho, respectivamente.

    HREF ya sabemos lo que hace: indica un link con una página, pero esta vez no va acompañando al elemento <A>, digamos que es un atributo prestado. Hay un área por cada link definido. Si un área no queremos que tenga link se definirá con NOHREF.

    IMG SRC también son conocidos: hacen que se visualice la imagen.

    Y por fin, USEMAP nos dice qué mapa de coordenadas hay que aplicar a la imagen. A una misma imagen se le pueden aplicar distintos mapas si se desea. Fíjate en que nombre1, (el nombre del mapa) va precedido del símbolo #. Esto se debe a que, en este caso, el mapa al que se hace referencia está en la misma página que la instrucción IMG. Podría estar en otra, y en ese caso el símbolo tendría que estar después del nombre de la página. Por ejemplo: otrapagina.htm#nombre1

    Como ya se ha dicho más arriba, hay tres figuras geométricas definibles para las áreas: rect, circle y poly. El rectángulo ya lo conocemos; consiste en parejas de coordenadas que indican los vértices superior izquierdo e inferior derecho respectivamente del área. Para el cículo (circ) son necesarios tres valores: x,y r donde x,y es el par de coordenas que indican el punto donde está el centro del cículo, y r es el radio del círculo medido en puntos. Para los polígonos (poly) se necesitan tantas parejas de coordenadas como vértices tenga el polígono, procurando que la última pareja quede unida a la primera, ya que la figura debe estar cerrada. No es obligatorio que sean figuras regulares. En el caso de que se quiera emplear todo el gráfico como área de enlace, es decir, un solo link, se puede emplear default, y no es necesario indicar ninguna coordenada.

    Imágenes de fondo

    El fondo (background) de esta capa es una imagen en formato GIF. Es un atributo del elemento <DIV> se escribe así:
    <div style="background: url(yellow_r.gif);width: 200px; height: 200px;"> </div>
    Y es compatible con todos los demás atributos de este elemento. se ve así:
    imagen de fondo
    Para usar este elemento en el fondo de un fichero htm hay que cambiar DIV por BODY y escribir el elemento BACKGROUND sin etiquetas de estilo. se escribe así:
    <body background="yellow_r.gif">

    Algunos ejemplos de listas

    Se escriben todas igual, sólo hay que cambiar el nombre de los gráficos:
    <DL>
    <DT><IMG SRC="bolaroja.gif">Linea de texto
    <DT><IMG SRC="bolaroja.gif">Linea de texto
    <DT><IMG SRC="bolaroja.gif">Linea de texto
    </DL>
    

    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto

    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto


    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto
    Linea de texto

    Introducción a los Formularios

    Generalidades

    Esta es una de las partes más técnicas y complejas del HTML. Los formularios o forms en inglés, son unas páginas especiales que se utilizan para realizar transacciones. En una página que contenga un formulario pueden además existir todos los elementos hasta ahora conocidos, incluso el propio formulario puede estar integrado dentro de otros elementos, como por ejemplo una tabla. Los formularios, en algunas impresoras, pueden dar problemas al imprimir las páginas que los contienen.

    ¿Cómo funcionan los formularios?

    El formulario no es más que una página escrita en HTML como cualquier otra. Lo que la hace diferente es que permite capturar datos de varias maneras: directamente desde el teclado, escogiendo un valor de una lista desplegable o seleccionando una opción desde botones fijos o de todas ellas combinadas.

    Una vez terminada la captura de datos, estos forman un registro que es enviado a un servidor http (web) que lo procesará y devolverá una respuesta (o no). Pueden utilizarse también para enviar su contenido a una dirección de correo electrónico, o que simplemente abran otra página.

    Si el formulario se diseña para abrir una página o para ser enviado por e-mail, todo se reduce a escribir HTML, pero la cosa se complica cuando se trata de transacciones de datos que hay que guardar en un servidor (comercio electrónico). En este caso, en el servidor tiene que haber un programa especial, creado específicamente para ese formulario, que reciba los datos y sepa qué hacer con ellos, procesarlos y confeccionar la respuesta que remitirá al navegadorr. A esa respuesta se le denomina documento virtual ya que esa página no está escrita en ninguna parte; es generada, enviada y destruida.

    A los programas que hacen de puente entre el formulario y el servidor, se les llama programas CGI (Common Gateway Interface) y no hay que confundirlos con las páginas dinámicas escritas en ASP o PHP, aunque se parecen mucho.

    Los programas CGI pueden estar escritos en cualquier lenguaje de programación que sea soportado por el sistema operativo del servidor, y pueden estar diseñados para cualquier función: desde una simple captura de datos que serán guardados en un fichero, hasta la más sofisticada consulta a una base de datos.

    INFORMACION ADICIONAL

    ¿Cómo es un CGI?

    Aunque el propósito de esta guía no es tratar temas de programación, como breve orientación se muestra un sencillo programa hecho con comandos shell de UNIX. Muestra los valores de las variables de servidor más usuales, así como el nombre de los campos definidos en el formulario y contenido de cada uno de ellos.

    Ejemplo de programa CGI (shell UNIX)

    #!/bin/sh
    
    echo Content-type: text/plain
    echo
    
    echo Test CGI. Se visualiza el contenido de las variables mas usuales
    echo
    echo numero de argumentos: $#. valor argumentos: "$*".
    echo
    
    echo SERVER_SOFTWARE      = $SERVER_SOFTWARE
    echo SERVER_NAME          = $SERVER_NAME
    echo GATEWAY_INTERFACE    = $GATEWAY_INTERFACE
    echo SERVER_PROTOCOL      = $SERVER_PROTOCOL
    echo SERVER_PORT          = $SERVER_PORT
    echo REQUEST_METHOD       = $REQUEST_METHOD
    echo HTTP_ACCEPT          = $HTTP_ACCEPT
    echo PATH_INFO            = $PATH_INFO
    echo PATH_TRANSLATED      = $PATH_TRANSLATED
    echo SCRIPT_NAME          = $SCRIPT_NAME
    echo QUERY_STRING         = $QUERY_STRING
    echo REMOTE_HOST          = $REMOTE_HOST
    echo REMOTE_ADDR          = $REMOTE_ADDR
    echo REMOTE_USER          = $REMOTE_USER
    echo REMOTE_IDENT         = $REMOTE_IDENT
    echo AUTH_TYPE            = $AUTH_TYPE
    echo CONTENT_TYPE         = $CONTENT_TYPE
    echo CONTENT_LENGTH       = $CONTENT_LENGTH
    echo HTTP_USER_AGENT      = $HTTP_USER_AGENT
    echo HOME                 = $HOME
    echo HTTP_FROM            = $HTTP_FROM
    echo HTTP_REFERER         = $HTTP_REFERER
    echo REFERER_URL          = $REFERER_URL
    
    if [ "$CONTENT_TYPE" = "application/x-www-form-urlencoded" ]; then
    
    read lo_que_viene
    echo
    echo ESTO VIENE POR  LA INPUT:
    echo
    echo $lo_que_viene
    
    exit 0
    else
    
    echo NO VIENE NADA POR LA INPUT
    exit 0
    fi

    Esta sería la respuesta del CGI test2-cgi a un imaginario formulario llamado prueba.htm con dos campos de captura por teclado llamados CAMPO1 y CAMPO2 en los que hemos introducido: "Esto es una" y "demostracion de formularios" respectivamente.

    Ejemplo de respuesta del programa test2-cgi al formulario prueba.htm

    Test CGI. Se visualiza el contenido de las variables mas usuales
    
    numero de argumentos: 0. valor argumentos: .
    
    SERVER_SOFTWARE = NCSA/1.3
    SERVER_NAME = miserver.midominio.mipais
    GATEWAY_INTERFACE = CGI/1.1
    SERVER_PROTOCOL = HTTP/1.0
    SERVER_PORT = 80
    REQUEST_METHOD = POST
    HTTP_ACCEPT = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
    PATH_INFO =
    PATH_TRANSLATED =
    SCRIPT_NAME = /cgi-bin/test2-cgi
    QUERY_STRING =
    REMOTE_HOST = mimaquina.misubdominio.midominio.mipais
    REMOTE_ADDR = 255.255.255.255
    REMOTE_USER =
    REMOTE_IDENT = unknown
    AUTH_TYPE =
    CONTENT_TYPE = application/x-www-form-urlencoded
    CONTENT_LENGTH = 52
    HTTP_USER_AGENT = Mozilla/2.02 (Win95; I)
    HOME =
    HTTP_FROM =
    HTTP_REFERER = http://sestud.uv.es/manual.esp/prueba.htm
    REFERER_URL = ESTO VIENE POR LA INPUT:  CAMPO1=Esto+es+una&CAMPO2=demostracion+de+formularios 

    Fíjate que las palabras aparecen separadas por el signo + y no por espacios como hemos escrito. Si además hubiéramos escrito algún carácter especial, no se vería como tal, sino su valor en hexadecimal precedido del carácter %. Por ejemplo, el cáracter & es transferido como %26. Esta conversión se hace para no confundirlo con el separador de campos, que como puedes ver es el mismo símbolo. El signo = después del nombre del campo, también lo pone el visualizador.

    Todo esto y algunas cosas más (que habrá que ver en la documentación de referencia) han de tenerse presentes a la hora de realizar programas CGI. Para terminarlo de complicar, no todos los visualizadores utilizan la misma forma de enviar los datos recibidos, por lo que se plantea a menudo la necesidad de decidir para qué visualizador queremos programar nuestro WEB.

    Los programas de test, como el del ejemplo, son muy útiles cuando se están diseñando formularios, ya que permiten comprobar de forma real su funcionamiento y analizar el registro que envían, cosa imprescindible para poder programar el correspondiente CGI. Intenta hacer uno a tu medida, o simplemente copia éste, instálalo en tu servidor http, (si no tienes acceso, pide a tu administrador de sistema que lo haga), empieza a probar... y buena suerte.

    ¿Cómo se escriben los formularios ?

    La base del formulario es el elemento <FORM>, y es el que define una zona de la página como formulario. En una página puede haber varias zonas definidas como formulario, en cuyo caso es conveniente darles distintos nombres a cada uno. Dentro de este elemento, que es un objeto, se insertan otros elementos, que a su vez son sub-objetos del objeto FORM, que son los que realmente dibujan en pantalla los componentes del formulario. Se verá con detalle el concepto de objeto en las secciones de programación de esta guia, ya que ahora no lo necesitamos. Hay tres clases de estos sub-objetos:
    • <INPUT>
      • Campos de entrada por teclado.
      • Botones de selección.
      • Casillas de marca.
      • Botones de proceso.
      • Botones de inicialización (reset).
      • Imágenes sensibles al ratón.
    • <SELECT>
      • Listas desplegables de valores.
      • Listas fijas de valores.
    • <TEXTAREA>
      • Ventanas de escritura libre.

    Este sería el más elemental de los formularios, con sólo un campo y un botón de envío:

    Analicemos cómo se escribe:
    <FORM NAME="MI_FORMULARIO" METHOD="POST"
    ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT NAME="campo1">
    <INPUT TYPE="submit" VALUE="Procesar"></FORM>
    
    En la primera línea vemos el elemento de definición de formulario: <FORM>. Va acompañado de tres atributos: NAME, METHOD y ACTION. NAME, evidentemente, se refiere al nombre que se le asigne al formulario. No es obligatorio, pero si el formulario va a ser utilizado en páginas ASP, PHP, o simplemente en VBScript o JavaScript, se necesitará un nombre, ya que el formulario será considerado como un objeto.

    METHOD se refiere al método que emplearemos para enviar los datos al servidor, y pueden ser dos: POST y GET. El optar por uno u otro obedece a complejas cuestiones de programación basadas en la máxima longitud de registro que puede enviarse; cada uno usa un canal de salida distinto. El que soporta más longitud es POST, y será el que utilicemos en casi todos los ejemplos. Si el formulario solamente se utiliza para llamar a otras páginas, se utiliza el método GET, y si se trata de envio de datos POST. Echale un vistazo a la respuesta del programa test2-cgi de la página anterior. Fíjate en las variables QUERY_STRING e INPUT. Por la primera llegarán los datos cuando se utilice METHOD=GET y por la segunda cuando es POST el método elegido. ACTION se refiere a la acción que queremos que ejecute el formulario en un servidor http o en local. Con el valor del ejemplo ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi" se le está indicando que ejecute un programa llamado test2-cgi que está en el directorio /cgi-bin del servidor http miserver.midominio.mipais cuya respuesta será similar a la que hemos visto en la página de introducción a los formularios.

    Además de enviar datos a un servidor, ACTION también puede realizar una acción en local, por ejemplo traer una página:

    Se escribe:

    <FORM METHOD="POST" ACTION="indice.htm">
    ......
    </FORM>
    
    En este caso el formulario funcionaría igual que un link.

    Otra cosa que puede hacer ACTION, y que además tiene la ventaja de que no sería preciso diseñar un CGI, es enviar un e-mail (correo electrónico) a un usuario o a una lista de usuarios. Los datos enviados por el formulario, tendrán la forma que ya conocemos, pero una vez recibidos por esta vía, pueden ser tratados con programas de edición de texto, y convertidos al formato que se quiera. Se escribe:

    <FORM METHOD="POST" ACTION="mailto:mi-usuario@miservidor-e-mail">
    ......
    </FORM>
    
    Si no quieres complicarte la vida con descodificaciones (depende de lo que se vaya a hacer con los datos recibidos), el navegador puede remitirlos con un formato más sencillo y ya descodificado. Para ello sólo hay que añadir el parámetro ENCTYPE con el valor TEXT/PLAIN. Se escribe así:
    <FORM METHOD="POST" ACTION="mailto:mi-usuario@miservidor-e-mail"
    ENCTYPE="TEXT/PLAIN">
    ......
    </FORM>
    
    Resumiendo: sin poner ningun parámetro al elemento ACTION los datos te llegarán así:

    CAMPO1=Esto+es+una&CAMPO2=demostracion+de+formularios

    y poniendo ENCTYPE="TEXT/PLAIN" así:

    CAMPO1=Esto es una

    CAMPO2=demostracion de formularios

    Al igual que con el elemento <A> es posible hacer que el asunto (subject) del e-mail se reciba con el texto que quieras, pero omitiendo la parte correspondiente al cuerpo (body) del mismo, ya que en este caso el contenido del e-mail son los campos del formulario: <FORM METHOD="POST" ACTION=

    "mailto:mi-usuario@miservidor-e-mail?&subject=asunto de prueba"
    ENCTYPE="TEXT/PLAIN">
    ......
    </FORM>
    
    Esto funcionará siempre que en la máquina del cliente haya instalado algun programa que permita enviar correo electrónico, si no es así hay que recurrir a un programa CGI o de otro tipo en el servidor que se encargue de hacerlo. No es buena idea presuponer que todo el mundo tiene un cliente de correo instalado en su máquina.

    El elemento INPUT

    INPUT sin ningún atributo define por defecto una ventana de escritura de 20 caracteres de longitud por una línea de ancho:
    Se escribe:
    <FORM> <INPUT> </FORM>
    
    <INPUT> admite varios atributos:

    SIZE define la longitud de la ventana de texto.


    MAXLENGTH define la máxima longitud de la cadena que se puede escribir dentro de la ventana.
    NAME define el nombre de la ventana (que en realidad es un campo dentro del registro, que en conjunto, es el formulario). Si escribes:
    <FORM> <INPUT SIZE=10 MAXLENGTH=10 NAME="campo1"></FORM>
    
    Como puedes comprobar, sólo se pueden escribir 10 caracteres dentro de la ventana, que también es de longitud 10. No es obligatorio que concidan ambos valores, puedes definir la ventana al valor que quieras y la longitud de la cadena puede ser mayor o menor.
    VALUE sirve para que la ventana aparezca con un valor predeterminado, y no vacía como hace por defecto:
    Se escribe:
    <FORM> <INPUT VALUE="HOLA"> </FORM>
    
    El valor puede ser modificado o barrado por el usuario.
    READONLY Sirve para que el valor de la ventana, que contiene un valor predeterminado, no pueda ser modificado por el usuario.

    Se escribe:
    <FORM> <INPUT VALUE="HOLA" READONLY> </FORM>
    
    No funciona en versiones antiguas de los navegadores.
    TYPE=TEXT Es el valor por defecto de TYPE. Puede omitirse.
    TYPE=PASSWORD para que el valor predeterminado de la ventana esté en formato oculto:
    Se escribe:
    <FORM> <INPUT TYPE="PASSWORD" VALUE="HOLA"> </FORM>
    

    TYPE=HIDDEN define que el valor predeterminado de la ventana y la ventana misma estén en formato oculto:
    Se escribe:
    <FORM> <INPUT TYPE="HIDDEN" VALUE="HOLA"> </FORM>
    
    Esta opción se utiliza cuando es necesario enviar un valor fijo al servidor,
    pero no se desea que el usuario intervenga o que lo vea. CUIDADO, esto no es un formato
    encriptado, viendo el documento fuente se puede saber el valor de la ventana.
    

    TYPE=SUBMIT para generar un botón que al ser pulsado cierra la captura de datos del formulario y procede a ejecutar lo definido en el atributo ACTION que ya conocemos.

    Se escribe:
    <FORM METHOD="POST" ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT NAME="campo1">
    <INPUT TYPE="SUBMIT" VALUE="Procesar"></FORM>
    
    VALUE puede acompañar a SUBMIT , y en este caso sirve para definir el texto que queremos que tenga el botón en su interior. Si se omite, por defecto el visualizador le da el valor "Submit Query".

    Existe otro tipo llamado TYPE=BUTTON que genera un botón igual al generado por el tipo submit, pero que no realiza ninguna acción; es simplemente un botón "muerto" en cuanto a acciones directas. Suele utilizarse para asociarle instrucciones en JavaScript o VBScript mediante el evento onClick.

    Se escribe:
    <FORM METHOD="POST" ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT NAME="campo1">
    <INPUT TYPE="BUTTON" VALUE="No hace nada"></FORM>
    

    TYPE=RESET para generar un botón que al ser pulsado inicializa todos los componentes del formulario.
    Se escribe:
    <FORM METHOD="POST" ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT NAME="campo1">
    <INPUT TYPE="RESET" VALUE="Inicializar"></FORM>
    
    VALUE puede acompañar a RESET , y en este caso sirve para definir el texto que queremos que tenga el botón en su interior. Si se omite, por defecto el visualizador le da el valor "Reset".
    TYPE=FILE Este es un nuevo tipo que sólo funciona con Netscape 3.0 o superior, y sirve para enviar un fichero a una máquina remota (hacer FTP), pero no funciona solo, necesita de ciertos acompañantes que hacen su uso un poco más complicado: Aquí hay que echar mano de un atributo parametrizado de <FORM>: ENCTYPE="multipart/form-data" para generar un botón que permitirá buscar un fichero en nuestra máquina, ponerlo en una ventanita de entrada como las ya conocidas (por tanto tanbién se puede escribir directamente el nombre del fichero en lugar de buscarlo) y junto con un botón tipo submit enviar el fichero.
    Enviar el fichero:
    Se escribe:
      <FORM enctype="multipart/form-data"
    ACTION="ftp://miservidor/" METHOD="POST">
    Enviar el fichero:
    <INPUT NAME="mifichero" TYPE="FILE">
    <INPUT TYPE="SUBMIT" VALUE="Enviar fichero"></FORM>
    
    el botón generado aparece con el texto "Browse.." y no sirve de nada añadirle el parámetro VALUE para darle otro nombre, como se puede hacer con el botón de tipo submit.

    En este ejemplo se haría una conexión al servicio FTP general de la máquina remota, pero se puede hacer a un directorio en particular de un usuario concreto. Sólo habría que cambiar la línea

      ACTION="ftp://miservidor/" METHOD="POST">
    
    y escribir:
      ACTION="ftp://miusuario@miservidor/" METHOD="POST">
    
    Otra forma más directa de hacer un FTP en las dos direcciones, es desde la ventana "Location" del visualizador. La sintaxis de los parámetros de ACTION son válidos en esa ventana.

    Por supuesto, todo esto si no tienes cuenta y permiso de escritura en la máquina remota, no sirve para nada...

    Como ya se ha dicho antes, el atributo ACTION es capaz de enviar el contenido del formulario por correo electrónico, pero no sólo es capaz de enviar el formulario: también puede adjuntar al e-mail un fichero cualquiera. Lo único que hay que hacer es añadirle un instrucción como la que acabamos de ver para el FTP. Así:

      <FORM enctype="multipart/form-data"
    ACTION="mailto:mi-usuario@miservidor-e-mail/" METHOD="POST">
    Adjuntar el fichero:
    <INPUT NAME="mifichero" TYPE="FILE">
    <INPUT TYPE="SUBMIT" VALUE="Adjuntar fichero"></FORM>
    

    TYPE=IMAGE hace que el visualizador presente una imagen que es sensible al ratón. Lo que el formulario envía al servidor es un registro cuyos campos son el nombre definido para la imagen seguido de los parámetros .x=n .y=n donde n son los números de las coordenas x y del punto en el que estaba el ratón en el momento del envío. Para presentar la imagen se utiliza el atributo SRC del elemento IMG. Este sería un ejemplo de respuesta:
         imagen.x=99&imagen.y=15
    
    Prueba a pulsar en cualquier parte de esta imagen:
    Se escribe:
    <FORM METHOD="POST" ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT TYPE=IMAGE NAME="imagen" SRC="sugeren.gif">
    </FORM>
    
    Los formularios que utilicen este tipo de recursos pueden prescindir del tipo SUBMIT, ya que el formulario se cierra con la imagen.
    TYPE=RADIO genera botones circulares que permiten seleccionar un valor predeterminado o activar una opción
    Clase A Clase B
    Se escribe:
    <FORM METHOD="POST" ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT TYPE="SUBMIT" VALUE="Procesar">
    <INPUT TYPE="RESET" VALUE="Inicializar">
    Clase A
    <INPUT TYPE="RADIO" NAME="clase" VALUE="A">
    Clase B
    <INPUT TYPE="RADIO" NAME="clase" VALUE="B"></form>
    
    En este ejemplo, los botones permiten seleccionar la clase A, la clase B o ninguna de las dos. Si se desea que por defecto un valor esté seleccionado, por ejemplo clase B, hay que añadir el parámetro CHECKED después del valor:
           ... VALUE="B" CHECKED></form>
    

    TYPE=CHECKBOX genera casillas de marca que permiten seleccionar un valor predeterminado o activar una opción
    Clase A Clase B
    Se escribe:
    <FORM METHOD="POST" ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT TYPE="SUBMIT" VALUE="Procesar">
    <INPUT TYPE="RESET" VALUE="Inicializar">
    Clase A
    <INPUT TYPE="CHECKBOX" NAME="clase" VALUE="A">
    Clase B
    <INPUT TYPE="CHECKBOX" NAME="clase" VALUE="B"></form>
    
    En este ejemplo, las casillas de marca permiten seleccionar la clase A, la clase B, ninguna, o las dos. Si se desea que por defecto un valor esté seleccionado, por ejemplo clase B, hay que añadir el parámetro CHECKED después del valor:
           ... VALUE="B" CHECKED></form>
    

    El elemento SELECT

    SELECT sin ningún atributo define por defecto una lista desplegable de toda la pantalla de alto y una columna de ancho:
    Se escribe:
    <FORM> <SELECT> </SELECT>  </FORM>
    
    Como evidentemente esto no es muy práctico, hay que parametrizar el elemento. En primer lugar se le da nombre, ya que éste es un campo más del formulario, la diferencia es que no hay que escribir en él sino escoger un valor de los que nos muestre al desplegarlo, se usará el atributo NAME, y para entrar valores en la lista se usa el atributo OPTION.



    Se escribe:
    <FORM METHOD="POST" ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT TYPE="SUBMIT" VALUE="Procesar">
    <INPUT TYPE="RESET" VALUE="Inicializar">
    
    <SELECT NAME="lista1">
    <OPTION>Valor 1
    <OPTION>Valor 2
    <OPTION>Valor 3
    </SELECT>
    </FORM>
    
    Se deben tener en cuenta varias cosas respecto a SELECT:

    La longitud de la ventana de selección se autoajusta al valor más largo de la lista. La ventana de selección, por defecto, muestra una línea, si se quieren mostrar más se utilizará el atributo SIZE. Se debe procurar que los contenidos de los campos sean lo más cortos posibles; una excesiva longitud implica mayor tráfico por la red, pero se deben construir las listas de forma clara, y que resulten de fácil lectura al usuario, lo que puede aumentar la longitud de los valores. Para enviar un valor diferente del que aparece en la lista, se utiliza el parámetro VALUE asociado al atributo OPTION. Prueba con el valor 5 de la siguiente lista:



    Se escribe:
    <FORM METHOD="POST" ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT TYPE="SUBMIT" VALUE="Procesar">
    <INPUT TYPE="RESET" VALUE="Inicializar">
    
    <SELECT NAME="lista1" SIZE=3>
    <OPTION>Valor 1
    <OPTION>Valor 2
    <OPTION>Valor 3
    <OPTION>Valor 4
    <OPTION VALUE="Valor 5">Este es el Valor 5
    <OPTION>Valor 6
    <OPTION>Valor 7
    </SELECT>
    </FORM>
    
    Esto siginifica que cuando selecciones "Este es el valor 5" en realidad lo que se envía al servidor es "Valor 5".

    Con las listas desplegables es obligatorio seleccionar siempre un valor, y si no hay ninguno seleccionado, por defecto el visualizador enviará el primer valor de la lista.

    Se puede hacer que haya un valor preseleccionado añadiendo el parámetro SELECTED al atributo OPTION, y si se quiere permitir más de una selección, se pondrá el atributo MULTIPLE al elemento SELECT. Para seleccionar y deseleccionar hay que atenerse a las normas de Windows.



    Se escribe:
    <FORM METHOD="POST" ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT TYPE="SUBMIT" VALUE="Procesar">
    <INPUT TYPE="RESET" VALUE="Inicializar">
    
    <SELECT NAME="lista1" MULTIPLE SIZE=3>
    <OPTION>Valor 1
    <OPTION SELECTED>Valor 2
    <OPTION>Valor 3
    <OPTION>Valor 4
    <OPTION>Valor 5
    <OPTION>Valor 6
    <OPTION>Valor 7
    </SELECT>
    </FORM>
    
    Puede ocurrir que interese agrupar los valores de la lista desplegable, a fin de que resulte más fácil encontrar la opción adecuada, sobre todo si la lista es larga. Para ello se puede utilizar el parámetro optgroup. Por ejemplo:

    Y se escribe:

    <select name="coches">
     <option selected value="0">Ninguno
     <optgroup label="Coches de lujo">
        <option value="1">Rolls Royce
        <option value="2">Ferrari
        <option value="3">Mercedes
     </optgroup>
     <optgroup label="Coches normales">
        <option value="4">Renault
        <option value="5">Peugeot
        <option value="6">Seat
     </optgroup>
    </select>

    El elemento TEXTAREA

    Este elemento, como su nombre indica, permite definir un área de texto en la pantalla en la que podemos escribir cualquier cosa. Se debe escribir ya parametrizada en cuanto a dimensiones, con los atributos ROWS (líneas) y COLS (COLUMNAS). No tiene otros atributos o posibles variantes. Por supuesto, para que sea operativo, deberá ir acompañado de los componentes necesarios para enviar e inicializar.





    Se escribe:
    <FORM METHOD="POST" ACTION="http://miserver.midominio.mipais/cgi-bin/test2-cgi">
    <INPUT TYPE="SUBMIT" VALUE="Procesar">
    <INPUT TYPE="RESET" VALUE="Inicializar">
    
    <TEXTAREA NAME="texto1" ROWS=5 COLS=40 ></TEXTAREA>
    </FORM>
    

    Aunque no es habitual, dentro de un área de texto puede haber un contenido por defecto (que puede ser borrado o modificado por el usuario). Para ello simplemente se escribirá el texto entre <TEXTAREA> y </TEXTAREA>. Así:

    <TEXTAREA NAME="texto1" ROWS=5 COLS=40>
    Contenido del area de texto
    </TEXTAREA>
    

    El tratamiento de los datos recibidos en el servidor desde los formularios requiere conocer la tabla de conversión hexadecimal que utilizan la mayoría de visualizadores. Recuerda que las palabras en destino aparecen separadas por el signo +, y las letras acentuadas y otros caracteres, por valores hexadecimales precedidos del símbolo %

    Se puede proceder a la descodificación en el programa CGI que recibe los datos, o bien definir macros en programas auxiliares que serán ejecutados después. En el índice encontrarás la tabla de conversiones utilizada con el visualizador Netscape desde Windows.




    z-graphics escribeme visita el post
    Creative Commons License¡CSS Válido!