Indice
El HTML (HyperText Markup Language) no es más que una aplicación del SGML (Standard Generalized Markup Language), un sistema para definir tipos de documentos estructurados y lenguajes de marcas para representar esos mismos documentos. El término HTML se suele referir a ambas cosas, tanto al tipo de documento como al lenguaje de marcas. Para crear documentos HTML o páginas WEB solo es necesario un editor de textos cualquiera (hay editores especialmente dedicados para la creación de estos documentos) y un visor o navegador (browser) que visualize dichos documentos.
La descripción del lenguaje se divide en varias partes :
Cada documento HTML puede emplear un juego de caracteres distinto. De todas formas, todas las marcas se pueden escribir usando el código ISO-646, que es el mismo código utilizado en los lectores de correo electrónico (e-mail).
Cualquier cadena de caracteres que no represente un marcado, se introduce en el documento como una sola línea, sin tener en cuenta los saltos de línea ni los tabuladores, a no ser que esta se encuentre dentro de una marca de texto preformateado.
En HTML se reducen los documentos a un código ASCII de 7 bits, por lo que habrá que utilizar algunos mecanismos para poder representar todos los caracteres, ya que los caracteres especiales, de control y las tildes no se pueden representar directamente, aunque la mayoria de los editores HTML permiten escribir tildes y las transforman al grabar el documento. Estos mecanismos pueden ser :
La tabla de caracteres utilizada por HTML es la siguiente:
|
CARACTER |
CODIGO |
DESCRIPCION |
NOMBRE |
|
-- |
� -  |
Sin usar |
-- |
|
	 |
Tabulador horizontal |
-- |
|
|
|
Salto de línea |
-- |
|
|
-- |
 -  |
Sin usar |
-- |
|

: |
Retorno de carro |
-- |
|
|
-- |
 -  |
Sin usar |
-- |
|
|
  |
Espacio |
-- |
|
! |
! |
Exclamación |
-- |
|
" |
" |
Dobles comillas |
-- |
|
# |
# |
Signo de número |
-- |
|
$ |
$ |
Dolar |
-- |
|
% |
% |
Tanto por ciento |
-- |
|
& |
& |
Amspersand |
-- |
|
‘ |
' |
Apóstrofe |
-- |
|
( |
( |
Paréntesis izquierdo |
-- |
|
) |
) |
Paréntesis derecho |
-- |
|
* |
* |
Asterisco |
-- |
|
+ |
+ |
Signo más |
-- |
|
, |
, |
Coma |
-- |
|
- |
- |
Guión |
-- |
|
. |
. |
Punto (fin de párrafo) |
-- |
|
/ |
/ |
Barra de división |
-- |
|
0 - 9 |
0 - 9 |
Dígitos del 0 al 9 |
-- |
|
: |
: |
Dos puntos |
-- |
|
; |
; |
Punto y coma |
-- |
|
< |
< |
Menor |
-- |
|
= |
= |
Igual |
-- |
|
> |
> |
Mayor |
-- |
|
? |
? |
Cerrar interrogación |
-- |
|
@ |
@ |
Arroba (en) |
-- |
|
A - Z |
A - Z |
Letras A-Z |
-- |
|
[ |
[ |
Abrir corchete (izquierdo) |
-- |
|
\ |
\ |
Barra de división inversa |
-- |
|
] |
] |
Cerrar corchete (derecho) |
-- |
|
^ |
^ |
Circunflejo |
-- |
|
_ |
_ |
Subrayado |
-- |
|
` |
` |
Acento agudo |
-- |
|
a - z |
a - z |
Letras a-z |
-- |
|
{ |
{ |
Abrir llave (derecha) |
-- |
|
| |
| |
Barra vertical |
-- |
|
} |
} |
Cerrar llave (izquierda) |
-- |
|
~ |
~ |
Tilde |
-- |
|
-- |
 - Ÿ |
Sin usar |
-- |
|
  |
Espacio sin separación |
nbsp |
|
|
¡ |
¡ |
Cerrar exclamación |
iexcl |
|
¢ |
¢ |
Centavo |
cent |
|
£ |
£ |
Libra Esterlina |
pound |
|
¤ |
¤ |
Signo de divisa general, General Currency Sign |
curren |
|
¥ |
¥ |
Yen |
yen |
|
¦ |
¦ |
Barra vertical partida |
brvbar |
|
§ |
§ |
Sección |
sect |
|
¨ |
¨ |
Diéresis |
uml |
|
© |
© |
Copyright |
copy |
|
ª |
ª |
Género femenino |
ordf |
|
« |
« |
Doble menor (abrir comillas francesas o anguladas, angle quotation mark) |
laquo |
|
¬ |
¬ |
No (símbolo lógico) |
not |
|
|
­ |
Guión débil (soft hyphen) |
shy |
|
® |
® |
Registrado |
reg |
|
¯ |
¯ |
Macrón |
macr |
|
º |
° |
Grados |
deg |
|
± |
± |
Más o menos |
plusmn |
|
² |
² |
Dos superíndice |
sup2 |
|
³ |
³ |
Tres superíndice |
sup3 |
|
´ |
´ |
Acento agudo |
acute |
|
µ |
µ |
Micro |
micro |
|
¶ |
¶ |
Fin de párrafo |
para |
|
· |
· |
Punto medio |
middot |
|
¸ |
¸ |
Cedilla |
cedil |
|
¹ |
¹ |
Uno superíndice |
sup1 |
|
º |
º |
Género masculino |
ordm |
|
» |
» |
Doble mayor (cerrar comillas francesas o anguladas, angle quotation mark) |
raquo |
|
¼ |
¼ |
Un cuarto |
frac14 |
|
½ |
½ |
Mitad |
frac12 |
|
¾ |
¾ |
Tres cuartos |
frac34 |
|
¿ |
¿ |
Abrir interrogación |
iquest |
|
À |
À |
A mayúscula, acento grave |
Agrave |
|
Á |
Á |
A mayúscula, acento agudo |
Aacute |
|
 |
 |
A mayúscula, acento circunflejo |
Acirc |
|
à |
à |
A mayúscula, tilde |
Atilde |
|
Ä |
Ä |
A mayúscula, diéresis |
Auml |
|
Å |
Å |
A mayúscula, anillo |
Aring |
|
Æ |
Æ |
Diptongo AE mayúscula (ligadura) |
AElig |
|
Ç |
Ç |
C cedilla mayúscula |
Ccedil |
|
È |
È |
E mayúscula, acento grave |
Egrave |
|
É |
É |
E mayúscula, acento agudo |
Eacute |
|
Ê |
Ê |
E mayúscula, acento circunflejo |
Ecirc |
|
Ë |
Ë |
E mayúscula, diéresis |
Euml |
|
Ì |
Ì |
I mayúscula, acento grave |
Igrave |
|
Í |
Í |
I mayúscula, acento agudo |
Iacute |
|
Î |
Î |
I mayúscula, acento cicunflejo |
Icirc |
|
Ï |
Ï |
I mayúscula, diéresis |
Iuml |
|
Ð |
Ð |
Eth mayúscula, Islandesa mayúscula |
ETH |
|
Ñ |
Ñ |
Eñe mayúscula |
NTilde |
|
Ò |
Ò |
O mayúscula, acento grave |
Ograve |
|
Ó |
Ó |
O mayúscula, acento agudo |
Oacute |
|
Ô |
Ô |
O mayúscula, acento circunflejo |
Ocirc |
|
Õ |
Õ |
O mayúscula, tilde |
Otilde |
|
Ö |
Ö |
O mayúscula, diéresis |
Ouml |
|
× |
× |
Signo de multiplicación |
times |
|
Ø |
Ø |
O barrada mayúscula |
Oslash |
|
Ù |
Ù |
U mayúscula, acento grave |
Ugrave |
|
Ú |
Ú |
U mayúscula, acento agudo |
Uacute |
|
Û |
Û |
U mayúscula, acento circunflejo |
Ucirc |
|
Ü |
Ü |
U mayúscula, diéresis |
Uuml |
|
Ý |
Ý |
Y mayúscula, acento agudo |
Yacute |
|
Þ |
Þ |
THORN islandesa mayúscula |
THORN |
|
ß |
ß |
Beta minúscula |
szlig |
|
à |
à |
a minúscula, acento grave |
agrave |
|
á |
á |
a minúscula, acento agudo |
aacute |
|
â |
â |
a minúscula, acento circunflejo |
acirc |
|
ã |
ã |
a minúscula, tilde |
atilde |
|
ä |
ä |
a minúscula, diéresis |
auml |
|
å |
å |
a minúscula, anillo |
aring |
|
æ |
æ |
Diptongo ae minúscula (ligadura) |
aelig |
|
ç |
ç |
c cedilla minúscula |
ccedil |
|
è |
è |
e minúscula, acento grave |
egrave |
|
é |
é |
e minúscula, acento agudo |
eacute |
|
ê |
ê |
e minúscula, acento circunflejo |
ecirc |
|
ë |
ë |
e minúscula, diéresis |
euml |
|
ì |
ì |
i minúscula, acento grave |
igrave |
|
í |
í |
i minúscula, acento agudo |
iacute |
|
î |
î |
i minúscula, acento circunflejo |
icirc |
|
ï |
ï |
i minúscula, diéresis |
iuml |
|
ð |
ð |
eth islandesa minúscula |
eth |
|
ñ |
ñ |
eñe minúscula |
ntilde |
|
ò |
ò |
o minúscula, acento grave |
ograve |
|
ó |
ó |
o minúscula, acento agudo |
oacute |
|
ô |
ô |
o minúscula, acento circunflejo |
ocirc |
|
õ |
õ |
o minúscula, tilde |
otilde |
|
ö |
ö |
o minúscula, diéresis |
ouml |
|
÷ |
÷ |
Signo de división |
divide |
|
ø |
ø |
o barrada minúscula |
oslash |
|
ù |
ù |
u minúscula, acento grave |
ugrave |
|
ú |
ú |
u minúscula, acento agudo |
uacute |
|
û |
û |
u minúscula, acento circunflejo |
ucirc |
|
ü |
ü |
u minúscula, diéresis |
uuml |
|
ý |
ý |
y minúscula, acento agudo |
yacute |
|
þ |
þ |
thorn islandesa minúscula |
thorn |
|
ÿ |
ÿ |
="JUSTIFY">y minúscula, diéresis |
yuml |
Las marcas o directivas son las encargadas de delimitar los elementos de un documento, como cabeceras, párrafos, gráficos, ventanas, tablas, etc. (todos los elementos HTML). La mayoría de las marcas constan de una marca inicial y otra final, que da en nombre y los atributos del elemento a representar, seguida del contenido, y una marca de final.
Todas las marcas se escriben entre los símbolos < y > (menor y mayor). A continuación de esta marca de inicio se escribe el contenido que se desee, y después de esto hay que cerrar la marca con los símbolos </ nombre_marca>.
Algunas marcas no necesitan cerrarse, ya que solo constan de marca inicial. Todas las marcas se pueden anidar.
Los nombres indican el tipo de marca que se va a realizar. Un nombre consiste en una letra seguida de leras, dígitos, puntos o guiones. La longitud de un nombre está limitada a 72 caracteres en la definición HTML. Los nombres de elementos y atributos no distinguen entre mayúsculas y minúsculas, pero los nombres de entidades si.
En todas las marcas, el nombre debe comenzar inmediatamente después del símbolo <.
Los atributos son los parámetros que puede recibir la marca. Cuando una marca admite atributos, estos se describen a continuación del nombre del elemento. Generalmente, los atributos tienen la forma : Nombre = valor, aunque en algunos casos solo es necesario el nombre del atributo. Se pueden poner espacios antes y después del signo igual.
El valor de un atributo puede ser bién una cadena de caracteres entre comillas (simples o dobles), o bién un nombre de atributo (como en los descritos en al apartado 1.3).
Un comentario consiste en introducir en el documento descripciones explicativas que sirvan de ayuda al programador o a la persona que estudie el código. La forma de introducir un comentario en un documento HTML es muy sencilla. La marca utilizada para los comentarios es <! descripción_de_comentarios>. Toda la declaración del comentario se ignora a la hora de presentar el documento, ya que actua sólo como aclaración para el que estudia el código de la página.
Un documento en HTML es un conjunto de elementos anidados. El primer elemento que debe haber en cualquier documento es <HTML>, y su marca final, </HTML> debe ser el último elemento del documento. Este elemento consta de dos partes : cabecera y cuerpo. Por tanto, toda página a realizar debe contener la siguiente estructura :
<! Comentario del tipo de documento >
<! Otros comentarios >
<HTML>
<HEAD>
<TITLE> titulo </TITLE>
<! Otros elementos de cabecera si son necesarios>
</HEAD>
<BODY>
<! Desarrollo del documento >
</BODY>
</HTML>
La cabecera se utiliza para proporcionar o identificar información que sea util en todo el documento actual (la página WEB a la que se refiera). Esta cabecera va entre las marcas <HEAD > y </HEAD>. La cabecera puede contener los siguientes datos, sin importar el orden en el que aparezcan :
El cuerpo contiene el texto o documento de la página que se va a presentar. Las marcas de comienzo y final de cuerpo son <BODY> y </BODY> respectivamente. Esta marca permite el atributo BACKGROUND="imagen" para activar una imagen contenida en un fichero como fondo del documento. Los elementos que pueden aparecer en el cuerpo se describen a continuación :
Los encabezados o títulos son marcas que se emplean para dividir en texto en secciones, o para expresar títulos destacados. Las marcas empleados por los encabezados son <Hx> titulo </Hx>, siendo x un número entre 1 y 6. El título más grande es el 1, y el más pequeño el 6. Normalmente, se suelen representar con letra negrita y se alinean a la izquieda. Permiten el atributo ALIGN="modo" para alinearlo, con los valores posibles de LEFT, RIGHT y CENTER, para alinear a la izquierda, derecha y centro respectivamente. (Por defecto es LEFT).
Para definir y separar bloques de texto se emplean una serie de marcas que definen párrafos, texto preformateado o bloques con un significado especial como direcciones o citas. También es posible utilizar marcas para saltos de línea y para insertas líneas horizontales. Las marcas de bloque son las siguientes :
WIDTH=numero
para indicar el nº máximo de caracteres po línea para que el visor ajuste el tamaño y tabulación del texto.CLEAR="modo"
, con el objetivo de indicar donde debe comenzar la siguiente línea en el caso de distribuir el texto alrededor de una imagen, pudiendo tomar modo los valores LEFT, RIGHT y ALL. LEFT indica que la siguiente línea ha de comenzar tan pronto como el margen izquierdo esté libre. RIGHT hace los mismo pero con respecto al margen derecho. ALL no comienza una línea hasta que los dos márgenes están libres.SIZE=numero_pixeles
para indicar el nº de pixeles de ancho o grosor que se desea que tenga la línea.WIDHT=numero_o_porcetaje
para indicar la longitud de la línea, que por defecto es todo el área de visualización de la página. Si se indica en número, se especifica en pixeles, y si se indica en porcentaje, este porcentaje debe de ir seguido del símbolo %.ALIGN="modo"
para indicar el modo de alineación de la línea, pudiendo tomar modo los valores LEFT, RIGHT y CENTER, para alinearse a la izquierda, derecha o centro respectivamente. Por defecto es a la izquierda (LEFT).NOSHADE
para especificar que la barra debe ser sólida, es decir, sin efectos de sombra.Las listas son en realidad otras marcas que permiten definir bloques, pero con unas características especiales. Las listas se utilizan para presentar de forma ordenada una serie de líneas. Existe varios tipos de listas, que son los siguientes :
Las listas desordenadas ponen delante de cada elemento de la lista un punto o un cuadro, mientras que las listas ordenadas ponen un nº de orden.
Excepto en las listas de definición y en el menú, todos los casos son iguales. Escribiendo <LI> línea_o_descripción delante de cada nuevo elemento de la lista bastará para construir la lista. <LI> no tiene marca de fin.
Ejemplo de uso de lista ordenada :
<OL>
<LI> Este es el elemento 1
<LI> Este es el elemento 2
</OL>
Ejemplo de uso de lista desordenada :
<UL>
<LI> Este es el elemento 1
<LI> Este es el elemento 2
</UL>
Las listas de definición permiten hacer definiciones especiales de cada uno de los elementos que forman la lista, mostrando la definición con una tabulación más que el elmento de la lista. Para ello solo basta con utilizar <DT> (Definition Term) para definir el elemento, y <DD> (Definition Data) para especificar su descripción. Estas marcas no tienen marca de fin.
Ejemplo de uso de lista de definiciones :
<DL>
<DT> Término 1
<DL> Definición del término 1
<DT> Término 2
<DL> Definición del término 2
</DL>
Existen unos atributos para controlar el aspecto de cada línea de la lista y los números en las listas ordenadas. Estos atributos son los siguientes :
Para listas desordenadas (<UL>)
Para listas ordenadas (<OL>)
Existen varias marcas para indicar que una palabra o frase tiene un significado especial. Estas marcas son las siguientes :
Se utiliza para indicar el aspecto de una palabra o texto. Las marcas correspondientes son las siguientes :
Un caso especial de marcado es el representado por el elemento <A HREF="url"> elemento_para_salto </A>, que se utiliza para indicar que un texto hace referencia a otro, es decir, está anclado mediante un hiperenlace. HREF se utiliza para especificar el valor del URL (Uniform Resource Locator) o URI (Uniform Resource Identifier), que es la dirección del nuevo documento. El URL se puede referir a otro documento distinto o incluso al mismo documento, tanto como a cualquier otro tipo de recurso (FTP, Gopher, etc.). Los atributos opcionales son :
Ejemplo del uso de links en un mismo documento (se supone que el documento se llama doc.htm) :
<A NAME="Principal">
<A HREF="doc1.htm"> Ir al documento 1 </A>
<A HREF="doc2.htm"> Ir al documento 2 </A>
<A HREF="doc3.htm"> Ir al documento 3 </A>
<A HREF="doc.htm#Punto1"> Ir a un punto de este documento </A>
. .
. .
<A NAME="Punto1">
<H3> Este es el punto 1 del documento.</H3>
<A HREF="doc.htm#Principal"> Pulse aquí para volver al punto anterior </A>
. .
Como ya se ha descrito antes, un punto cualquiera de un documento marcado con NAME puede ser referenciado desde otro documento utilizando el formato especial de HREF.
La utilidad de este atributo está en que podemos hacer que el cliente abra distintas ventanas para cada enlace, sin dejar de tener nuestra página disponible; además de sus usos en el nuevo elemento FRAME, descrito en el tema 10.
Un formulario es una plantilla para representar un conjunto de datos, el método de eviarlos y el URI de la acción asociada, es decir, la referencia al programa que va a realizar el proceso con los datos..
El formulario consta de un conjunto de datos formado por los pares nombre/valor. Los nombres se especifican en el atributo NAME de los elementos de entrada del formulario, y los valores toman un valor inicial empleando distintos marcados, que podrán ser editados por el usuario.
Los formularios pueden mezclarse con otros elementos, por lo que podrá estar dentro de cualquiera o contener a cualquiera. Las marcas de comienzo y fin de formulario son <FORM> y </FORM> respectivamente.
El uso de formularios está limitado a su uso en las páginas montadas en los servidores o con acceso a la red, ya que los programas asociados sólo harán efecto en el servidor. Sin embargo han aparecido ya algunos navegadores capaces de llamar a programas locales.
La declaración o el desarrollo del formulario se realiza entre las marcas <FORM> y </FORM>. La marca de inicio permite los siguientes atributos :
* ACTION="programa" : Especifica el URI de la acción o programa asociado al formulario. Si no se especifica, por defecto es el URI BASE del documento.
* METHOD=modo : Indica el método de acceso al URI de la acción. Estos métodos, es decir, el valor de modo, puede ser GET o POST. Estos modos están explicados en el apartado "Envio de formularios" en el punto 6.6.
* ENCTYPE=tipo : Especifica el tipo de codificación para el transporte de los pares de datos nombre/valor, excepto en los casos en los que el protocolo no imponga uno. También se utiliza dentro de la declaración de los formularios para enviar ficheros a los servidores de HTTP, de modo que se pueden escribir formularios que soliciten al usuario el envio de un fichero. Un ejemplo de esto se encuentra a continuación :
<FORM ENCTYPE="multipar/form-data" ACTION="_URL_" METHOD=POST>
Enviar este archivo
<INPUT NAME="userfile" TYPE="file"
<INPUT NAME="submit" VALUE="Enviar">
</FORM>
* WRAP=valor : Va dentro del elemento TEXTAREA y permite controlar la manera de gestionar el flujo del texto dentro de las áreas de entrada de texto en formularios. WRAP puede tomar los siguientes valores :
- OFF : Las líneas se envían tal y como las introduce el usuario.
- VIRTUAL : Las líneas se parten para ajustar a la caja, pero se envían como una sola línea sin caracteres de salto.
- PHISICAL : Las líneas se parten para ajustar a la caja, enviando también los caracteres de salto.
Los elementos especiales para formularios son los siguientes :
- Campos de entrada de datos.
- Campos de selección.
- Areas de texto.
El elemento INPUT representa un campo de entrada de datos por teclado. Esta marca debe contener siempre el atributo NAME="nombre_variable", donde "nombre_variable" será el nombre que tome la variable que contenga un determinado valor fuera del documento HTML, es decir, en el programa que tratará dichos datos. Los demás atributos posibles que puede tomar vienen datos por el valor del atributo TYPE, que determina el tipo de entrada de datos y que puede ser :
Texto (INPUT TYPE=TEXT)
Este es el valor por defecto del atributo TYPE. El atributo NAME es obligatorio en este tipo de elementos para indicar el nombre del campo. Los atributos opcionales que puede tomar son :
* MAXLENGTH=longitud : Limita el número máximo de caracteres que se pueden introducir en el campo. Si el valor es mayor que el del atributo SIZE, el visor realizará un desplazamiento de la línea. El número máximo de caracteres es por defecto ilimitado.
* SIZE=anchura : Especifica la cantidad de espacio reservada para este campo dentro del documento
* VALUE=valor : Indica el valor inicial del campo
Ejemplo :
<INPUT TYPE=TEXT NAME="cNombre" SIZE=30 VALUE="Introduzca aqui el nombre">
Pasword (INPUT TYPE=PASWORD)
Este elemento actúa exactamente igual que el anterior, es decir, que INPUT TYPE=TEXT, con la única diferencia de que no se vé el texto al escribirlo, sino que solo se visualizan asteriscos.
Caja de selección (INPUT TYPE=CHECKBOX)
Este elemento devuelve un valor lógico o booleano, es decir, Verdadero o Falso, Si o No. Si a un conjunto de elementos de este tipo se le asigna el mismo nombre, se obtendrá un área de selección múltiple. Estos elementos requieren los atributos NAME y VALUE, que indican el nombre del elemento o grupo de elementos y la parte del valor del campo aportada por el elemento respectivamente. Permite seleccionar varios elementos.
Posee el atributo opcional CHECKED, que indica que el valor inicial del elemento es seleccionado.
Ejemplo :
<H3>Seleccione su/s lenguaje/s preferido</H3>
<INPUT TYPE=CHECKBOX NAME="cLen" VALUE="Visual FoxPro">
<INPUT TYPE=CHECKBOX NAME="cLen" VALUE="CA-Visual Objects" CHECKED>
<INPUT TYPE=CHECKBOX NAME="cLen" VALUE="Visual C" >
<INPUT TYPE=CHECKBOX NAME="cLen" VALUE="CA-Clipper">
<INPUT TYPE=CHECKBOX NAME="cLen" VALUE="Otro/s">
Botón (INPUT TYPE=RADIO)
Este elemento devuelve un valor lógico o booleano, es decir, Verdadero o Falso, Si o No. Un conjunto de elementos de este tipo con el mismo nombre representan un campo de selección múltiple, en el que sólo un elemento se puede marcar. Estos elementos requieren los atributos NAME y VALUE. Opcionalmente permite el atributo CHECKED para indicar que el estado inicial es seleccionado. En cualquier momento, sólo uno de los botones del mismo grupo puede estar seleccionado. Si a ninguno de los elementos se le da el atributo CHECKED, el browser debe marcar el primero de ellos inicialmente.
Ejemplo :
<H3>Seleccione su browser preferido</H3>
<INPUT TYPE=RADIO NAME="cBrow" VALUE="Netscape Navigator">
<INPUT TYPE=RADIO NAME="cBrow" VALUE="Microsoft Explorer" >
<INPUT TYPE=RADIO NAME="cBrow" VALUE="Otro/s" >
Pixel de una imagen (INPUT TYPE=IMAGE)
Este elemento especifica na imagen para que el browser o visor la muestre y permita la entrada de dos campos, las coordenadas x e y de un pixel seleccionado de dicha imagen. Los nombres de los coampos son iguales al del campo, añadiendo al final x e y respectivamente. Este tipo implica también INPUT TYPE=SUBMIT, es decir, cuando se selecciona un pixel, se envía todo el formulario.
Los atributos NAME y SRC son necesarios, y los campos ALIGN e IMG son opcionales.
Ejemplo :
<INPUT TYPE=IMAGE NAME=nPunto SRC="mapa.gif">
Oculto (INPUT TYPE=HIDDEN)
Este elemento representa un campo oculto. El usuario no interactúa con él, es el atributo VALUE el que especifica el valor del campo. Tanto el atributo NAME como el atributo VALUE son obligatorios.
Ejemplo :
<INPUT TYPE=HIDDEN NAME="cClave" VALUE="123abc456def">
Botón de envio (INPUT TYPE=SUBMIT)
Representa una opción, normalmente mediante un botón, que lindica que pulsando sobre el se debe enviar el formulario. Cuando se selecciona dicho botón, se pasa a ejecutar el programa de envio que se haya especificado al inicio del documento con la orden FORM METHOD=metodo ACTION="programa.ext" (esto se explicará más adelante, en el apartado de 6.6, Envio de formularios). Como atributos opcionales acepta los siguientes:
* NAME="cCampo" : Indica que este elemento constituye un campo cuyo valor es el del atributo VALUE. En caso de que no se incluya el atributo, este elemento no es un campo.
* VALUE="cNombre" : Indica la etiqueta de entrada para el botón.
Ejemplo :
<P>¿ A quién le desea enviar el formulario ?</P>
<INPUT TYPE=SUBMIT NAME="cDestino" VALUE="Administrador">
<INPUT TYPE=SUBMIT NAME="cDestino" VALUE="Director">
Botón de reinicio (INPUT TYPE=RESET)
Este elemento representa normalmente un botón que indica que pulsado sobre él se deben reiniciar todos los valores de todos los campos del formulario a los que hace referencia este botón, es decir, vuelven a su valor inicial. El atributo opcional VALUE se utiliza para indicar la etiqueta del botón.
Ejemplo :
<P>Si se equivoca, pulse aquí : <INPUT TYPE=RESET VALUE="Borrar"></P>
Este elemento se utiliza para seleccionar un valor de entre una lista de ellos, todos entre las marcas <SELECT> y </SELECT>. Para definir estos valores se utiliza el elemento <OPTION>valor, con los siguientes atributos opcionales :
* MULTIPLE : Indica que el valor puede incluir más de una opción.
* NAME="cNombre" : Especifica el nombre del campo.
* SIZE=tamaño : Determina el número de opciones (items) visibles. Si se indica un tamaño de 1, se suelen repreentar como menús desplegables, y si el tamaño es mayor, se suele representar una lista con barra de desplazamiento.
El elemento <OPTION> sólo puede aparecer dentro de un elemento <SELECT>, y representa una de las posibles opciones. Acepta los siguientes atributos :
* SELECTED : Indica que la opción a la que hace referencia está seleccionada inicialmente. Si ninguna opción lleva este atributo, el visor suele presentar la primera.
* VALUE="cNombre" : Indica el valor a devolver si se selecciona la opción. Si no se incluye este atributo, se devuelve el contenido del elemento.
Ejemplo :
<SELECT NAME="cOrdenador">
<OPTION>Pc 386
<OPTION>Pc 486
<OPTION SELECTED>Pentium / Pentium Pro
<OPTION>Motorola
<OPTION>Apple
<OPTION>Amiga
<OPTION>Otro
</SELECT>
Este elemento representa un campo de texto de múltiples líneas. Los atributos que admite son los siguientes :
* COLS=columnas : Indica el número de columnas visibles del área de texto (en caracteres). Si la longitud del texto excede de este nº de columnas, aparece una barra de desplazamiento horizontal.
* NAME="cNombre" : Indica el nombre del campo.
* ROWS=filas : Indica el número de filas visibles del área de texto (en caracteres). Si la longitud del texto excede de este nº de filas, aparece una barra de desplazamiento vertical.
El valor inicial del texto es lo que se encuentre entre <TEXTAREA> y </TEXTAREA>.
Ejemplo :
<TEXTAREA NAME="cSugerencias" ROWS=6 COLS=60>
Escriba aquí sus sugerencias. Gracias.
</TEXTAREA>
Un browser o visor de HTML comienza un formulario presentando el documento con los valores de los campos en su estado inicial. Según el tipo de campo, el usuario modificará sus valores de una forma u otra (rellenando con texto, seleccionando una o varias opciones, etc.). Cuando el usuario termina de rellenar el formulario, puede enviarlo utilizando un botón de envio o una selección en el pixel de una imagen. En ese momento, el browser analiza las entradas, y en función del método, acción y tipo de codificación, lo envía.
En caso de que el formulario solo tuviera un campo de entrada de texto de una línea, el browser debe aceptar un intro como una petición de envio del formulario.
>Tipo de codificación de los formularios
La codificación por defecto de todos los formularios es, según el esquema MIME, application/x-www-form-urlencoded. Un conjunto de datos de un formulario se representa en este caso del siguiente modo :
1. Los nombres de campos y los valores son preprocesados : los espacios son reemplazados por el símbolo +, y los caracteres son sustituidos como en los URL, es decir, los caracteres no alfanuméricos se representan con un signo de tanto por cien y dos dígitos hexadecimales, que indican el código ASCII del caracter (%HH). Los saltos de línea (utilizados en los campos de múltiples líneas), se representan con pares CRLF (sustituidos por %0D%0A).
2. Los campos se listan en el orden en el que aparecen en el documento, con los nombres separados del valor por el símbolo = y los pares separados entre sí por el símbolo &. Los campos con valores nulos pueden ser omitidos, en particular, los campos no seleccionados en entradas booleanas no deben aparecer en los datos, pero los campos ocultos que tengan el atributo VALUE sí.
Formularios de consulta : METHOD=GET
El método de consulta depende de los efectos que el formulario tenga en el estado del resto del mundo, es decir, si el envío va a producir cambios en cualquier documento o programa que no sea nuestro propio browser.
Si el proceso del formulario no produce cambios, el mégodo usado debe ser GET. Un ejemplo de este tipo de formularios son las consultas a bases de datos, que no tienen efectos laterales visibles.
Para procesar un formulario cuyo URL de acción es un URL de tipo HTTP y el método es GET, el visor genera un URI que comienza con el de la acción al que se le aáde un interrogante (?) y el conjunto de datos codificado con el formato application/x-www-form-urlencoded visto en el punto anterior. Para acceder a la consulta el visor accede al URI de la misma manera que lo hace con los que aparecen en los anclajes.
De todos modos, en algunos casos, la codificación de los datos puede generar un URI extremadamente largo, lo que puede provocar un funcionamiento erróneo con algunos servidores de HTTP antiguos. Por esta razón, algunos formularios que no tienen efectos laterales, se escriben usando el método POST.
Formularios con efectos laterales : METHOD=POST
Para formularios con efectos laterales (como uno que modifique una base de datos) se emplea el método POST.
Para procesar un formulario cuyo URL de acción es de tipo HTTP y el método es POST, el browser gestiona una transacción de tipo POST del protocolo HTTP, usando el URI de la acción y el cuerpo de un mensaje de tipo application/x-www-form-urlencoded como antes. El visor debe presentar la respuesta del HTTP POST de la misma forma que la respuesta obtenida con el método GET.
Ejemplo de envío de formularios
<TITLE>Ejemplo de envio de formularios</TITLE>
<H1>Cuestionario de personal</H1>
<P>Por favor, rellene el siguiente formulario :
<FORM METHOD=POST ACTION="/cgi-bin/post-query">
<P>Nombre : <INPUT NAME="cNombre" SIZE=48>
<P>Hombre <INPUT NAME="cGenero" TYPE=RADIO VALUE="Hombre">
<P>Mujer <INPUT NAME="cGenero" TYPE=RADIO VALUE="Mujer">
<P>Numero de miembros de la familia <INPUT NAME="cFamilia" TYPE=TEXT>
<P>Idiomas que conoce :
<UL>
<LI>Frances <INPUT NAME="cIdioma" TYPE=CHECKBOX VALUE="Frances">
<LI>Ingles <INPUT NAME="cIdioma" TYPE=CHECKBOX VALUE="Ingles">
<LI>Otros
<TEXTAREA NAME="cOtros"> COLS=48 ROWS=4></TEXTAREA>
</UL>
<P>Pulse aqui para enviar los datos <INPUT TYPE=SUBMIT VALUE="Enviar">
<P>Puede volver a comenzar en cualquier momento pulsando aqui <INPUT TYPE=RESET VALUE="Comenzar">
</FORM>
El estado inicial de los datos es el siguiente :
cNombre = ""
cGenero = "Hombre"
cFamilia = ""
cOtros = ""
Hay que señalar que la entrada de tipo RADIO tiene valor inicial, mientras que la del tipo CHECKBOX no.
Cuando el usuario rellena los campos y solicita el envio, suponiendo que los valores de los campos sean los siguientes :
cNombre = "Alicia Martinez"
cGenero = "Mujer"
cFamilia = "4"
cIdioma = "Ingles"
cOtros = "Valenciano\nGallego"
( \n = Salto de línea)
entonces el browser gestiona unatransacción HTTP POST usando el URI /cgi-bin/post-query. El cuerpodel mensaje que se enviará será el siguiente :
cNombre=Alicia+Martinez&cGenero=Mujer&cFamilia=4&cIdioma=Ingles&cOtros=Valenciano%0D%0AGallego
Esto es muy importante de saber a la hora de realizar programas externos que traten los datos del formulario.
El aspecto del documento es también muy importante. Para este fin se han creado unos atributos que permiten cambiar los colores. En el elemento <BODY> se pueden introducir los siguientes atributos :
Nota : Los valores "rrggbb" indican la mezcla de colores, siendo rr = rojo, gg = verde y bb = azul (red, green, blue = RGB). Estas iniciales deben ser sustituidas por números entre 0 y 255 (00 y FF en hexadecimal). El color "#000000" es negro, y el "#FFFFFF" es blanco.
A continuación se muestra una tabla con algunos colores :
|
NOMBRE DE COLOR |
VALOR RGB |
|
Verde lima |
#32CD32 |
|
Naranja mandarina |
#E47833 |
|
Castaño |
#8E236B |
|
Aguamarina medio |
#32CD99 |
|
Azul medio |
#3232CD |
|
Verde bosque medio |
#6B8E23 |
|
Dorado medio |
#EAEAAE |
|
Orquidea medio |
#9370DB |
|
Verde mar medio |
#426F42 |
|
Azul pizarra medio |
#7F00FF |
|
Verde manantial medio |
#7FFF00 |
|
Turquesa medio |
#70DBDB |
|
Violeta-Rojo medio |
#DB7093 |
|
Selva medio |
#A68064 |
|
Azul marino de medianoche |
#2F2F4F |
|
Azul marino |
#23238E |
|
Azul neón |
#4D4DFF |
|
Rosa neón |
#FF6EC7 |
|
Azul de medianoche nuevo |
#00009C |
|
Canela nuevo |
#EBC79E |
|
Oro viejo |
#CFB53B |
|
Naranja |
#FF7F00 |
|
Naranja-Rojo |
#FF2400 |
|
Orquidea |
#DB70DB |
|
Verde pálido |
#8FBC8F |
|
Rosa |
#BC8F8F |
|
Ciruela |
#EAADEA |
|
Cuarzo |
#D9D9F3 |
|
Azul rico |
#5959AB |
|
Salmón |
#6F4242 |
|
Escarlata |
#8C1717 |
|
Verde mar |
#238E68 |
|
Chocolate semi-suave |
#6B4226 |
|
Siena |
#8E6B23 |
|
Plata |
#E6E8FA |
|
Azul cielo |
#3299CC |
|
Azul pizarra |
#007FFF |
|
Rosa vivo |
#FF1CAE |
|
Verde fuerte |
#00FF7F |
|
Azul metálico |
#236B8E |
|
Azul de verano |
#38B0DE |
|
Canela |
#DB9370 |
|
Cardo |
#D8BFD8 |
|
Turquesa |
#ADEAEA |
|
Marrón muy oscuro |
#5C4033 |
|
Gris muy claro |
#CDCDCD |
|
Violeta |
#4F2F4F |
|
Violeta-Rojo |
#CC3299 |
|
Trigo |
#D8D8BF |
|
Blanco |
#FFFFFF |
|
Rojo |
#FF0000 |
|
Verde |
#00FF00 |
|
Azul |
#0000FF |
|
Magneta |
#FF00FF |
|
Cian |
#00FFFF |
|
Amarillo |
#FFFF00 |
|
Negro |
#000000 |
|
Aguamarina |
#70DB93 |
|
Chocolate |
#5C3317 |
|
Azul-Violeta |
#9F5F9F |
|
Bronce |
#B5A642 |
|
Oro brillante |
#D9D919 |
|
Marrón |
#A62A2A |
|
Bronce 2 |
#8C7853 |
|
Bronce 3 |
#A67D3D |
|
Azul cadete |
#5F9F9F |
|
Cobre fresco |
#D98719 |
|
Cobre |
#B87333 |
|
Coral |
#FF7F00 |
|
Azul flor-maiz |
#42462F |
|
Marrón oscuro |
#5C4033 |
|
Verde oscuro |
#2F4F2F |
|
Verde cobrizo oscuro |
#4A766E |
|
Verde aceituna oscuro |
#4F4F2F |
|
Orquidea oscuro |
#9932CD |
|
Morado oscuro |
#871F78 |
|
Azul pizarra oscuro |
#6B238E |
|
Gris pizarra oscuro |
#2F4F4F |
|
Canela oscuro |
#97694F |
|
Turquesa oscuro |
#7093DB |
|
Selva oscuro |
#855E42 |
|
Gris oscuro |
#545454 |
|
Rosa polvoriento |
#856363 |
|
(Feldspar) |
#D19275 |
|
Fuego-Ladrillo |
#8E2323 |
|
Verde bosque |
#238E23 |
|
Oro |
#CD7F32 |
|
Dorado |
#DBDB70 |
|
Gris |
#C0C0C0 |
|
Verde cobrizo |
#527F76 |
|
Verde amarillento |
#93DB70 |
|
Verde caza |
#215E21 |
|
Rojo indio |
#4E2F2F |
|
Kaki |
#9F9F5F |
|
Azul claro |
#C0D9D9 |
|
Gris claro |
#A8A8A8 |
|
Azul pizarra claro |
#8F8FBD |
|
Selva claro |
#E9C2A6 |
Para incluir imágenes en los documentos HTML se utiliza la marca <IMG SRC="fichero_imagen"> texto_auxiliar </IMG>. El texto auxiliar es opcional y sirve para que este se coloque alrededor de la imagen. El atributo SRC lo que en realidad hace es un enlace con el fichero que contiene la imagen. Están permitidos varios formatos de imagen, como GIF, JPEG o BMP. Si se combina con <A HREF="url">, una imagen puede ser el enlace con otros lugares u otros documentos. Los atributos opcionales que permite son los siguientes :
Ejemplo de enlace con documento mediante una imagen :
. .
<AHREF="doc01.htm"> <IMG SRC="doc01.gif" ALT="Documento1" ALIGN=MIDDLE>Pulse la imagen para ir al documento 1</IMG> </A>
Los mapas de selección o Image Maps son muy utilizados en las páginas WEB. Un mapa de selección consiste en permitir a los usuarios a otros documentos (tal y como los anclajes de los hiperenlaces seleccionando en distintas áreas de una imagen.
El elemento para definir los mapas es <MAP>, junto con <IMG> al que se le añade el atributo USEMAP para indicar que se debe usar la descripción para gestionar el mapa. Las regiones de cada imagen se describen usando el elemento <MAP>. Este eemento describe cada región de la imagen e indica a dónde apunta. El formato básico de este elemento es el siguiente :
<MAP NAME="nombre_mapa">
<AREA [SHAPE="figura"] COORDS="x,y,...." [HREF="referencia" | NOHREF]>
</MAP>
El atributo NAME indica el nombre del mapa, para poder ser referenciado desde los elementos <IMG>, es por tanto necesario.
El elemento <AREA> sirve para indicar el tipo de figura (SHAPE), las coordenadas de la misma (COORDS) (el nº de ellas depende del tipo de figura) y la referencia a emplear cuando se selecciona un punto del área de la imagen (HREF o NOHREF).
Los tipos de figura (SHAPE) que se pueden utilizar y el formato de sus coordenadas (COORDS) son los siguientes :
NOTA : x = Fila ; y = Columna
El atributo HREF="referencia" indicará a donde ir si se selecciona en su área, mientras que el atributo NOHREF no debe hacer nada si se selecciona su área. Hay que indicar que los anclajes relativos se expandirán tomando como base el URL de la descripción del mapa (si hay una marca BASE en el documento que contiene la descripción, será ese URL el empleado, no el del documento desde el que se referencia).
Si varios elementos <AREA> intersectan, la que toma precedencia es la que aparece en primer lugar en el mapa.
El atributo USEMAP indica que la imagen es un mapa gestionado por el cliente, aunque puede ser usado junto al atributo ISMAP, de manera que un browser que no soporte USEMAP accederá al mapa del servidor.
El valor del atributo indica el mapa a emplear con la imagen, en un formato similar al del atributo HREF en los anclajes. Así, una referencia a una mapa que comience con una almoadilla (#) se encontrará en el mismo documento al que hace referencia.
Ejemplo :
<HTML>
<HEAD>
<TITLE>Ejemplos de mapas de seleccion</TITLE>
</HEAD>
<BODY>
<!-- Mapa de una imagen de 160 * 160 pixels -->
<MAP NAME="MapColores">
<AREA SHAPE="POLY" COORDS="10, 49, 29, 10, 49, 49" HREF="Rojo.html">
<AREA SHAPE="RECT" COORDS="60, 10, 99, 49" HREF="Verde.html">
<AREA SHAPE="CIRCLE" COORDS="130, 30, 20" HREF="Azul.html">
<AREA SHAPE="RECT" COORDS="0, 0, 159, 159" HREF="Blanco.html">
<!-- El último área hace que todo lo que no estaba marcado por los anteriores vaya a Blaco.html -->
</MAP>
<H1>Ejemplos de mapas de seleccion. Seleccione un color</H1>
<P>Este mapa solo funcionará si su browser soporta el control de mapas</P>
<IMG SRC="colores.gif" USEMAP="#MapColores">
<P>Este mapa funcionará independientemente del tipo de visor</P>
<A HREF="/cgi-bin/imagemap/colores">
<IMG SRC="colores.gif" USEMAP="#MapColores" ISMAP>
</A>
<P>Si su browser no soporta mapas de usuario, pulse la imagen para ir a una página con el mismo contenido en tipo texto</P>
<A HREF="/colores.html">
<IMG SRC="colores.gif" USEMAP="#MapColores">
</A>
</BODY>
</HTML>
Uno de los elementos más importantes de los documentos HTML son las tablas, que permiten presentar la información de manera muy flexible. Las tablas se pueden anidar, es decir, dentro de una fila o una columna se puede definir otra sub-tabla. Además, se pueden meter datos que ocupen las filas o columnas que se deseen sin afectar a todos los demás. En este tema se estudiará el tratamiento de las tablas, que se pasan a describir a continuación.
El elemento que permite crear las tablas es <TABLE>, con su marca final </TABLE>. Entre estas dos marcas deben definirse las características y los datos que la tabla debe contener. Este elemento acepta el siguiente atributo, opcional :
A continuación pasan a explicarse otros elementos que se utilizan a la hora de definir las tablas :
<TR>
Este elemento sirve para definir columnas. Su nombre viene de Table Row. Entre las marcas <TR> y </TR> se meten las marcas y los datos correspondientes que debe mostrar la tabla.
<TD>
Este elemento se utiliza para definir los datos de la tabla. Su nombre viene de Table Data. Entre las marcas <TD> y </TD> deben aparecer los datos que aparecerán en la celda correspondiente de la tabla. Permite los siguientes atributos, opcionales :
<TH>
Este elemento se utiliza para definir las cabeceras o títulos de las tablas. Su nombre viene de Table Head. Su misión es colocar el título escrito entre las marcas <TH> y </TH> en la celda correspondiente al lugar en que se define. Admite opcionalmente el atributo ALIGN. Por defecto utiliza un tipo de letra negrita y su alineación es ALIGN=CENTER.
<CAPTION>
Este elemento se utiliza para nombrar a la tabla. Dicho nombre se mostrará encima o debajo de la tabla, centrado con respecto a su tamaño, pero nunca dentro. Su formato es <CAPTION="lugar">titulo</CAPTION>, pudiendo tomar "lugar" los valores de "top" para que aparezca en la parte superior de la tabla y "bottom" para que aparezca en la parte inferior.
Ejemplos de tablas
A continuación se muestran una serie de ejemplos de tablas :
1) Tabla básica de 3 * 2
<TABLE BORDER>
<TR>
<TD>Fila 1 Col. 1</TD>
<TD>Fila 1 Col. 2</TD>
<TD>Fila 1 Col. 3</TD>
</TR>
<TR>
<TD>Fila 2 Col. 1</TD>
<TD>Fila 2 Col. 2</TD>
<TD>Fila 2 Col. 3</TD>
</TR>
</TABLE>
2) Tabla con su 2ª columna ocupando 2 filas
<TABLE BORDER>
<TR>
<TD>Fila 1 Col. 1</TD>
<TD ROWSPAN=2>Filas 1 y 2 Col. 2</TD>
<TD>Fila 1 Col. 3</TD>
</TR>
<TR>
<TD>Fila 2 Col. 1</TD>
<TD>Fila 2 Col. 3</TD>
LIGN="JUSTIFY"></TR>
</TABLE>
3) Tabla con su 2ª columna 1ª fila ocupando 2 columnas
<TABLE BORDER>
<TR>
<TD>Fila 1 Col. 1</TD>
<TD COLSPAN=2>Fila 1 Col. 2 y 3</TD>
</TR>
<TR>
<TD>Fila 2 Col. 1</TD>
<TD>Fila 2 Col. 2</TD>
<TD>Fila 2 Col. 3</TD>
</TR>
</TABLE>
4) Tabla con 2 cabeceras de 4 elementos cada una
<
TABLE BORDER><TR>
<TH COLSPAN=2>Cabecera 1</TH>
<TH COLSPAN=2>Cabecera 2</TH>
</TR>
<TR>
<TD>Cab. 1 Fil. 1 Col. 1</TD>
<TD>Cab. 1 Fil. 1 Col. 2</TD>
<TD>Cab. 1 Fil. 2 Col. 1</TD>
<TD>Cab. 1 Fil. 2 Col. 2</TD>
</TR>
<TR>
<TD>Cab. 2 Fil. 1 Col. 1</TD>
<TD>Cab. 2 Fil. 1 Col. 2</TD>
<TD>Cab. 2 Fil. 2 Col. 1</TD>
<TD>Cab. 2 Fil. 2 Col. 2</TD>
</TR>
</TABLE>
5) Tabla con cabeceras en cada fila (no en columnas) y con nombre encima
<TABLE BORDER>
<CAPTION ALIGN="top">Nombre encima</CAPTION>
<TR>
<TH>Cabecera fila 1</TH>
<TD>Fila 1 Col. 2</TD>
<TD>Fila 1 Col. 3</TD>
<TD>Fila 1 Col. 4</TD>
</TR>
<TR>
<TH>Cabecera fila 2</TH>
<TD>Fila 2 Col. 2</TD>
<TD>Fila 2 Col. 3</TD>
<TD>Fila 2 Col. 4</TD>
</TR>
<TR>
<TH>Cabecera fila 3</TH>
<TD>Fila 3 Col. 2</TD>
<TD>Fila 3 Col. 3</TD>
<TD>Fila 3 Col. 4</TD>
</TR>
</TABLE>
6) Tabla con borde ancho y separación entre sus cajas
<TABLE BORDER=5 CELLPADING=10 CELLSPACING=10>
<TR>
<TD>Fila 1 Col. 1</TD>
<TD>Fila 1 Col. 2</TD>
<TD>Fila 1 Col. 3</TD>
</TR>
<TR>
<TD>Fila 2 Col. 1</TD>
<TD>Fila 2 Col. 2</TD>
<TD>Fila 2 Col. 3</TD>
</TR>
</TABLE>
Los frames permiten dividir las páginas HTML en varias regiones o ventanas con barras de desplazamiento, lo que permite presentar la información de manera muy flexible.
Cada vista o región puede tener distintas características :
Estas propiedades ofrecen nuevas posibilidades :
La sintaxis de las vistas es muy similar a la de las tablas, y están diseñadas para ser procesadas rápidamente por los visores o browsers.
Los elementos utilizados para definir las vistas se definen a continuación :
<FRAMESET>
Define un conjunto de vistas. Toma dos atributos, ROWS y COLS (filas y columnas). Un documento con vistas no tiene cuerpo (<BODY>) y ninguna de las marcas que normalmente se colocarían en él pueden aparecer antes de la marca <FRAMESET> o esta última será ignorada.
La marca inicial <FRAMESET> tiene su correspondiente marca de cierre </FRAMESET>, y dentro de ellas sólo se pueden tener otras marcas <FRAMESET> anidadas, marcas <FRAME> o marcas <NOFRAMES>.
Los valores de los atributos ROWS y COLS toman como valor una lista de valores separados por comas. Estos valores pueden ser valores absolutos en pixels, porcentajes entre 1% y 100% o valores de escala relativos.
En el caso del atributo ROWS, el número de filas está implícito en el número de elementos de la lista. Dado que el tamaño total de todas las filas debe coincidir con la altura de la ventana, el alto de las filas debe ser nomalizado. Si no se incluye el atributo ROWS, se asume una sola fila de la misma altura que la ventana. El atributo COLS actua de forma similar.
Una vez definidas las filas y las columas, la asociación de elementos se hace en función de la forma de declaralas, por ejemplo, si tenemos 4 filas y 2 columnas, tendremos un total de 8 valores, donde los primeros 4 se asignarán a la vistas 1, 2, 3 y 4 de la primera columna mientras que los 4 restantes se asignarán a las mismas vistas de la segunda columna.
La síntaxis de estos valores es la siguiente :
La marca <FRAMESET> puede estar inclida en otras marcas <FRAMESET>. En ese caso, la subvista completa se coloca en el espacio que hubiera sido empleado para vista si en lugar de una marca <FRAMESET> se hubiese colocado una marca <FRAME>.
<FRAME>
Define las características de una vista concreta. Define una vista dentre de un conjunto de ellas. La marca <FRAME> no contiene nada, por lo que no tiene marca de cierre. Puede tener hasta seis atributos, que son los siguientes :
<NOFRAMES>
Permite incluir información para visores que no soportan múltiples vistas. Un visor que no soportara vistas no mostraría nada de un documento con cuerpo <FRAME>. Para solucionarlo existe el último elemento <NOFRAMES>, que se utiliza para incluir una página alternativa para estos visores. Un visor que sí soporte la marca <FRAME> ignorará todas las marcas y datos que se encuentre entre <NOFRAMES> y </NOFRAMES>.
Ejemplo de frames
<HTML>
<HEAD><TITLE>Ejemplo de frames o ventanas</TITLE></HEAD>
<FRAMESET ROWS="100, *, 100">
<NOFRAMES>
<BODY>
<P>Su visor no soporta vistas o frames. Seleccione <A HREF="indice.html">aquí</A> para ver un índice de contenidos.</P>
</BODY>
</NOFRAMES>
<FRAME SRC="menu.html">
<FRAMESET COLS="30%, 70%">
<FRAME NAME="Indice">
<FRAME NAME="Contenido">
</FRAMESET>
<FRAME SRC="Copyright.html">
</FRAMESET>
</HTML>