Esta versión se
corresponde a la del 25 de Septiembre de 1997
-----------------------------------------------------
Derechos de reproducción
reservados
Se puede
reproducir libremente este manual, tanto en forma impresa como
electrónica,
cuando se trate de un uso exclusivamente personal.
Para utilizar
este manual en un curso de enseñanza, se debe solicitar una
autorización
expresa de su autor, con el compromiso de no alterar su
contenido, muy
especialmente en lo referente a su autoría y procedencia,
así como el de
que en ningún caso se tratará de conseguir ninguna ganancia
económica
derivada de su reproducción, tanto en forma impresa como
electrónica.
---------------------------------------------------------------------
1. Una página básica
El principio
esencial del lenguaje HTML (HyperText Markup Language) es el uso de las
etiquetas
(tags). Funcionan de la siguiente manera:
<XXX> Este es el
inicio de una etiqueta.
</XXX> Este es el
cierre de una etiqueta.
Las letras de
la etiqueta pueden estar en mayúsculas o minúsculas, indiferentemente. Por
claridad, se
usarán en este manual sólamente las mayúsculas
Lo que haya
entre ambas etiquetas estará influenciada por ellas. Por ejemplo, todo el
documento
HTML debe estar
entre las etiquetas <HTML> y </HTML>:
<HTML> [Todo el documento] </HTML>
El documento en
sí está dividido en dos zonas principales:
El encabezamiento, comprendido entre las
etiquetas <HEAD> y </HEAD>
El cuerpo, comprendido entre las etiquetas
<BODY> y </BODY>
Dentro del encabezamiento
hay información del documento, que no se ve en la pantalla
principal,
principalmente el título del documento, comprendido entre las etiquetas
<TITLE> y
</TITLE>.
El título debe ser breve y descriptivo de su contenido, pues será lo que vean los
demás cuando
añadan nuestra página a su bookmark (o agenda de direcciones).
Dentro del
cuerpo está todo lo que queremos que aparezca en la pantalla principal (texto,
imágenes, etc.)
Por tanto, la
estructura queda de esta manera:
<HTML>
<HEAD>
<TITLE>
Título de la página </TITLE>
</HEAD>
<BODY>
[Aquí van las
etiquetas que visualizan la página]
</BODY>
</HTML>
Antes de crear
nuestra primera página, unas consideraciones sobre el texto: Cuando escribimos
en el documento
el texto que queremos que aparezca en la pantalla, veremos que éste se
acomoda a ella,
sin que tengamos que pulsar el retorno del carro. Si queremos separar el texto
en distintos
párrafos debemos usar la etiqueta <P>, (que no tiene su correspondiente
etiqueta de
cierre
</P>)
El texto puede
tener unas cabeceras, comprendidas entre las etiquetas <H1> y
</H1>, <H2> y
</H2>,
etc. (hasta el número 6), siendo el número indicativo del tamaño. El tamaño
mayor es el
correspondiente
al número 1. Puedes experimentar en el ejemplo que sigue, cambiando el
número para
comprobar el efecto que se logra.
Una etiqueta
muy interesante es la de centrado <CENTER> y </CENTER> (no la
soportan todos
los
navegadores, aunque sí la mayoría de ellos). Nos centra todo lo que esté dentro
de ella, ya
sea texto, imágenes,
etc.
También tenemos
los separadores (horizontal rules), que se consiguen con la etiqueta <HR>
(no existe la
correspondiente de cierre). Con ella se obtiene una raya horizontal tan ancha
como
la pantalla, y
con la apariencia de estar embutida sobre el fondo, como se puede observar a
continuación:
Ejemplo práctico
En el
procesador de texto copiamos lo siguiente:
<HTML>
<HEAD>
<TITLE> Mi pagina del
Web - 1 </TITLE>
</HEAD>
<BODY>
<H1> <CENTER> Primera pagina
</CENTER> </H1>
<HR>
Esta es mi primera pagina, aunque todavia
es muy sencilla. Como el
lenguaje HTML no es dificil, pronto estare
en condiciones de hacer
cosas mas interesantes.
<P> Aqui va un segundo parrafo.
</BODY>
</HTML>
(Repásese lo
dicho en la página de portada en Método de trabajo, acerca del procesador de
textos y cómo
cargar el documento en el navegador)
Las líneas en
blanco y las indentaciones del texto se han puesto para mayor claridad, pero no
son necesarias.
De hecho, podría estar todo en una sola línea. Lo importante es el orden
correcto de las
etiquetas. Por cierto, una etiqueta puede estar anidada dentro de otra. Véase
en
el ejemplo cómo
lo está la etiqueta <CENTER> dentro de la etiqueta <H1>. Es muy
importante, en
estos casos,
que las etiquetas de inicio y de cierre vayan en el orden correcto, pues de lo
contrario se
producirían errores.
Obsérvese
además la falta de los acentos. Se hablará más adelante sobre el motivo de
ello.
Guardamos el
fichero en el procesador de textos con el nombre de mipag1.html y lo cargamos
en el
navegador. Este será el resultado.
Habrá un
fichero distinto para cada capítulo; conviene crear un directorio específico e
irlos
guardando en
él, para poder repasar lo aprendido, aparte de que pueden ser necesarios para
ejecutar otros
ejemplos prácticos.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
-------------------------------------------------------------
INDICE
HTML BASICO
1
Una página
básica
2
Dando forma al
texto
3
Enlaces con
otras páginas
4
Imágenes
5
Caracteres
especiales
HTML
INTERMEDIO
6
Los estándares
del HTML
7
Fondos
8
Alineación y
dimensionado de
imágenes
9
Formato de las
imágenes
10
Tablas
11
Formularios
12
GIFs animados
13
Mapas
14
Frames
15
Sonidos
16
Texto en
movimiento
17
Publicación y
promoción de
una página
18
Contadores de
visitas
19
Componer con
estilo
TEMAS
AVANZADOS
20
Applets de Java
21
Trucos diversos
22
Canales de chat
en páginas Web
- - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1. Una página básica
El principio
esencial del lenguaje HTML (HyperText Markup Language) es el uso de las
etiquetas
(tags). Funcionan de la siguiente manera:
<XXX> Este es el
inicio de una etiqueta.
</XXX> Este es el cierre de una etiqueta.
Las letras de
la etiqueta pueden estar en mayúsculas o minúsculas, indiferentemente. Por
claridad, se
usarán en este manual sólamente las mayúsculas
Lo que haya
entre ambas etiquetas estará influenciada por ellas. Por ejemplo, todo el
documento
HTML debe estar
entre las etiquetas <HTML> y </HTML>:
<HTML> [Todo el
documento] </HTML>
El documento en
sí está dividido en dos zonas principales:
El encabezamiento, comprendido entre las
etiquetas <HEAD> y </HEAD>
El cuerpo, comprendido entre las etiquetas
<BODY> y </BODY>
Dentro del
encabezamiento hay información del documento, que no se ve en la pantalla
principal,
principalmente el título del documento, comprendido entre las etiquetas
<TITLE> y
</TITLE>.
El título debe ser breve y descriptivo de su contenido, pues será lo que vean
los
demás cuando
añadan nuestra página a su bookmark (o agenda de direcciones).
Dentro del
cuerpo está todo lo que queremos que aparezca en la pantalla principal (texto,
imágenes, etc.)
Por tanto, la
estructura queda de esta manera:
<HTML>
<HEAD>
<TITLE>
Título de la página </TITLE>
</HEAD>
<BODY>
[Aquí van las
etiquetas que visualizan la página]
</BODY>
</HTML>
Antes de crear
nuestra primera página, unas consideraciones sobre el texto: Cuando escribimos
en el documento
el texto que queremos que aparezca en la pantalla, veremos que éste se
acomoda a ella,
sin que tengamos que pulsar el retorno del carro. Si queremos separar el texto
en distintos
párrafos debemos usar la etiqueta <P>, (que no tiene su correspondiente
etiqueta de
cierre
</P>)
El texto puede
tener unas cabeceras, comprendidas entre las etiquetas <H1> y
</H1>, <H2> y
</H2>,
etc. (hasta el número 6), siendo el número indicativo del tamaño. El tamaño
mayor es el
correspondiente
al número 1. Puedes experimentar en el ejemplo que sigue, cambiando el
número para
comprobar el efecto que se logra.
Una etiqueta
muy interesante es la de centrado <CENTER> y </CENTER> (no la soportan
todos
los
navegadores, aunque sí la mayoría de ellos). Nos centra todo lo que esté dentro
de ella, ya
sea texto,
imágenes, etc.
También tenemos
los separadores (horizontal rules), que se consiguen con la etiqueta <HR>
(no existe la
correspondiente de cierre). Con ella se obtiene una raya horizontal tan ancha
como
la pantalla, y
con la apariencia de estar embutida sobre el fondo, como se puede observar a
continuación:
Ejemplo práctico
En el
procesador de texto copiamos lo siguiente:
<HTML>
<HEAD>
<TITLE> Mi pagina del
Web - 1 </TITLE>
</HEAD>
<BODY>
<H1> <CENTER> Primera pagina
</CENTER> </H1>
<HR>
Esta es mi primera pagina, aunque todavia
es muy sencilla. Como el
lenguaje HTML no es dificil, pronto estare
en condiciones de hacer
cosas mas interesantes.
<P> Aqui va un segundo parrafo.
</BODY>
</HTML>
(Repásese lo
dicho en la página de portada en Método de trabajo, acerca del procesador de
textos y cómo
cargar el documento en el navegador)
Las líneas en
blanco y las indentaciones del texto se han puesto para mayor claridad, pero no
son necesarias.
De hecho, podría estar todo en una sola línea. Lo importante es el orden
correcto de las
etiquetas. Por cierto, una etiqueta puede estar anidada dentro de otra. Véase
en
el ejemplo cómo
lo está la etiqueta <CENTER> dentro de la etiqueta <H1>. Es muy
importante, en
estos casos,
que las etiquetas de inicio y de cierre vayan en el orden correcto, pues de lo
contrario se
producirían errores.
Obsérvese
además la falta de los acentos. Se hablará más adelante sobre el motivo de
ello.
Guardamos el
fichero en el procesador de textos con el nombre de mipag1.html y lo cargamos
en el
navegador. Este será el resultado.
Habrá un
fichero distinto para cada capítulo; conviene crear un directorio específico e
irlos
guardando en
él, para poder repasar lo aprendido, aparte de que pueden ser necesarios para
ejecutar otros
ejemplos prácticos.
- - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2. Dando forma al texto
Como hemos
visto en el ejemplo del capítulo anterior, cuando queremos poner un texto sin
ninguna
caracterísca especial, lo ponemos directamente. Unicamente, la separación entre
párrafos
(dejando una línea en blanco) la conseguimos con la etiqueta <P>.
Si queremos
separar los párrafos, o cualquier otra cosa, pero sin dejar una línea en
blanco,
usamos una
etiqueta parecida <BR> (break, o romper). Tampoco tiene etiqueta de
cierre.
Si queremos
obtener múltiples líneas en blanco no basta con repetir la etiqueta <P>,
sino que
hay que
combinarla con la etiqueta <BR>. Así por ejemplo, si queremos obtener
cuatro líneas en
blanco,
pondríamos:
<BR><P>
<BR><P>
<BR><P>
<BR><P>
Con lo que se
obtiene:
Al escribir el
texto, si ponemos más de un espacio en blanco entre dos palabras observamos
que el
navegador sólo reconoce uno de ellos. Si queremos forzarle a que lo haga,
debemos
poner el código
" " (non-breaking space).
Para destacar
alguna parte del texto se pueden usar:
<B> y </B> para poner algo en
negrita (bold).
<I> y </I> para poner algo en
cursiva (italic).
Otra etiqueta
interesante es <PRE> y </PRE>. El texto que se encuentre entre ella
estará
preformateado,
es decir que aparecerá como si hubiera sido escrito con una máquina de
escribir, con
una fuente de espaciado fijo (tipo Courier). Además se respetarán los espacios
en
blanco y
retornos del carro, tal como estaban en nuestro documento HTML (lo cual no
ocurre
normalmente,
como hemos visto anteriormente). Es muy apropiada para confeccionar tablas y
otros
documentos similares.
Con la etiqueta
<TT> y </TT> conseguimos también que el texto tenga un tamaño menor
y la
apariencia de
los caracteres de una máquina de escribir (typewriter). La diferencia con la
anterior es que
no preformatea el texto, sino que únicamente cambia su apariencia.
La etiqueta <BLOCKQUOTE> y
</BLOCKQUOTE> se utiliza para destacar una cita textual
dentro del texto general. Este párrafo
está escrito entre ambas etiquetas. Obsérvese
los márgenes a ambos lados.
En las fórmulas
matemáticas puede interesar poder escribir índices y subíndices, que se
consiguen con
las etiquetas <SUP> </SUP> y <SUB> </SUB>
respectivamente. Así, por ejemplo:
m2 se consigue
de la siguiente manera: m<SUP>2</SUP>
vx se consigue
con: v<SUB>x</SUB>
A menudo nos
interesará presentar las cosas en forma de listas. Podemos escoger entre tres
tipos
distintos:
1.Listas desordenadas (no numeradas)
2.Listas ordenadas (numeradas)
3.Listas de definición.
Las listas
desordenadas (unordered lists) sirven para presentar cosas que, por no tener un
orden
determinado, no necesitan ir precedidas por un número. Su estructura es la
siguiente:
<UL>
<LI> Una
cosa
<LI> Otra
cosa
<LI> Otra
más
<LI> Etc.
</UL>
Es decir, toda
la lista está dentro de la etiqueta <UL> y </UL>, y luego cada cosa
va precedida
de la etiqueta
<LI> (list item). El resultado de lo anterior es el siguiente:
Una cosa
Otra cosa
Otra más
Etc.
Se puede anidar
una lista dentro de otra. Por ejemplo:
<UL>
<LI>
Mamíferos
<LI>
Peces
<UL>
<LI> Sardina
<LI> Bacalao
</UL>
<LI> Aves
</UL>
Que daría el
siguiente resultado:
Mamíferos
Peces
Sardina
Bacalao
Aves
Las listas
ordenadas (ordered lists) sirven para presentar cosas en un orden determinado.
Su
estructura es
muy similar a la anterior. La diferencia estriba en que en el resultado
aparecerá
automáticamente
un número correlativo para cada cosa.
<OL>
<LI>
Primera cosa
<LI>
Segunda cosa
<LI> Tercera
cosa
<LI> Etc.
</OL>
El resultado
es:
1.Primera cosa
2.Segunda cosa
3.Tercera cosa
4.Etc.
Al igual que
las listas desordenadas, también se pueden anidar las listas ordenadas.
El tercer tipo
lo forman las listas de definición. Como su nombre indica, son apropiadas para
glosarios (o
definiciones de términos). Toda la lista debe ir englobada entre las etiquetas
<DL>
y </DL>.
Y a diferencia de las dos que hemos visto, cada renglón de la lista tiene dos
partes: 1)
el nombre de la
cosa a definir , que se consigue con la etiqueta <DT> (definition term) y
2) la
definición de
dicha cosa, que se consigue con la etiqueta <DD> (definition definition).
<DL>
<DT> Una
cosa a definir
<DD> La
definición de esta cosa
<DT> Otra
cosa a definir
<DD> La
definición de esta otra cosa
</DL>
Su resultado
es:
Una cosa a
definir
La definición de esta cosa
Otra cosa a
definir
La definición de esta otra cosa
Comentarios no visibles en
la pantalla
A veces es muy
útil escribir comentarios en el documento HTML sobre el código que
escribimos, que
nos pueden servir para recordar posteriormente sobre lo que hicimos, y que no
queremos que se
vean en pantalla.
Esto se
consigue encerrando dichos comentarios entre estos dos símbolos: <!-- y
-->
Ejemplo:
<!-- Esto es
un comentario al código que no se verá en pantalla -->
Ejemplo práctico
En el
procesador de textos copiamos:
<HTML>
<HEAD>
<TITLE> Mi pagina del Web - 2 </TITLE>
</HEAD>
<BODY>
<CENTER>
<H1> Mis
aficiones </H1>
</CENTER>
<HR>
Sin un orden
particular, mis <B> aficiones </B> son las siguientes:
<UL>
<LI> El
cine
<LI> El
deporte
<UL>
<LI>
Natacion
<LI>
Baloncesto
</UL>
<LI> La
musica
</UL>
La musica que
mas me gusta es <I> (en orden de preferencia):
</I>
<OL>
<LI> El
rock
<LI> El
jazz
<LI> La
musica clasica
</OL>
</BODY>
</HTML>
Guardamos el
fichero de texto con el nombre mipag2.html y lo cargamos en el navegador.
Este es el
resultado.
- - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3. Enlaces con otras
páginas
La
característica que más ha influido en el espectacular éxito del Web (o tela de
araña) ha
sido, aparte la
de su carácter multimedia, la posibilidad de unir los distintos documentos
repartidos por
todo el mundo por medio de enlaces hipertexto.
Estructura de los
enlaces
En general, los
enlaces tienen la siguiente estructura:
<A HREF="xxx"> yyy </A>
donde xxx es el
destino del enlace (Obsérvese las comillas).
yyy es el texto
indicativo en la pantalla del enlace (con un color especial y generalmente
subrayado)
Tipos de enlaces
Vamos a
distinguir cuatro tipos de enlaces:
1.Enlaces dentro de la misma página
2.Enlaces con otra página nuestra
3.Enlaces con una página fuera de nuestro
sistema
4.Enlaces con una dirección de email
1. Enlaces dentro de la
misma página
A veces, en el
caso de documentos (o páginas) muy extensos, nos puede interesar dar un salto
desde una
posición a otra determinada.
En este caso,
lo que antes hemos llamado XXX, es decir, el destino del enlace, en este caso
el
sitio dentro de
la página a donde queremos saltar, se sustituye por #marca (la palabra marca
puede ser
cualquier palabra que queramos). Lo que hemos llamado antes YYY es la palabra
(o
palabras) que
aparecerán en la pantalla en color (en forma de hipertexto). Su estructura es,
entonces:
<A
HREF="#marca"> YYY </A>
Y en el sitio
exacto a donde queremos saltar, debemos poner la siguiente etiqueta:
<A NAME="marca">
</A>
Por ejemplo, si
quiero saltar desde aquí a la pantalla final, pongo la siguiente etiqueta:
<A
HREF="#final"> Pulsa para ir al final</A>
Que resulta
como: Pulsa para ir al final (Puedes comprobar cómo salta a la pantalla final)
Y en el final
del documento he puesto esta otra etiqueta:
<A NAME="final"> </A>
2. Enlaces con
otra página nuestra
Puede ser que
tengamos una sola página. Pero lo más frecuente es que tengamos varias páginas,
una inicial (o
principal) y otras conectadas a ella, e incluso entre ellas mismas.
Supongamos que
queremos enlazar con la página creada en el ejemplo del capítulo anterior, que
la hemos
llamado mipag2.html. En este caso, simplemente sustituimos lo que hemos llamado
XXX (el destino
del enlace) por el nombre del fichero:
<A
HREF="mipag2.html"> Ejemplo del capítulo 2 </A>
Que resulta
como: Ejemplo del capítulo 2 (Puedes comprobar cómo carga esa página)
Si queremos que
vaya a un sitio concreto de otra página nuestra en vez de ir al principio de la
página, adonde
va por defecto, en ese sitio tenemos que colocar una marca (véase la sección
anterior), y
completar el enlace con la referencia a esa marca.
Lo veremos con
el siguiente ejemplo: Quiero poner un enlace desde aquí al capítulo 4, pero a
un sitio
concreto, donde he puesto la marca <A
NAME="alinear"></A>. Entonces la etiqueta
tiene que ser:
<A HREF="cap4.html#alinear"> Capitulo 4 </A> Que resulta:
Capitulo 4
(Obsérvese cómo
al pulsar el enlace salta al capítulo 4, pero no al comienzo, sino a donde yo
quiero que lo
haga)
Una observación
importante: Estoy suponiendo que la página en la que estoy escribiendo esta
etiqueta y la
otra página a la que quiero saltar están en el mismo directorio. Porque pudiera
ocurrir que he
organizado mi sitio del Web con un directorio principal, y otros subdirectorios
auxiliares. Si
la página a la que quiero saltar está, p. ej. en el subdirectorio subdir,
entonces en
la etiqueta tendría
que haber puesto "subdir/mipag2.html".
Y a la inversa,
si quiero saltar desde una página a otra que está en un directorio anterior, en
la
etiqueta
tendría que haber puesto "../mipag2.html". Esos dos puntos hace que
se dirija al
directorio
anterior. Obsérvese que se debe utilizar el símbolo / para indicar los
subdirectorios,
y no este otro
\, que es propio únicamente de Windows.
Si nos queremos
evitar todas estas complicaciones, podemos tener todo junto en un único
directorio,
pero esto tiene el inconveniente de que esté todo más desordenado, y sean más
difíciles de
hacer las futuras modificaciones.
3. Enlaces con una página
fuera de nuestro sistema
Si queremos
enlazar con una página que esté fuera de nuestro sistema (es decir, que esté en
un
servidor
distinto al que soporta nuestra página), es necesario conocer su dirección
completa, o
URL (Uniform Resource Locator). El URL podría ser, además
de la dirección de una página
del Web, una
dirección de ftp, gopher, etc.
Una vez conocida
la dirección (o URL), lo colocamos en vez de lo que hemos llamado
anteriormente
xxx (el destino del enlace). Si queremos enlazar con la página de Netscape
(cuyo
URL es:
http://home.netscape.com/), la etiqueta sería:
<A HREF="http://home.netscape.com/">
Página inicial de Netscape </A>
Que daría como
resultado: Página inicial de Netscape
Es muy
importante copiar estas direcciones correctamente (respetando las mayúsculas y
minúsculas,
pues los servidores UNIX sí las distinguen)
4. Enlaces con una dirección de email
En este caso,
sustituimos lo que se ha llamado antes xxx (el destino del enlace) por mailto:
seguido de la
dirección de email. La estructura de la etiqueta es:
<A HREF="mailto: dirección de
email"> Texto del enlace </A>
Un ejemplo de
esto está al final de la página principal de este manual. Podría haber puesto:
Comentarios a
<A HREF="mailto: [email protected]">Francisco
Arocena</A>
Que resultaría:
Comentarios a
Francisco Arocena
Pero hay algunos
navegadores que no reconocen este tipo de enlace, y lo verían de esta manera:
Comentarios a
Francisco Arocena
y no tendrían
ningún medio de conocer la dirección de email. Por lo tanto, es más seguro
poner
algo así como:
Comentarios a Francisco Arocena en <A HREF="mailto:
[email protected]">
[email protected] </A> Que resulta:
Comentarios a
Francisco Arocena en [email protected]
Es decir, es
conveniente, por la razón dicha anteriormente, poner también en el texto del
enlace
la dirección de
email.
Ejemplo práctico
En el
procesador de textos copiamos:
<HTML>
<HEAD>
<TITLE> Mi pagina del Web - 3 </TITLE>
</HEAD>
<BODY>
<CENTER>
<H1> Mis
paginas favoritas </H1>
</CENTER>
<HR>
Estas son mis
paginas favoritas:
<P><A HREF="http://home.netscape.com"> Netscape
</A>
<BR> <A HREF="http://www.microsoft.com"> Microsoft
</A>
<BR> <A HREF="http://www.yahoo.com"> Yahoo!
</A>
</BODY>
</HTML>
Guardamos el
fichero de texto con el nombre mipag3.html y lo cargamos en el navegador.
Este es el
resultado.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
----------------------------------------------
4. Imágenes
La etiqueta que
nos sirve para incluir imágenes en nuestras páginas del Web es muy similar a la
de enlaces a
otras páginas, que hemos visto en el capítulo anterior. La única diferencia es
que,
en lugar de
indicar al programa navegador el nombre y la localización de un documento de
texto
HTML para que
lo cargue, se le indica el nombre y la localización de un fichero que contiene
una imagen.
La estructura
de la etiqueta es:
<IMG SRC="imagen.gif">
Con el comando
IMG SRC (image source, fuente de la imagen) se indica que se quiere cargar
una imagen
llamada imagen.gif (o el nombre que tenga).
Dentro de la
etiqueta se pueden añadir otros comandos, tal como ALT
<IMG
SRC="imagen.gif" ALT="descripción">
Con el comando
ALT se introduce una descripción (una palabra o una frase breve) indicativa de
la imagen. Este
comando, que en principio se puede omitir, es en beneficio de los que accedan a
nuestra página
con un programa navegador en forma de texto sólo. Ya que no son capaces de
ver la imagen,
por lo menos pueden hacerse una idea sobre ella. Pero no es sólo por esto. Hay
casos, como
veremos más adelante, en los que se utiliza una imagen como enlace a otra
página.
Si se omitiera
este comando, los que utilizan dichos navegadores no podrían de ninguna manera
acceder a esas
páginas.
Con respecto a
la localización del fichero de esa imagen, se puede decir aquí lo mismo que en
el capítulo
anterior referente a los enlaces. Si no se indica nada especial, como en el
caso que
se ha expuesto,
quiere decir que el fichero imagen.gif está en el mismo directorio que el
documento HTML
que estamos escribiendo. Si no es así, se siguen los mismos criterios que los
indicados para
los enlaces.
Al igual que
una página con la que queremos enlazar puede estar fuera de nuestro sistema,
(en
cuyo caso había
que indicar su URL o dirección completa), podemos cargar una imagen que no
esté en nuestro
sistema siguiendo el mismo método, es decir, indicar en la etiqueta el URL
completo de la
imagen. Aunque esto no es muy aconsejable, pues alargaría innecesariamente el
tiempo de carga
de nuestra página.
Las imágenes
deben estar guardadas en un formato de fichero especial llamado GIF. (Hay
también otro
formato más avanzado, del que se hablará más adelante). Este formato GIF
almacena las
imágenes con un máximo de 256 colores, en forma comprimida. Hay programas
gráficos (como
el Paint Shop Pro para el PC, o el Graphic Converter para el Mac) que nos
permiten
guardar las imágenes en este formato, además de cumplir otras muchas tareas de
manipulación de
las mismas.
Un aspecto muy
importante a tener en cuenta es el tamaño de las imágenes, pues una imagen
grande supone
un fichero grande, y esto puede resultar en un tiempo excesivo de carga, con el
consiguiente
riesgo de que quien esté intentando cargar nuestra página se canse de esperar,
y
desista de
ello.
Para elegir la
posición de la imagen con respecto al texto hay distintas posibilidades. La más
sencilla es
colocarla entre dos párrafos, con un titular a un lado. Los navegadores más
actuales
(como el
Netscape Navigator y el Microsoft Internet Explorer) permiten que el texto
pueda
rodear a la
imagen (como se verá más adelante, en el Capítulo 8).
De momento nos
vamos a limitar a escoger la posición del titular con respecto a la imagen (si
es que queremos
ponerle un titular, claro está). Se puede poner arriba, en medio o abajo del
lado de la
imagen. Para ello se añade el comando ALIGN a la etiqueta, de la siguiente
manera:
<IMG
SRC="isla.gif" ALIGN=TOP> Titular alineado arriba
Titular alineado arriba
<IMG
SRC="isla.gif" ALIGN=MIDDLE> Titular alineado en medio
Titular alineado en medio
<IMG
SRC="isla.gif" ALIGN=BOTTOM> Titular alineado abajo
Titular alineado abajo
Véanse las
extensiones de Netscape de esta etiqueta en el Capítulo 8
Otra
posibilidad muy interesante es la de utilizar una imagen como enlace a otra
página. Para
estos casos se
utilizan generalmente imágenes pequeñas (iconos), aunque se puede usar
cualquier tipo
de imagen.
Según vimos en
el capítulo anterior, la estructura general de un enlace es:
<A HREF="xxx"> yyy </A>
donde xxx era
el destino del enlace e yyy el texto del enlace (o más generalmente hablando,
lo
que aparece en
la pantalla como el enlace; en el capítulo anterior era un texto, y en éste va
a ser
una imagen). En
este caso sustituimos xxx por el nombre del fichero de la página a la que
queremos
acceder. Y en lugar de yyy ponemos la etiqueta completa de la imagen (que queda
así englobada
dentro de la etiqueta del enlace)
Como ejemplo
vamos a utilizar la imagen (hombre.gif)
para acceder al ejemplo práctico
del capítulo 2
(mipag2.html):
<A
HREF="mipag2.html"><IMG SRC="hombre.gif"></A>
que da como
resultado:
Pulsando la
imagen comprobamos cómo efectivamente enlaza con la página deseada. Obsérvese
además que la
imagen está rodeada de un rectágulo del color normal en los enlaces. Si no se
desea que
aparezca ese rectángulo, hay que incluir dentro de la etiqueta de la imagen el
atributo
BORDER=0, es
decir:
<A
HREF="mipag2.html"><IMG SRC="hombre.gif"
BORDER=0></A>
que da como
resultado:
Posicionando el
cursor sobre esta última imagen, comprobamos que actúa también como enlace
aunque carezca
del rectángulo de color. Esto puede resultar más estético, pero se corre el
riesgo de que
el usuario no se dé cuenta de que la imagen sirve de enlace.
También podemos
utilizar una imagen para enlazar con otra imagen. En este caso sustituimos
xxx (el destino
del enlace) con el nombre del fichero de la imagen a la que queremos acceder e
yyy (lo que
aparece en pantalla como el enlace) por la etiqueta completa de la imagen que
queremos que
aparezca en la pantalla como el enlace de la otra.
Supongamos que
queremos enlazar con la imagen isla.gif por medio de esta otra imagen:
(casa.gif):
<A
HREF="isla.gif"><IMG SRC="casa.gif"></A>
Que da como
resultado:
Por último,
otra posibilidad es la de utilizar un texto para enlazar con una imagen. En
este
caso
sustituimos xxx (el destino del enlace) con el nombre del fichero de la imagen
a la que
queremos
acceder e yyy (lo que aparece en pantalla como el enlace) por el texto.
Supongamos que
queremos enlazar con la imagen isla.gif por medio del texto "un paraíso
tropical":
<A
HREF="isla.gif"> un paraíso tropical </A>
Que da como
resultado: un paraíso tropical
Se pueden
capturar las imágenes que aparecen en pantalla, con objeto de guardarlas
permanentemente
en nuestro disco duro. En los navegadores más actuales se hace pulsando
sobre la imagen
con la tecla derecha del ratón, con lo que se obtiene un menú en el que está la
posibilidad de
guardar la imagen.
Un tipo de
imágenes del que se hace abundante uso y que sirven para mejorar la
presentación de
la página son
los iconos, botones, barras separadoras, etc. A pesar de su tamaño o forma, son
imágenes como
cualquier otra.
Por ejemplo,
vamos a capturar en la Página Principal el botón dorado que está junto al
nombre
de cada
capítulo. Colocamos el puntero del ratón justo en el botón, y pulsamos la tecla
derecha.
Si nuestro
navegador implementa esta característica, aparece un menú en el que está la
posibilidad de
guardar esta imagen (bgold.gif). Lo hacemos, en el mismo directorio en el que
va
a estar nuestro
documento. Para utilizarlo en el comienzo de una línea, escribiríamos en el
sitio
correspondiente:
<IMG
SRC="bgold.gif> Esta linea esta precedida por un boton dorado.
Que resulta:
Esta linea esta precedida por un boton
dorado.
Podemos hacer
lo mismo con la barra separadora que está en todas las páginas de este manual
(bargold.gif).
La capturamos, la guardamos y escribimos:
<CENTER> <IMG SRC="bargold.gif>
<BR>Esta
linea esta debajo de una barra separadora dorada.
</CENTER>
Que resulta:
Esta linea esta debajo de una
barra separadora dorada.
Para ampliar el
tema de este capítulo, ver:
Capítulo 8:
Alineación y dimensionado de imágenes
Capítulo 9:
Formato de las imágenes
Ejemplo práctico
Primeramente es
necesario capturar las tres imágenes que se han utilizado en este capítulo:
isla.gif,
hombre.gif y casa.gif y guardarlas en el mismo directorio en el que se
guardará el
fichero de texto que se va a crear a continuación, junto con los de los
capítulos
anteriores.
En el
procesador de textos copiamos:
<HTML>
<HEAD>
<TITLE> Mi pagina del Web - 4 </TITLE>
</HEAD>
<BODY>
<CENTER>
<H1> Mi
pagina del Web </H1>
</CENTER>
<HR>
Esta es mi
pagina del Web. No es muy extensa, pero tiene todos los
elementos
basicos. Espero que os guste. Poco a poco le ire anadiendo
mas cosas
interesantes.
<P> <A
HREF="mipag2.html"> <IMG SRC="hombre.gif">
</A> Mis aficiones
<P> <A
HREF="mipag3.html"> <IMG SRC="casa.gif">
</A> Mis paginas favoritas
<CENTER>
<H3> Un
lugar ideal para mis vacaciones </H3>
<IMG SRC="isla.gif" ALT="isla">
</CENTER>
</BODY>
</HTML>
Guardamos el
fichero de texto con el nombre mipag4.html y lo cargamos en el navegador.
Este es el
resultado.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
------------------------------------------------------
5. Caracteres
especiales
Existen algunas
limitaciones para escribir el texto. Una de ellas es debido a que las etiquetas
se
forman como un
comando escrito entre los símbolos "<" y ">". Por
tanto, si se quisieran
escribir estos
caracteres como parte normal del texto, daría esto lugar a una ambigüedad, ya
que
el programa
navegador podría interpretarlos como el comienzo o final de una etiqueta, en
vez
de un carácter
más del texto.
Para resolver
este problema, existen unos códigos para poder escribir estos caracteres y otros
relacionados
con las etiquetas.
< para
< (less than, menor que)
> para
> (greater than, mayor que)
& para
& (ampersand)
" para "
(double quotation)
Como se ve,
estos códigos empiezan siempre con el signo & y acaban siempre con ;
De una manera
similar, existen códigos para escribir letras específicas de distintos idiomas.
Hay muchos de
ellos, pero, lógicamente, los que más nos interesan son los propios del
castellano (las
vocales acentuadas, la ñ y los signos ¿ y ¡ )
Los códigos de
las vocales acentuadas se forman comenzando con &, seguido de la vocal en
cuestión,
seguido de la palabra acute (aguda) y terminando con el signo ;
á
para la á
é
para la é
í
para la í
ó
para la ó
ú
para la ú
Á
para la Á
É
para la É
Í
para la Í
Ó
para la Ó
Ú
para la Ú
El resto de los
códigos son:
ñ
para la ñ
Ñ
para la Ñ
ü para
la ü
Ü para
la Ü
¿ para
¿
¡ para
¡
Todo esto, que
como se ve es muy laborioso, puede parecer inútil ya que si escribimos nuestro
texto sin hacer
ningún caso de estas convenciones, escribiendo las letras acentuadas y demás
signos
directamente, es muy posible que el resultado lo veamos correctamente en
nuestro
navegador, pero
nunca podremos estar seguros que les ocurra lo mismo a todos los que accedan
a nuestras
páginas con otros navegadores distintos.
En la práctica,
el problema no es tan grave, pues los programas editores de HTML suelen tener
la posibilidad
de escribir los códigos automáticamente (como es el caso del utilizado para
confeccionar
este manual, HotDog Pro)
Incluso si se
escribe en un procesador de textos de forma manual, se puede escribir el texto
en
una primera
etapa de forma normal y luego aplicarle algún de los programas que hacen la
conversión
adecuada.
Ejemplo práctico
Como ejercicio
de este capítulo vamos a sustituir en el ejemplo práctico del capítulo
anterior
(mipag4.html) las vocales acentuadas por sus correspondientes códigos.
Quedará de esta
manera:
<HTML>
<HEAD>
<TITLE> Mi página del Web - 4 </TITLE>
</HEAD>
<BODY>
<CENTER>
<H1> Mi
página del Web </H1>
</CENTER>
<HR>
Esta es mi
página del Web. No es muy extensa, pero tiene todos los
elementos
básicos. Espero que os guste. Poco a poco le iré
añadiendo
más cosas interesantes.
<P> <A
HREF="mipag2.html"> <IMG SRC="hombre.gif">
</A> Mis aficiones
<P> <A
HREF="mipag3.html"> <IMG SRC="casa.gif">
</A> Mis páginas
favoritas
<CENTER>
<H3> Un
lugar ideal para mis vacaciones </H3>
<IMG SRC="isla.gif" ALT="isla">
</CENTER>
</BODY>
</HTML>
Guardamos el
fichero de texto con el nombre mipag5.html y lo cargamos en el navegador.
Este es el resultado.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
----------------------------------------------------
6. Los estándares del HTML
Hasta hace
poco, la última versión oficial del HTML era la HTML 2.0. Cumplía su función
perfectamente,
pero muchos usuarios del HTML querían tener un control mayor sobre sus
documentos,
tanto en el formateo del texto como en la apariencia de la página.
HTML 3.0
Mientras tanto,
Netscape, que era en esa época el líder indiscutible de los navegadores,
introducía con
cada nueva versión etiquetas y atributos no contemplados en el estándar
oficial,
con gran
escándalo de algunos.
Debido a su
amplia difusión y aceptación, otros navegadores intentaban copiar esas
innovaciones,
pero debido a que Netscape no especificaba completamente sus nuevas etiquetas,
los resultados
no eran siempre los deseados. Todo ello provocaba una gran confusión, y
numerosos
problemas, cuando los autores utilizaban estos elementos y comprobaban que no
funcionaba como
querían en otros navegadores.
Por esa época,
el comité de trabajo del HTML de la IETF, propuso un borrador de un nuevo
estándar, el
HTML 3.0 que incluía numerosas y útiles mejoras. Pero debido a que era
excesivamente
extenso y ambicioso, los navegadores sólo utilizaban una pequeña parte del
nuevo estándar,
lo que producía aún mayor confusión y por lo que acabó finalmente siendo
abandonado.
HTML 3.2
Cada vez era
más evidente la necesidad de un nuevo estándar que fuera aceptado por todos. Se
formó otro
comité, el W3C, apoyado por los principales vendedores de software (entre
ellos,
IBM, Microsoft, Novell, Netscape, Sun, etc.). El nuevo estándar ha sido
desarrollado durante
todo el año
1996 por el W3C con el sobrenombre de Wilbur, y finalmente, en Enero de 1997 ha
sido aprobado
como el HTML 3.2
El HTML 3.2 es
totalmente compatible con el estándar anterior, pero incorpora muchas de las
innovaciones de
los navegadores comerciales (Netscape y Explorer principalmente), tales
como tablas,
applets, texto que bordea las imágenes, etc., aunque no todas, como por ejemplo
los frames.
Se puede
consultar la documentación oficial del HTML 3.2 en Introducing HTML 3.2, pero
es
más manejable y
práctica la presentada en Wilbur - HTML 3.2, donde se pueden ver con detalle
las distintas
etiquetas, e incluso obtener una versión off-line del nuevo estándar.
Primer borrador público del
HTML 4.0
En Julio de
1997 se ha presentado el primer borrador público del próximo estándar oficial
HTML 4.0 (que
tiene el nombre clave de Cougar). En él se incorporan las especificaciones
sobre tablas,
frames, scripts, hojas de estilo, accesibilidad por distintos medios, e
internacionalización
(incluyendo el uso de Unicode, en lugar del Latin-1).
Este estándar
propuesto representa un gran avance con respecto a los anteriores. Existe un
comunicado de
prensa de la W3C. El borrador, que es muy extenso, se puede consultar en esta
dirección.
Los estándares y este
manual
En los
capítulos anteriores a éste (HTML esencial) se han explicado, en líneas
generales, las
etiquetas que
cumplían con la anterior norma HTML 2.0. En los capítulos que siguen se hablará
de las etiquetas
incorporadas al nuevo estándar, más algunas otras que no lo están, pero que son
implementadas
por los navegadores más importantes (Netscape y Explorer).
Ejemplo de etiqueta no
estándar: el parpadeo
Sólo es
implementada por Netscape y causó en su día un gran escándalo:
<BLINK> ESTE TEXTO
PARPADEA </BLINK>
Que resulta:
ESTE TEXTO PARPADEA
Debe usarse
prudentemente, para cosas realmente urgentes.
(No es
implementada por el Explorer)
Separador
horizontal
Un ejemplo de
ampliación de una etiqueta que ha sido recogida en el nuevo estándar HTML 3.2
es la del
separador <HR> , con las que se puede modificar su apariencia y
posicionamiento:
<HR WIDTH=75%>
Ocupa el 75% de
su anchura (width) normal.
<HR
WIDTH=300>
Tiene una
anchura de 300 pixels.
Se puede
alinear a la izquierda:
<HR WIDTH=50% ALIGN=LEFT>
O a la derecha:
<HR WIDTH=35% ALIGN=RIGHT>
Se puede variar
su espesor:
<HR
SIZE=20>
También se
puede hacer que sea una línea sólida, no embutida sobre el fondo:
<HR NOSHADE>
Tamaño de las
fuentes
En el nuevo
estándar HTML 3.2 se admite el atributo SIZE para cambiar el tamaño de las
fuentes:
<FONT SIZE=5> Texto
en tamaño 5 </FONT>
Texto en tamaño 5
<FONT SIZE=6> Texto
en tamaño 6 </FONT>
Texto en tamaño 6
Los tamaños del
texto van, de menor a mayor, del 1 al 7. El tamaño normal (o tamaño base) es
el 3. Se puede
también cambiar relativamente con respecto a este tamaño normal.
<FONT SIZE=-1> Texto
algo menor </FONT>
Texto algo
menor
<FONT SIZE=+1> Texto
algo mayor </FONT>
Texto algo mayor
<FONT SIZE=+2> Texto aún mayor </FONT>
Texto aún mayor
Se puede
cambiar incluso el tamaño base para toda la página, poniendo al comienzo del
documento (a
continuación de la etiqueta <BODY>) esta etiqueta que cambiaría el tamaño
base
de 3 a 5:
<BASEFONT SIZE=5>
Tipos de las
fuentes
Hay otro
atributo para cambiar el tipo de fuentes empleada. No está recogido en el
estándar
HTML 3.2, pero
sí es implementado por las últimas versiones del Netscape y del Explorer.
Los navegadores
utilizan por defecto un tipo de fuentes, generalmente Times New Roman, y
que el usuario
puede cambiar por otro tipo en la configuración de su navegador. Si así lo
hace,
todas las páginas
que cargue tendrán el texto escrito en esa nueva fuente escogida.
Pero al
confeccionar una página del Web, su autor puede forzar a que el texto adopte un
determinado
tipo de fuentes, distinto del que tiene configurado el usuario. Pero, para que
esto
ocurra, el
usuario debe tener instalado en su disco duro ese tipo de fuentes (y además con
el
mismo nombre).
Si no lo tiene instalado, entonces verá el texto con la fuente por defecto de
su
navegador.
Esto se
consigue con el atributo FACE="Nombre de la fuente". Por ejemplo,
para forzar a
que el texto
adopte la fuente Verdana, pondríamos:
<FONT
FACE="Verdana">Este texto se verá con la fuente
Verdana</FONT>
Que resulta:
Este texto se
verá con la fuente Verdana
(quien no tenga
instalada esta fuente, no notará nada de particular)
Se pueden
indicar en el atributo varias fuentes distintas, separadas por una coma. Si
falla la
primera,
entonces el texto adopta la forma de la segunda, y así sucesivamente. Si fallan
todas, el
texto adopta
entonces la fuente por defecto. Así, por ejemplo:
<FONT
FACE="Impact, Arial">Este texto se verá con la fuente Impact, o en
su
defecto con
Arial</FONT>
Que resulta:
Este texto se
verá con la fuente Impact, o en su defecto con Arial
(quien no tenga
instaladas ninguna de las dos fuentes, tampoco notará nada de particular)
Por lo dicho
anteriormente, es decir, que este atributo no es estándar y que depende además
de
las fuentes
instaladas en el ordenador del usuario, no es conveniente basar el diseño de
una
página exclusivamente
en un tipo de fuente. Hay que tener en cuenta que el tamaño de las letras
varía mucho de
una fuente a otra (véase los ejemplos empleados de fuentes Verdana e Impact).
Véase en el
Capítulo 7 sobre el color en las fuentes.
Ejemplo práctico
Vamos a
aumentar el tamaño de la fuente de las frases "Mis aficiones" y
"Mis páginas
favoritas"
del ejemplo práctico del capítulo anterior (mipag5.html). Para ello, cargamos
este
fichero y
englobamos dichas frases dentro de la etiqueta:
<FONT SIZE=+3> y </FONT>
Guardamos este
fichero con el nombre mipag6.html y lo cargamos en el navegador para
visualizarlo.
Resultado
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
--------------------------------------------------
7. Fondos
Se puede
cambiar el fondo de dos maneras distintas:
1.Con un color uniforme
2.Con una imagen
Fondos con un color
uniforme
Se consigue
añadiendo el comando BGCOLOR a la etiqueta <BODY> (situada al principio
del
documento), de
la siguiente manera:
<BODY BGCOLOR="#XXYYZZ">
donde:
XX es un número indicativo de la cantidad
de color rojo
YY es un número indicativo de la cantidad
de color verde
ZZ es un número indicativo de la cantidad
de color azul
Estos números
están en numeración hexadecimal. Esta numeración se caracteriza por tener 16
dígitos (en
lugar de los diez de la numeración decimal habitual). Estos dígito son:
0 1 2 3 4 5 6 7 8 9
A B C D E F
Es decir, que
en nuestro caso, el número menor es el 00 y el mayor el FF. Así, por ejemplo,
el
color rojo es
el #FF0000, porque tiene el máximo de rojo y cero de los otro dos colores .
Los colores
primarios son:
#FF0000 - Rojo
#00FF00 - Verde
#0000FF - Azul
Otros colores
son:
#FFFFFF - Blanco
#000000 - Negro
#FFFF00 - Amarillo
Para hacer un
color más oscuro, hay que reducir el número de su componente, dejando los otros
dos
invariables. Así, el rojo #FF0000 se puede hacer más oscuro con #AA0000, o aún
más
oscuro con
#550000.
Para hacer que
un color tenga un tono más suave (más pastel), se deben variar los otros dos
colores haciéndolos
más claros (número más alto), en una cantidad igual. Así, podemos
convertir el
rojo en rosa con #FF7070.
Podemos hacer
nuestros propios experimentos, pero si desea, existen páginas del Web en las
que se pueden
elegir los colores directamente, como por ejemplo en:
Background
Colors
Colores del texto y de
los enlaces
Si no se
variasen los colores habituales del texto y de los enlaces (negro y azul,
respectivamente),
podría ocurrir que su lectura contra un fondo oscuro fuese muy dificultosa, o
incluso
imposible, si el fondo fuese precisamente negro o azul.
Para evitar
esto, se pueden escoger los colores del texto y de los enlaces, añadiendo a la
etiqueta (si se
desea) los siguientes comandos:
TEXT - color del texto
LINK - color de los enlaces
VLINK - color de los enlaces visitados
ALINK - color de los enlaces activos (el
que adquieren en el momento de ser
pulsados)
Los códigos de
los colores son los mismos que los que se han visto anteriormente.
La etiqueta,
con todas sus posibilidades, sería:
< BODY BGCOLOR="#XXYYZZ"
TEXT="#XXYYZZ" LINK="#XXYYZZ" VLINK="#XXYYZZ"
ALINK="#XXYYZZ">
Ejemplo.
Cambio del color de una
parte del texto
El comando TEXT
explicado anteriormente (que va englobado dentro de la etiqueta <BODY>)
cambia el color
de la totalidad del texto de la página.
Tanto el
Netscape Navigator 2, como el Microsoft Explorer soportan una etiqueta de color
de la
fuente con la
que se puede cambiar sólo una parte del texto:
<FONT
COLOR="#FF0000"> Este texto es de color rojo </FONT>
Que resulta:
Este texto es de
color rojo
Fondos con una
imagen
El fondo de una
página puede ser también una imagen, ya sea en formato GIF o JPEG. Esta
imagen se
repite por toda la página, de una manera análoga al tapiz de Windows. La
estructura
de la etiqueta
es:
<BODY BACKGROUND="imagen.gif">
o bien:
<BODY
BACKGROUND="imagen.jpg">
No todos los
navegadores soportan este formato
Se pueden
añadir también a esta etiqueta todos los comandos para cambiar los colores del
texto
y de los
enlaces, vistos anteriormente. Esto es imprescindible a veces para conseguir
que el
texto sea
legible, en contraste con el fondo.
Dos ejemplos de
fondos (Púlsalos para ver su efecto)
brickz.gif
nubes.jpg
Hay que prever
la posibilidad de que quien acceda a nuestra página haya deshabilitado la
carga
automática de imágenes, en cuyo caso tampoco cargaría la imagen que sirve como
fondo y sólo
vería el fondo estándar de color gris. Esto podría ser muy perjudicial si hemos
escogido unos
colores para el texto y los enlaces que no contrastan bien con ese fondo gris.
La
solución a este
problema es poner dentro de la etiqueta <BODY> los dos comandos
BACKGROUND
y BGCOLOR (en
este orden), teniendo cuidadado en escoger un color uniforme de fondo parecido
al de la
imagen.
Por ejemplo,
supongamos que queremos poner como fondo la imagen nubes.jpg. Escogemos
entonces un
color de fondo azul claro, (p. ej. #CCFFFF). La etiqueta quedaría así:
<BODY
BACKGROUND="nubes.jpg" BGCOLOR="#CCFFFF">
Esto tiene la
ventaja adicional de que, incluso aunque no se deshabilite la carga automática
de
imágenes, al
cargar la página, lo primero que se ve es ese fondo de color uniforme, que
luego es
reemplazado por
el de la imagen.
¿Cómo conseguir un fondo para
nuestra página?
Teóricamente,
cualquier imagen puede servir como fondo, pero unas son más apropiadas que
otras. Además,
podemos querer crear un fondo nosotros mismos, o capturarlo de otras páginas.
En esta otra
página se trata sobre todos estos temas.
En WebStore encontrarás una coleción de
fondos, preparados para ser capturados.
Elementos para
páginas del Web
Ejemplo práctico
Vamos a poner
como fondo la imagen nubes.jpg, junto con un fondo alternativo de color azul
claro y hacer
que el texto sea de color rojo oscuro, en el ejemplo práctico del capítulo 6
(mipag6.html).
Para ello es necesario antes capturar la imagen y guardarla en el mismo
directorio en
donde vamos a guardar el fichero que vamos a crear.
(Si nuestro
navegador no soporta el formato jpg, lo hacemos con el otro fondo, brickz.gif)
Cargamos en el
editor de textos mipag6.html y sustituimos la etiqueta <BODY> por esta
otra:
<BODY
BACKGROUND="nubes.jpg" BGCOLOR="#CCFFFF"
TEXT="#AA0000">
Guardamos este
fichero como mipag7.html y lo cargamos en el navegador para visualizarlo.
Este es el
resultado
WebMaestro: http://www.lander.es/webmaestro - © Francisco
Arocena
---------------------------------------------------
8. Alineación y dimensionado de
imágenes
Alineación de las
imágenes
La alineación
de las imágenes fue, en su día, el primer golpe de efecto del programa
Navigator
de Netscape.
Permitió alinear una imagen a la izquierda o a la derecha de la página y hacer
que
el
texto la rodee
completamente, consiguiéndose así una apariencia similar
a la de una
revista. Es el caso de este párrafo con respecto a la imagen de
la derecha.
Obsérvese cómo las líneas, cuando rebasan su parte inferior,
continúan
normalmente hasta el margen derecho de la página. De manera
análoga, se
puede alinear la imagen a la izquierda, comportándose el texto
de una forma
equivalente. Esto se consigue con las extensiones de la etiqueta ALIGN, (que ya
se
vió en el
Capítulo 4 con los comandos TOP, MIDDLE y BOTTOM). Pero entonces sólo se hacía
referencia al
titular de la imagen, es decir, a un texto explicativo, pero menor que una
línea
completa, pues
en caso de rebasarla, el texto saltaba a la parte inferior de la imagen,
dejando un
hueco en
blanco, con lo que su utilidad era muy limitada. Este inconveniente queda
solventado
con los comandos de Netscape RIGHT (derecha) y LEFT
(izquierda). La
imagen de arriba,
"doom.gif", alineada a la derecha, se ha obtenido con la
etiqueta:
<IMG SRC="doom.gif" ALIGN=RIGHT>
y la imagen de
abajo, "doom2.gif", alineada a la izquierda, se ha obtenido con la
etiqueta:
<IMG
SRC="doom2.gif" ALIGN=LEFT>
Si se quiere
interrumpir el proceso de rellenado del texto a los lados de la imagen, para
que
salte hasta
debajo de ella, es decir, dejar un espacio en blanco parcialmente, se pueden
emplear
las siguientes
extensiones de la etiqueta <BR>:
<BR
CLEAR=LEFT> Busca el primer margen libre (clear) a la izquierda.
<BR
CLEAR=RIGHT> Busca el primer margen libre a la derecha.
<BR
CLEAR=ALL> Busca el primer margen libre a ambos lados.
Un ejemplo para
aclarar esto:
<IMG
SRC="isla.gif" ALIGN=LEFT> Este texto esta a un lado de la imagen.
<BR> Este
tambien esta a un lado de la imagen, en la linea siguiente.
<BR CLEAR=LEFT>
Este otro texto, en cambio, ha buscado el primer margen
libre a la
izquierda.
Que resulta:
Este texto esta a un lado de la
imagen.
Este tambien esta a un lado de la
imagen, en la linea siguiente.
Este otro
texto, en cambio, ha buscado el primer margen libre a la izquierda.
Dimensionando la
imagen
Los programas
navegadores cuando cargan un documento HTML y encuentran una etiqueta de
una imagen,
interrumpen el proceso de carga y solicitan al servidor que le envíe dicha
imagen,
quedando a la
espera hasta que se complete el envío, repitiéndose este proceso con cada una
de
las imágenes.
Esto es
especialmente molesto cuando, como ocurre frecuentemente, en la cabecera de la
página
se encuentra
una imagen grande, ya que durante un tiempo relativamente largo no se verá nada
en la pantalla.
Para evitar
este inconveniente existen unas extensiones de la etiqueta de la imagen <IMG
SRC="imagen.gif">
que sirven para indicar al navegador cuáles son sus dimensiones en
pixels. (Este
dato lo habremos obtenido previamente de algún programa gráfico).
En este caso,
el navegador actúa de una forma más favorable, ya que entonces, como conoce las
dimensiones de
las imágenes les reserva un espacio en la pantalla y va colocando el texto de
forma
apropiada, sin ninguna interrupción, a la vez que va rellenando esos espacios
reservados
a las imágenes.
Estos comandos
son WIDTH (ancho) y HEIGHT (alto).
Por ejemplo,
para la imagen isla.gif situada más arriba:
<IMG
SRC="isla.gif" WIDTH=120 HEIGHT=94>
Es conveniente
hacer esto con todas las imágenes, incluso con las más pequeñas (iconos,
botones, etc),
para que no haya ninguna interrupción en el proceso de carga del documento.
Se pueden
también, si se quiere, dimensionar las imágenes con unos valores distintos a
los que
realmente
tienen, variando el tamaño, la anchura o la altura. Esto es muy conveniente,
por
ejemplo para
poner en la página un thumbnail (reproducción en pequeño de una imagen), que
hace de enlace
a la imagen en su verdadero tamaño. De esta manera no recargamos demasiado
una página, y
el usuario será quien decida qué imágenes desea cargar.
He aquí un
ejemplo de thumbnail:
La imagen,
"nytimes.gif", tiene realmente unas dimensiones de 575x300
pixels (datos obtenidos de un
programa gráfico). Para dimensionar el
thumbnail a 150x75 (guardando
unas proporciones parecidas al original,
de 2:1), lo conseguimos con:
<IMG SRC="nytimes.gif"
WIDTH=150 HEIGHT=75>
Para hacer que
esta imagen reducida sea el enlace con la imagen en su tamaño original, lo
conseguimos con:
<A
HREF="nytimes.gif"> <IMG SRC="nytimes.gif" WIDTH=150
HEIGHT=75> </A>
También se puede
conseguir esto de otra manera, más correcta aunque más laboriosa. Es la de
reducir en un
programa gráfico esta imagen a 150x75, guardarla con otro nombre, y luego
hacer que la
pequeña sea el enlace de la grande. Es más correcta esta otra solución porque no
todos los
navegadores reconocen los comandos WIDTH y HEIGHT, incluso tampoco algunas de
las versiones
más antiguas de Netscape.
Ejemplo práctico
Partiendo del
ejemplo práctico del capítulo anterior, mipag7.html, vamos a dimensionar las
imágenes
existentes y añadir otra, doom.gif, como ejemplo de imagen alineada a la
izquierda, con
su texto correspondiente.
Capturamos la
imagen "doom.gif" y la guardamos junto con el fichero que vamos a
crear.
Cargamos el
fichero mipag7.html y cambiamos las etiquetas de las imágenes de la siguiente
manera:
<IMG
SRC="hombre.gif"> por <IMG SRC="hombre.gif" WIDTH=29
HEIGHT=27>
<IMG SRC="casa.gif"> por <IMG
SRC="casa.gif" WIDTH= 30 HEIGHT=29>
<IMG SRC="isla.gif"> por <IMG
SRC="isla.gif" WIDTH= 120 HEIGHT=94>
(La imagen del
fondo "nubes.jpg" no se dimensiona).
Además de esto,
añadimos entre las etiquetas </CENTER> y </BODY> (al final del
documento), lo
siguiente:
<P>
<HR>
<P><IMG SRC="doom.gif" WIDTH=160 HEIGHT=100
ALIGN=LEFT>Una de mis aficiones
favoritas son
los juegos tipo "Doom", con los que paso horas incontables.
<BR CLEAR=LEFT>
<P>
<HR>
Guardamos este
fichero como mipag8.html y lo cargamos en el navegador para verlo.
Resultado
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
----------------------------------------------------
9. Formato de las
imágenes
Tamaño de las
imágenes
Cuando vamos
navegando por las páginas del Web parece a veces que todo se detiene
completamente.
Esto es algo que por desgracia ocurre muy a menudo. Pueden ser muchas las
causas:
conexiones de la red defectuosas, servidores lentos, etc. Son cosas que en
general no
nos queda más
remedio que soportar.
Pero hay una causa
particularmente irritante, y es que hayamos ido a parar a una página que
padece del
Síndrome de la Imagen Gigantesca, que es la mala costumbre de poner en la
página imágenes
enormes, lo que se traduce en ficheros de imagen a cargar con un tamaño
excesivo.
Hay unas
cuantas maneras de minimizar el tamaño de los ficheros de imagen:
Reducir el tamaño de la imagen con un
programa gráfico. Esto hará que haya menos
pixels que almacenar, y por tanto menos
kilobytes que cargar.
Reducir el número de colores utilizados en
la imagen. Una imagen GIF puede tener un
máximo de 256 colores, pero podemos a
veces reducir este número. Por ejemplo, se puede
conseguir un logo atractivo para encabezar
las páginas con sólo dos colores, uno de primer
plano y el otro de fondo. Con un programa gráfico adecuado se
pueden hacer estas
comprobaciones y reducciones.
Simplificar las imágenes. El formato GIF
comprime la imagen buscando las secuencias
repetidas en los datos y abreviándolas.
Esto quiere decir que las zonas grandes de un sólo
color se comprimen muy bien, al contrario
de las que tienen muchos tonos y graduaciones.
Como
referencia, el fichero de una imagen no debe sobrepasar los 100k, mejor aún más
pequeño.
Tampoco conviene que el tamaño de la imagen en la pantalla sea mayor de 500x400
pixels, para no
obligar al usuario a tener que desplazarla con los cursores.
Si a pesar de
todo, las imágenes que queremos poner siguen teniendo un tamaño de fichero
demasiado
grande, se puede elegir la solución, vista en el capítulo anterior, de utilizar
thumbnails
(reproducciones en pequeño que enlazan con la imagen grande). De esta manera es
el usuario
quien elige qué imágenes cargar.
Otra práctica
muy aconsejable, también vista en el capítulo anterior, es la de dimensionar
todas
las imágenes
con los comandos WIDTH y HEIGHT.
Cuando se carga
la imagen de una página queda almacenada en el caché. Por tanto, si esta
misma imagen se
utiliza en otras páginas no será requerida al servidor para ser cargada de
nuevo. Por
ello, siempre que se pueda, es conveniente repetir la misma imagen en otras
páginas, como
por ejemplo para los botones, iconos, barras de separación, etc.
El formato JPEG
El método de
compresión utilizado por el formato GIF es muy conveniente para comprimir
áreas
monocolor, como las que puede haber por ejemplo en un diagrama sencillo. Pero
no es
tan conveniente
para cosas más complicadas, como por ejemplo fotografías de objetos de la
vida real.
Además estos objetos no presentan un aspecto nada favorable si están reducidos
a los
256 colores de
este formato.
Para realizar
este tipo de tareas se creó el formato JPEG. Almacena las imágenes con 16.7
millones de
colores, que es mucho más de lo que el ojo humano puede distinguir, y hace uso
de
complicados
algoritmos matemáticos para comprimir el tamaño de los ficheros hasta la décima
parte de su
tamaño original. Esto quiere decir que una imagen complicada que se haya
comprimido con
este formato tendrá, comparando con el formato GIF, una calidad mayor y un
tamaño de
fichero menor.
Su único
inconveniente es que hay navegadores que no son capaces de manejar directamente
estos ficheros
y que tienen que traspasarlos a un programa auxiliar para ejecutarlos. Esto quiere
decir, que si
se quiere tener en cuenta a esos navegadores, no se deben poner imágenes con
este
formato
directamente en la página. Un recurso muy utilizado para solventar esto es el
de poner
thumbnails en
formato GIF que enlacen con las imágenes en tamaño natural y formato JPEG.
De todas
maneras, téngase en cuenta que los navegadores que sí pueden manejar este
formato
son, con mucho,
los más utilizados, como son los de Netscape y Microsoft.
GIFs
transparentes
Una característica
muy útil del formato GIF es la opción de hacer transparente un color
determinado, es
decir, que en la página del Web ese color concreto no se vea, siendo
reemplazado por
el fondo de la página. Por tanto, si en una imagen escogemos el color de su
fondo como
transparente, parecerá flotar sobre el fondo de la página (sea éste el que sea,
incluso un
fondo de imágenes)
Esta es la imagen
original, con un fondo blanco no transparente.
La misma imagen, pero con
el color blanco transparente.
Pero no todas
las imágenes son apropiadas para conseguir este efecto. Es condición
indispensable
que la imagen tenga un fondo de color uniforme. No vale una imagen con un
fondo
multicolor.
La imagen de la izquierda tiene
un fondo aparentemente
uniforme, pero en realidad no es
así. La manipulamos con un
programa gráfico para
proporcionarle uno uniforme. No
importaría de qué color sea,
puesto que no se va ver, pero es
mejor elegir un gris claro, para que en los navegadores
que no
implementen esta característica
de la transparencia, la imagen
parezca "casi"
transparente. (Los valores RGB para un color
gris claro son 207,207,207). Es
lo que se ha hecho en la
imagen de la
derecha.
Hay otro apecto
que hay que tener en cuenta y es que el formato GIF tiene dos subformatos
diferentes. El
más común es el GIF 87a, con el que no se pueden conseguir colores
transparentes.
El formato adecuado para ello es el GIF 89a. Por tanto, el programa gráfico
debe
tener la posibilidad de convertir
las imágenes a este subformato.
El último aspecto a tener en
cuenta es el siguiente: los programas gráficos
tienen normalmente un color de
primer plano (foreground) y otro de fondo
(background). Para conseguir
nuestro propósito tenemos que forzar al
programa gráfico para que su
color de fondo sea precisamente el color que
queremos hacer transparente (en
este ejemplo, el color gris claro). Ya no
queda más que guardar la imagen
en formato GIF 89A e indicar que el color de
fondo (común a
la imagen y al programa gráfico) sea transparente.
Estos ejemplos
se han realizado con el programa para Windows Paint Shop Pro 3.12. Al guardar
la imagen (Save As) como
GIF 89a, hay que pulsar "Options" y marcar "Set the
Transparency Value to the Background".
Otro programa para Windows: LView Pro
Para usuarios
del Mac: Transparency
Referencia de
consulta: Transparent Background Images
GIFs entrelazados
Normalmente, un
fichero GIF contiene los datos de cada línea de la imagen de una manera
ordenada, de
tal manera que al ser cargada por el navegador aparecerá dibujada línea a línea
desde arriba
hasta abajo.
Se puede
cambiar este comportamiento si se ha guardado la imagen como un GIF entrelazado
(interlaced
GIF). En este caso, las líneas quedan guardadas no de una manera consecutiva,
sino
en saltos de de
cuatro en cuatro, y al llegar al final recomienza desde el principio con otra
secuencia
diferente, también de cuatro en cuatro, así hasta completar la imagen.
Por ejemplo,
una imagen de 20 líneas sería guardada con estas secuencias:
líneas 1, 5, 9, 13, 17
líneas 2,6,10,14,18
líneas 3, 7 ,11, 15, 19
líneas 4, 8, 12, 16, 20
El propósito de
esto es que al ser cargada esta imagen por un navegador que implemente esta
característica
(Netscape, Explorador de Microsoft, etc), se verá la imagen completa desde el
principio,
comenzando con una definición muy grosera que luego se va afinando poco a poco.
El tiempo de
carga de una imagen entrelazada y de la misma no entrelazada es el mismo, pero
en el primer
caso nos hacemos rápidamente una idea del tipo de imagen que es, lo cual puede
ser muy
conveniente a veces.
Los programas
gráficos más completos suelen tener esta posibilidad (p. ej. el Paint Shop
Pro),
que conviene
aprovechar.
He aquí un
ejemplo de cómo se carga de distinta manera una imagen relativamente grande (35
kb) primero no
entrelazada y luego entrelazada
Ejemplo práctico
Partiendo del
ejemplo práctico del capítulo anterior, mipag8.html, vamos a añadirle las dos
imágenes
transparentes que se han comentado en el capítulo. Capturamos primero ambas
imágenes
(bluerib.gif y 3mulder.gif) y las guardamos en el mismo directorio que el
documento HTML
que vamos a crear.
Luego añadimos
entre las etiquetas <HR> y </BODY>, situadas al final, lo
siguiente:
<P> <CENTER> <H3> "The truth is out there"
</H3>
<IMG SRC="3mulder.gif"> </CENTER>
<P> <HR>
<P> <CENTER> <IMG SRC="bluerib.gif">
</CENTER>
<P>
<HR>
Guardamos este
fichero como mipag9.html y lo cargamos en el navegador para verlo.
Resultado
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
------------------------------------------
10. Tablas
Hasta que no se
empezaron a usar las tablas, la única manera de tabular las cosas era utilizar
la
etiqueta de
preformateado, con la que es necesario poner manualmente los espacios en blanco
para que quede
todo alineado formando filas y columnas, con un resultado muy poco estético.
Estructura de una tabla
Vamos a ver
ordenadamente (de fuera hacia dentro) las etiquetas necesarias para
confeccionar
las tablas.
1.La etiqueta general, que engloba a todas
las demás es <TABLE> y </TABLE>. Es decir:
<TABLE>
[resto de las etiquetas]
</TABLE>
Con esto se presentarían los datos
tabulados, pero faltaría la característica que hace más
atractivas a las tablas, y es que estos
datos vayan dentro de unos cajetines formados por
un borde. Para esto tenemos que añadir el
atributo BORDER a la etiqueta, es decir:
<TABLE BORDER>
[resto de las etiquetas]
</TABLE>
2.En el siguiente nivel, dentro de la
anterior, están las etiquetas para formar cada fila (row)
de la tabla, que son <TR> y
</TR>. Hay que repetirlas tantas veces como filas queremos
que tenga la tabla. Es decir, para una
tabla con dos filas, sería:
<TR>
[etiquetas de las distintas celdas de la
primera fila]
</TR>
<TR>
[etiquetas de las distintas celdas de la
segunda fila]
</TR>
3.En el último nivel (dentro de las
anteriores) están las etiquetas de cada celda, que son
<TD> y </TD>, que engloban el
contenido de cada celda concreta (texto, imágenes, etc.).
Hay que repetirla tantas veces como celdas
queremos que haya en esa fila.
Veamos un
ejemplo de una tabla con dos filas. Cada fila va a tener tres celdas. Dentro de
cada
celda vamos a
poner un texto indicativo de la posición de dicha celda:
<TABLE BORDER>
<TR>
<TD>fila1-celda1</TD> <TD>fila1-celda2</TD>
<TD>fila1-celda3</TD>
</TR>
<TR>
<TD>fila2-celda1</TD> <TD>fila2-celda2</TD>
<TD>fila2-celda3</TD>
</TR>
</TABLE>
Que resulta:
fila1-celda1
fila1-celda2
fila1-celda3
fila2-celda1
fila2-celda2
fila2-celda3
Filas con desigual número
de celdas
En este ejemplo
hemos puesto dos filas con igual número de celdas. ¿Qué pasa si ese número
es distinto?
Pues el navegador forma el número de filas y columnas que haga falta, dejando
espacios en
blanco en las filas que tengan menos celdas.
Si en el
ejemplo anterior eliminamos la tercera celda de la segunda fila, es decir si
borramos
<TD>fila2-celda3</TD>,
resultará:
fila1-celda1
fila1-celda2
fila1-celda3
fila2-celda1
fila2-celda2
Titular de la
tabla
Se puede añadir
un titular (caption) a la tabla, es decir un texto situado encima de la tabla
que
indica cuál es
su contenido. Se consigue con la etiqueta <CAPTION> y </CAPTION>.
Si en el
ejemplo anterior añadimos la siguiente línea:
<CAPTION>
Ejemplo de filas desiguales </CAPTION>, resulta:
Ejemplo de filas
desiguales
fila1-celda1
fila1-celda2
fila1-celda3
fila2-celda1
fila2-celda2
Variando el espesor de
los bordes
El atributo
BORDER (visto más arriba) pone por defecto un borde de espesor igual a la
unidad.
Pero se puede
hacer que este borde sea tan grueso como queramos, poniendo:
<TABLE
BORDER=número deseado>
Si en el
ejemplo anterior ponemos:
<TABLE BORDER=5>
Resultará:
Ejemplo de filas
desiguales
fila1-celda1
fila1-celda2
fila1-celda3
fila2-celda1
fila2-celda2
Celdas de
cabecera
Además de las
celdas que contienen datos normales, podemos poner, si nos conviene, celdas de
cabecera
(header), que se distinguen por estar el texto de dichas celdas en negrita y
centrado.
Esto se
consigue con la etiqueta <TH> y </TH> (en vez de la normal
<TD> y </TD>)
Vamos a añadir,
en el ejemplo anterior, una fila de estas celdas de cabecera, antes de las
otras
dos que ya existían:
<TR>
<TH>Columna 1</TH> <TH>Columna 2</TH>
<TH>Columna 3</TH>
</TR>
Que resulta:
Ejemplo de filas
desiguales
Columna 1
Columna 2
Columna 3
fila1-celda1
fila1-celda2
fila1-celda3
fila2-celda1
fila2-celda2
Se pueden
colocar en el sitio que se quiera, aunque lo normal es que vayan en los
bordes.,
encabezando las
columnas o las filas.
Contenido de las
celdas
Hasta ahora, en
todos los ejemplos se ha puesto un texto normal dentro de las distintas celdas.
Pero se puede
poner en ellas cualquier otro elemento de los que van en un documento HTML,
como imágenes,
enlaces, etc. No hay más que poner dentro de la etiqueta de la celda la
etiqueta
correspondiente a una imagen, un enlace, etc.
Ejemplo con una
imagen:
<TABLE BORDER=2>
<TR><TD><IMG
SRC="babe.gif"></TD></TR>
</TABLE>
Ejemplo con un
enlace:
<TABLE BORDER=2>
<TR><TD><A HREF="index.html">Página
principal </A></TD></TR>
</TABLE>
Página
principal
Posicionamiento del contenido
dentro de la celda
Normalmente, el
contenido de una celda está alineado a la izquierda. Pero se puede cambiar
esto añadiendo
dentro de la etiqueta de la celda los siguientes atributos:
<TD
ALIGN=CENTER> Al centro </TD>
<TD
ALIGN=RIGHT> A la derecha </TD>
<TH
ALIGN=LEFT> Cabecera a la izquierda </TH> (Recuérdese que por defecto
están
centradas)
Ejemplos de alineamiento
horizontal dentro de la celda
Al centro
A la derecha
Cabecera a la izquierda
El alineamiento
por defecto en el sentido vertical es en el medio. También se puede cambiar,
añadiendo
dentro de la etiqueta de la celda los siguientes atibutos:
<TD VALIGN=TOP> Arriba </TD>
<TD VALIGN=BOTTOM> Abajo </TD>
Arriba
Abajo
Variando las dimensiones
de la tabla
El navegador se
encarga normalmente de dimensionar el tamaño total de la tabla de acuerdo con
el número de
filas, de columnas, por el contenido de las celdas, espesor de los bordes, etc.
A veces nos
puede convenir forzarle para que la tabla tenga unas dimensiones totales
mayores
que las que le
corresponden, tanto en anchura como en longitud. Esto se consigue añadiendo
dentro de la
etiqueta de la tabla los atributos WIDTH y HEIGHT igual a un porcentaje de la
dimensión de la
pantalla, o a una cifra que equivale al número de pixels.
Por ejemplo, si
en el último ejemplo ponemos:
<TABLE
WIDTH=60%>
Arriba
Abajo
O, si en ese
mismo ejemplo, ponemos:
<TABLE
HEIGHT=200>
Arriba
Abajo
Celdas que abarcan a
otras varias
A veces puede
interesarnos que una celda se extienda sobre otras varias. Esto se consigue
añadiéndo
dentro de la etiqueta de la celda los atributos COLSPAN=número para extenderse
sobre un número
determinado de columnas, o ROWSPAN=número para extenderse verticalmente
sobre un número
determinado de filas.
Por ejemplo, en
la primera tabla de este capítulo vamos a añadir una fila con una sola celda,
que abarca a
dos columnas:
<TR>
<TD COLSPAN=2> Celda sobre 2 columnas </TD> <TR>
Celda sobre 2 columnas
fila1-celda1
fila1-celda2
fila1-celda3
fila2-celda1
fila2-celda2
fila2-celda3
O, en la misma
tabla, vamos a añadir una celda en la primera fila. pero que abarque también a
la siguiente:
<TD
ROWSPAN=2> Celda junto a 2 filas </TD>
Celda junto a 2 filas
fila1-celda1
fila1-celda2
fila1-celda3
fila2-celda1
fila2-celda2
fila2-celda3
Color de fondo en las
tablas
Podemos
conseguir que las tablas tengan un color de fondo, siguiendo un procedimiento
totalmente
análogo al empleado para que una página tenga un color de fondo uniforme (según
vimos en el
capítulo 7). Para ello debemos utilizar el atributo
BGCOLOR="#XXYYZZ", visto en
dicho capítulo.
Se puede
conseguir:
1.Que la totalidad de la tabla tenga un
color de fondo. Para ello, colocamos el atributo
dentro de la etiqueta TABLE. Por ejemplo,
vamos a hacer que la tabla tenga un fondo verde
(#00FF00):
<TABLE BORDER
BGCOLOR="#00FF00">
<TR>
<TD>fila1-celda1</TD> <TD>fila1-celda2</TD> </TR>
<TR>
<TD>fila2-celda1</TD> <TD>fila2-celda2</TD> </TR>
</TABLE>
Que resulta:
fila1-celda1
fila1-celda2
fila2-celda1
fila2-celda2
2.Que sólamente una celda determinada tenga
un color de fondo. Para ello, colocamos el
atributo dentro de la etiqueta de la celda
correspondiente. Por ejemplo, vamos a hacer que
sólo la celda 1 de la fila 1 tenga un
color verde:
<TABLE BORDER>
<TR><TD
BGCOLOR="#00FF00">fila1-celda1</TD><TD>fila1-celda2</TD></TR>
<TR>
<TD>fila2-celda1</TD> <TD>fila2-celda2</TD> </TR>
</TABLE>
Que resulta:
fila1-celda1
fila1-celda2
fila2-celda1
fila2-celda2
3.Que la generalidad de las celdas tenga un
color, pero que alguna celda tenga uno
particular. El atributo del color general
se coloca en la etiqueta TABLE, y el del color
particular en la etiqueta de la celda en
cuestión (una combinación de los dos casos
anteriores). por ejemplo, vamos a hacer
que la generalidad de la tabla sea de color rojo
(#FF0000), pero que la celda 1 de la fila
1 sea de color verde (#00FF00):
<TABLE BORDER BGCOLOR="#FF0000">
<TR><TD
BGCOLOR="#00FF00">fila1-celda1</TD><TD>fila1-celda2</TD></TR>
<TR>
<TD>fila2-celda1</TD> <TD>fila2-celda2</TD> </TR>
</TABLE>
Que resulta:
fila1-celda1
fila1-celda2
fila2-celda1
fila2-celda2
Imágenes de fondo en
las tablas
El Explorer de
Microsoft soporta la colocación de imágenes de fondo en el interior de las
tablas, de una
manera análoga a como se hace en una página (según vimos en el capítulo 7).
Para ello
debemos utilizar el atributo BACKGROUND="imagen.gif" o
BACKGROUND="imagen.jpg",
visto en dicho capítulo.
Si se utiliza
dentro de la etiqueta <TABLE> la imagen en cuestión se multiplicará
detrás de todas
las celdas.
Por ejemplo, si
ponemos:
<TABLE BORDER BACKGROUND="nubes.jpg">
(Se omite el
resto de las etiquetas de la tabla)
Obtenemos:
fila1-celda1
fila1-celda2
fila2-celda1
fila2-celda2
(Con el
Netscape no se verá ninguna imagen de fondo, sólo con el Explorer)
Si, por el
contrario, sólo se pone este atributo dentro de la etiqueta de una celda
concreta
(<TD> o
<TH>), entonces la imagen de fondo se verá sólo en esa celda, como por
ejemplo:
fila1-celda1
fila1-celda2
fila2-celda1
fila2-celda2
Separación entre las celdas
de una tabla
Por defecto, la
separación entre las distintas celdas de una tabla es de dos pixels. Pero se
puede variar
esto con el atributo CELLSPACING, que se pone dentro de la etiqueta TABLE.
Por ejemplo,
para obtener una separación de 20 pixels entre celdas ponemos:
<TABLE BORDER CELLSPACING=20>
(Se omite el
resto de las etiquetas de la tabla)
Con lo que se
obtiene:
fila1-celda1
fila1-celda2
fila2-celda1
fila2-celda2
A primera vista
parece como si esto fuera lo mismo que si hubiéramos aumentado el espesor de
los bordes.
Pero para comprobar que no es así, hagamos que en el caso anterior, tenga
además
unos bordes de
5 de espesor:
<TABLE BORDER=5 CELLSPACING=20>
Con lo que se
obtiene:
fila1-celda1
fila1-celda2
fila2-celda1
fila2-celda2
Separación entre el borde y el
contenido dentro de las celdas
Por defecto, la
separación entre el borde y el contenido dentro de las celdas es de un pixel.
Se
puede cambiar
esto con el atributo CELLPADDING, que se pone dentro de la etiqueta TABLE.
Por ejemplo,
para obtener una separación de 20 pixels entre el contenido y los bordes,
dentro
de cada celda:
<TABLE BORDER CELLPADDING=20>
(Se omite el
resto de las etiquetas de la tabla)
Con lo que se
obtiene:
fila1-celda1
fila1-celda2
fila2-celda1
fila2-celda2
Se puede
combinar este atributo con CELLSPACING (visto en el apartado anterior).
Por ejemplo,
una tabla con bordes de 5 de espesor, separación entre celdas de 15 y
separación
del contenido
con respecto a los bordes de las celdas de 20, lo obtendríamos con:
<TABLE BORDER=5 CELLSPACING=15 CELLPADDING=20>
(Se omite el
resto de las etiquetas de la tabla)
Con lo que se
obtiene:
fila1-celda1
fila1-celda2
fila2-celda1
fila2-celda2
Ejemplo práctico
Partiendo del
ejemplo práctico del capítulo anterior, mipag9.html, vamos a crear una tabla
de dos filas,
con una celda cada una. La primera, como cabecera, con el texto "Un lugar
ideal para mis
vacaciones", y la segunda con la imagen isla.gif. Además vamos a alargar a
lo
ancho la tabla
al 75% de la pantalla.
Para ello
sustituimos:
<H3> Un
lugar ideal para mis vacaciones </H3>
<IMG SRC="isla.gif" ALT="isla">
Por lo
siguiente:
<P> <TABLE BORDER=5 WIDTH=75%>
<TR>
<TH> Un lugar ideal para mis vacaciones </TH> </TR>
<TR> <TD> <IMG SRC="isla.gif"
ALT="isla"> </TD> </TR>
</TABLE>
Guardamos este
fichero como mipag10.html y lo cargamos en el navegador para verlo.
Resultado.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
------------------------------------------------
11. Formularios
La manera
general para que los lectores de nuestra página se puedan comunicar con
nosotros es
por medio de un
enlace a nuestra dirección de email, con lo que recibiríamos un email
convencional.
Pero puede ser
que lo que necesitemos sea sólamente una respuesta concreta a unas opciones
que
presentaremos nosotros mismos, o un comentario del usuario, para lo que le
suministraremos
un espacio en donde introducirlo.
Se puede hacer
todo esto, además de otras cosas, utilizando los formularios, con los que se
pueden confeccionar
páginas que contengan los elementos necesarios para ello, tal como
botones de
radio, listas de selección, cajetines de introducción de texto y de control,
etc., como
vamos a ver.
Los formularios
permiten que los demás nos envíen la información directamente a nosotros o
bien a nuestro
servidor, en donde hemos instalado un programa que procese esta información.
Por ejemplo,
vamos a suponer que queremos crear una lista de correo. Los usuarios pueden
introducir sus
nombres y direcciones de email y pulsar un botón de envío. Esos datos los
podemos recibir
"en bruto" en nuestro correo, con los que confeccionaríamos
manualmente
dicha lista de
correo, sin necesitar ningún programa para ello. Este proceso es el que vamos a
comentar en
este capítulo.
La otra
posibilidad, de la que únicamente se va a hacer esta mención, es que hubiéramos
instalado en
nuestro servidor un programa especial para procesar esos datos y añadirlos a la
lista de
correo, y que incluso pudiera devolver automáticamente al usuario algún tipo de
información.
Para conseguir esto, los formularios necesitan ejecutar programas o scripts por
medio del CGI (Common Gateway Interface). El CGI permite a los
formularios ser procesados
por programas
escritos en cualquier lenguaje, aunque los más usados en Internet son el Perl y
el
C.
Para saber más
sobre el CGI:
En castellano:
Manual de CGI, por Diego Sebastián Quiroga
Ejecutables CGI-BIN, en Tejedores del Web,
por Carlos Castillo
FAQ de la lista HTML de la UBA
Librería CGI 3.0
En inglés:
Web Developper's Virtual
Library: CGI
CGI Index (Yahoo!)
NOTA:
El tipo de
formulario que se describe a continuación podrá ser utilizado por la mayoría de
los
navegadores,
con la notable excepción del Explorer (incluso la versión 3.0), por lo que es
conveniente
suministrar al final del formulario, como una alternativa para estos casos, un
enlace
de email
ordinario (ver el Capítulo 3)
Estructura de un
formulario
La estructura
general de un formulario es:
1.Etiqueta de inicio:
<FORM
ACTION="mailto:dirección_de_email" METHOD="POST"
ENCTYPE="TEXT/PLAIN">
2.Cuerpo del formulario,
con los distintos elementos para poder introducir los datos.
3.Botones de envío y de borrado.
4.Etiqueta de cierre </FORM>
Etiqueta de
inicio
El atributo
ACTION indica la acción que se debe efectuar y que es que los datos sean
enviados
por email a la
dirección indicada. (Si hiciéramos uso del CGI, sería precisamente aquí donde
indicaríamos su
localización en el servidor, que habitualmente es el directorio cgi-bin, para
que
procese los
datos).
El atributo
METHOD=POST indica que los datos sean inmediatamente enviados por correo a la
dirección de
email, nada más pulsar el usuario el botón de envío.
Con el atributo
ENCTYPE="TEXT/PLAIN" se consigue que las respuestas las recibamos
como un
fichero de
texto, perfectamente legible y sin codificar.
Elementos para introducir
los datos
Los vamos a
dividir en tres clases:
1.Introducción por medio de texto
2.Introducción por medio de menús
3.Introducción por medio de botones
La introducción
de los datos se consigue por medio de la etiqueta:
<INPUT
TYPE="xxx" NAME="yyy" VALUE="zzz">
En donde:
xxx es la
palabra que indica el tipo de introducción.
yyy es el
nombre que le asignamos nosotros a la variable de introducción del dato.
zzz es la
palabra asociada a un elemento.
Todo esto, que
de momento parece muy confuso, se aclarará al ir viendo los distintos casos.
Introducción por medio de
texto (una línea)
En este caso es
xxx=text, es decir, INPUT TYPE="text". El atributo VALUE no procede
en este
caso.
Vamos a poner
un ejemplo: solicitamos el apellido del usuario.
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
Escribe tu
apellido:
<BR><INPUT TYPE="text" NAME="Apellido">
</FORM>
Que resulta:
Escribe tu
apellido:
Si el usuario
introduce su apellido, p. ej. Ruiz, y pulsa el botón de envío (que veremos más
adelante),
recibiremos un email suyo con el siguiente texto:
Apellido=Ruiz
La longitud de
este formulario es por defecto de 20 caracteres. Se puede variar incluyendo en
la etiqueta el
atributo SIZE="número". Por otra parte, sea cual sea la longitud del
formulario, si
no se indica
nada, el usuario puede introducir el número de caracteres que quiera. Se puede
limitar esto,
incluyendo en la etiqueta el atributo MAXLENGTH="número".
En el caso que
hemos visto, si hubiéramos cambiado la etiqueta correspondiente por:
<INPUT TYPE="text" NAME="Apellido"
SIZE="10" MAXLENGTH="12">
Habríamos
obtenido:
Escribe tu
apellido:
(Se puede
comprobar cómo no se pueden introducir más de 12 caracteres).
También se
puede hacer que el texto introducido no sea reconocible, es decir que todos los
caracteres se
representen por asteriscos. Basta con cambiar en la etiqueta INPUT
TYPE="text"
por INPUT TYPE="password". En el último ejemplo, si
cambiamos la etiquea correspondiente
por:
<INPUT TYPE="password" NAME="Apellido"
SIZE="10" MAXLENGTH="12">
Obtenemos:
Escribe tu
apellido:
(Se puede
comprobar cómo los caracteres introducidos se representan por asteriscos)
Introducción por medio de texto
(múltiples líneas)
Cuando el texto
a introducir puede alcanzar una gran longitud, por ejemplo un comentario, es
conveniente
utilizar un formulario de texto de múltiples líneas.
Esto se
consigue con la etiqueta de inicio:
<TEXTAREA NAME="yyy"
ROWS="número" COLS="número">
(en donde no se
utiliza INPUT TYPE y donde ROWS representa el número de filas, y COLS el de
columnas).
y la de cierre:
</TEXTAREA>
Ejemplo: un
formulario solicitando los comentarios del usuario:
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
Introduce tus
comentarios:
<BR><TEXTAREA
NAME="Comentarios" ROWS="6" COLS="40">
</TEXTAREA>
</FORM>
Que resulta:
Introduce tus
comentarios:
(El salto de
línea del texto introducido no se efectúa automáticamente).
Una vez que el
usuario haya escrito sus comentarios dentro del formulario, y haya pulsado el
botón de envío,
recibiremos un email suyo con el siguiente texto:
Comentarios=Bla
bla bla...
Introducción por medio
de menús
Si queremos que
el usuario, en vez de introducir un texto, como hemos visto en los casos
anteriores,
escoja entre varias opciones que le presentamos nosotros, haremos uso de un
formulario en forma
de menú.
Se consigue con
la etiqueta de inicio <SELECT NAME="yyy"> y la de cierre
</SELECT>.
Las distintas
opciones a escoger se consiguen con la etiqueta <OPTION>.
Ejemplo:
Pedimos al usuario que elija su color preferido:
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
¿Cuál es tu
color preferido?
<BR><SELECT
NAME="ColorPreferido">
<OPTION>Rojo
<OPTION>Verde
<OPTION>Azul
<OPTION>Amarillo
</SELECT
>
</FORM>
Que resulta:
¿Cuál es tu
color preferido?
Si el usuario
ha escogido, p. ej. Azul y ha pulsado el botón de envío, recibiremos un email
suyo
con el texto:
ColorPreferido=Azul.
En el ejemplo
anterior, sólo es visible en el formulario una opción. Si queremos que sean
visibles
múltiples opciones a la vez, añadimos en la etiqueta los atributos MULTIPLE
SIZE="número",
donde especificamos el número de opciones visibles.
Si cambiamos en
el ejemplo anterior la etiqueta correspondiente por:
<SELECT
NAME="ColorPreferido" MULTIPLE SIZE="2">
Obtenemos:
¿Cuál es tu
color preferido?
Formulario de confirmación
(checkbox)
Si queremos que
el usuario confirme una opción determinada, podemos hacer uso de un
formulario de
confirmación, o checkbox, que se consigue con la etiqueta:
<INPUT TYPE="checkbox" NAME="yyy">
Ejemplo:
Solicitamos al usuario que confirme su inclusión en una lista de correo:
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
<INPUT TYPE="checkbox" NAME="Lista">
Sí, deseo ser
incluido en la lista de correo.
</FORM>
Que resulta:
Sí, deseo ser incluido en la lista de
correo.
Si el usuario
marca este formulario y pulsa el botón de envío, recibiremos un email suyo con
el
texto:
Lista=On.
Si queremos que
el formulario aparezca inicialmente como marcado (el usuario no necesitará
hacerlo), basta
con añadir el atributo CHECKED dentro de la etiqueta. En el ejemplo anterior si
sustituimos la
etiqueta equivalente por:
<INPUT TYPE="checkbox" NAME="Lista" CHECKED>
Obtenemos:
Sí, deseo ser incluido en la lista de
correo.
Botones de radio
Cuando queremos
que el usuario elija una única opción entre varias, podemos hace uso de los
botones de
radio, que se consiguen con la etiqueta:
<INPUT TYPE="radio" NAME="yyy"
VALUE="zzz">
Donde yyy es el
nombre que le ponemos a la variable que se trata de elegir, y zzz es el nombre
de cada una de
las opciones en concreto.
Ejemplo:
solicitamos al usuario que defina cuál es su sistema operativo preferido:
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
¿Cuál es tu
sistema operativo preferido?
<BR>
<INPUT TYPE="radio" NAME="SistemaOperativo"
VALUE="PC" CHECKED> PC
<INPUT TYPE="radio" NAME="SistemaOperativo"
VALUE="Mac"> Mac
<INPUT TYPE="radio" NAME="SistemaOperativo"
VALUE="Unix"> Unix
</FORM>
Que resulta:
¿Cuál es tu
sistema operativo preferido?
PC
Mac Unix
Obsérvese el
atributo opcional CHECKED que se ha añadido en la primera etiqueta. Esa será la
opción que
aparece marcada por defecto.
Obsérvese
también que no es posible escoger más de una opción.
Si el usuario
ha escogido la opción PC y pulsa el botón de envío, recibiremos un email suyo
con el texto:
SistemaOperativo=PC.
Botones de envío y de borrado
Hasta ahora, en
todos los ejemplos que hemos visto, faltaba un elemento esencial en cualquier
formulario, y
es el botón de envío de los datos, que se consigue con la etiqueta:
<INPUT TYPE="submit" VALUE="zzz">
En donde zzz es
el texto que queremos que aparezca en el botón.
Vamos a
añadirlo al primer ejemplo, en el que se solicitaba el apellido del usuario:
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
Escribe tu
apellido:
<BR><INPUT TYPE="text" NAME="Apellido">
<P><INPUT TYPE="submit" VALUE="Enviar
datos">
</FORM>
Que resulta:
Escribe tu
apellido:
Otro botón
interesante es el de borrado de los datos introducidos, muy conveniente en un
formulario con
muchos elementos. Es muy similar al de envío, pues se consigue con la etiqueta:
<INPUT TYPE="reset" VALUE="zzz">
En donde zzz es
el texto que queremos que aparezca en el botón.
Si añadimos al
ejemplo anterior la etiqueta:
<P><INPUT TYPE="reset" VALUE="Borrar
datos">
resulta:
Escribe tu
apellido:
Se puede
comprobar su funcionamiento, escribiendo algo en el formulario y pulsando luego
el
botón de
borrado.
Consideraciones
finales
Hasta ahora
hemos visto uno a uno los diferentes elementos que se pueden utilizar. Pero no
hay
ningún
inconveniente en usar, dentro del mismo formulario, distintos tipos de
introducción de
datos. Al
pulsar el usuario el botón de envío recibiríamos en email suyo con las
distintas
parejas
NAME=VALUE de cada elemento, encadenadas con el símbolo &.
Por ejemplo,
con este formulario, con dos elementos distintos:
Escribe tu
apellido:
¿Cuál es tu
color preferido?
recibiríamos un
email con el texto (p. ej.):
Apellido=Ruiz
ColorPreferido=Azul.
Para ampliar el
tema de formularios:
Carlos' Forms
Tutorial
Ejemplo práctico
Partiendo del
ejemplo práctico del capítulo anterior, mipag10.html, vamos a añadirle un
"libro de
visitas". Para ello, añadimos lo siguiente, entre las etiquetas <HR>
y </BODY>
situadas al
final, lo siguiente:
<P><CENTER>
<H2>Libro
de visitas</H2>
<P><FORM ACTION="mailto:[email protected]"
METHOD="POST"
ENCTYPE="TEXT/PLAIN">
Tu nombre:
<BR><INPUT
TYPE="text" NAME="Nombre">
<P>Escribe
tus comentarios:
<BR><TEXTAREA
NAME="Comentarios" ROWS="6" COLS="40">
</TEXTAREA>
<P><INPUT
TYPE="submit" VALUE="Enviar datos">
<INPUT
TYPE="reset" VALUE="Borrar datos">
</FORM>
<P>
<HR>
(Cada uno puede
poner en mailto:[email protected] su propia dirección de email)
Guardamos este
fichero como mipag11.html y lo cargamos en el navegador para verlo.
Resultado.
WebMaestro: http://www.lander.es/webmaestro - © Francisco
Arocena
--------------------------------------------------
12. GIFs animados
Ya se ha hecho mención
anteriormente en este manual de los dos formatos GIF (ver en el
capítulo 9), en
relación a las imágenes con fondo transparente. Allí vimos que el formato GIF
87a no era el
adecuado para ello, sino que lo era el formato GIF 89a.
Estos números
de los formatos hacen referencia a los años en los que se publicaron sus
respectivas
especificaciones (1987 y 1989).
En 1989 se
estableció la posibilidad de la existencia de colores transparentes, así como
que un
fichero GIF
pudiera contener internamente múltiples imágenes, visibles durante un tiempo
determinado,
con lo que se podía obtener una imagen animada. Pero esta interesante
característica
permaneció prácticamente en el olvido hasta finales de 1995, cuando Netscape la
implementó en
su navegador, adquiriendo muy pronto una gran popularidad.
Hay otros tipos
de animaciones, como las obtenidas con:
Quicktimes, FLIC, AVI, etc., que tienen el
gran inconveniente de que requieren, para poder
ser contempladas, de programas auxiliares
previamente instalados.
Java, que requiere un nivel de
conocimientos de este lenguaje de programción que no está
al alcance de cualquiera.
Las animaciones basadas en los servidores,
que tienen el inconveniente de que consumen
el ancho de banda e incrementan el tráfico
de datos, debido a que deben estar alimentando
continuanemte la animación desde el
servidor.
Las animaciones
basadas en el formato GIF 89a eliminan todos estos problemas, pues:
No requieren de ningún programa auxiliar,
siempre que se utilice el navegador adecuado
para poder contemplarlas.
Son tan fáciles de utilizar en una página
del Web como cualquier imagen GIF fija.
No incrementan el tráfico de datos, pues
el usuario la carga de una sola vez y se ejecutan
luego desde el caché del navegador.
Programas para crear
animaciones
Para crear una
animación, en primer lugar, hay que crear una a una las distintas imágenes que
van a
constituir la animación. Cualquier programa gráfico que sea capaz de guardar
las
imágenes en
formato GIF es válido para este propósito.
En segundo
lugar, es necesario un programa que ensamble estas imágenes individuales de una
manera
apropiada para crear la animación. Los programas más utilizados para ello son:
Windows:
GIF Construction Set (Win3.1x
y Win95)
Gif Animator de Microsoft
(Win95)
Mac:
GifBuilder
Unix:
WhirlGIF
Ejemplo de
animación
Se va a mostrar
el proceso de creación del icono animado workanim.gif
Partimos del
icono:
trabaj-0.gif
Vamos a hacer
una animación en la que:
1.el trabajador levanta la pala
2.la baja a la posición intermedia (pero sin
caída de cascotes)
3.la baja más hasta el nivel del suelo (con
la desaparición del montón de cascotes)
4.la vuelve a subir hasta la posición
inicial
Necesitamos,
por tanto, crear tres nuevas imágenes para los pasos 1-3.
Con un programa
gráfico (en este caso se ha utilizado el Paint Shop Pro 3.12), se ha manipulado
la imagen original
para obtener las siguientes imágenes:
trabaj-1.gif
trabaj-2.gif
trabaj-3.gif
Para ensamblar
las imágenes en una animación se va utilizar el programa para Windows GIF
Construction
Set.
1.Seleccionamos File/New para crear una nueva
animación. Vemos que aparece Header
GIF 89a Screen (640x480). Esto es la
cabecera de la pantalla (screen), en la que se va
a desarrollar la animación, que por
defecto tiene las dimensiones indicadas. Podemos
considerarla como la pantalla de una
película. Si la animación va a consistir, por ejemplo,
en un objeto que se desplaza, damos a la
pantalla las dimensiones adecuadas, y vamos
situando el objeto en las distintas
posiciones que queramos (Véase un ejemplo de
animación de este tipo, en la que un
objeto de 13x13 se desplaza por una pantalla de
365x13).
No es el caso que nos ocupa, en el que
vamos es sustituir unas imágenes por otras, todas
de las mismas dimensiones (40x40) y en el
mismo sitio. Por tanto, le damos a la pantalla
esas mismas dimensiones, pulsando 'Edit' y
modificando 'Screen width=40' y 'Screen
depth=40'.
2.Una vez definida la pantalla, vamos a
colocar la primera imagen de la animación
(trabaj-0.gif). Para ello pulsamos INSERT
y luego IMAGE y buscamos dicha imagen.
Como la paleta de 16 colores de esta
imagen que insertamos no se corresponde con la
paleta de 256 colores que tiene por
defecto la pantalla, nos presentan en un cuadro de
diálogo diversas opciones. Escogemos 'Use
this image as the global palette', con lo que la
pantalla y las demás imágenes que
insertemos tendrán la paleta de esta imagen, y no habrá
problemas de incompatibildad de colores.
3.Antes de cada imagen debe ir un bloque de
control que, como vamos a ver, sirve para
indicar sus características dentro de la
secuencia de la animación.
Para insertar este bloque, se señala el
inmediato superior (en este caso el bloque HEADER),
se pulsa INSERT y se escoge CONTROL. La
secuencia de bloques, es de momento:
HEADER GIF 89a Screen 40x40
CONTROL
IMAGE trabaj-0.gif 40x40 16
colours
Para ajustar los valores
del bloque CONTROL, se señala éste y se pulsa EDIT. En el cuadro
de diálogo que aparece, marcamos:
'Transparent Colour' y con el icono
que representa un cuentagotas, señalamos el
color gris que rodea a la imagen, y
que no queremos que aparezca.
Para ajustar el tiempo de aparición de
esta imagen en la animación se debe poner un
número en la ventana 'Delay', que
representa centésimas de segundo. De momento
ponemos 50 (que es medio segundo).
Por último, en la ventana 'Remove by'
escogemos 'Nothing'. Esto es para indicar qué
debe sustituir a una imagen. En este
caso, como se trata de imágenes que no se
desplazan, escogemos la opción
'Nothing' (nada). Pero en el caso del ejemplo visto
anteriormente, de una bola que se
desplaza por la pantalla, habría que haber escogido
'Background' (fondo), para que el
lugar ocupado por una imagen sea reemplazado por
el fondo de la página.
4.Se repite este proceso con las otras tres
imágenes. Los bloques de CONTROL deben ser
todos iguales al que hemos visto. La
secuencia de bloques queda, de momento así:
HEADER GIF 89a Screen 40x40
CONTROL
IMAGE trabaj-0.gif 40x40 16
colours
CONTROL
IMAGE trabaj-1.gif 40x40 16
colours
CONTROL
IMAGE trabaj-2.gif 40x40 16
colours
CONTROL
IMAGE trabaj-3.gif 40x40 16
colours
5.Con lo visto
anteriormente ya tenemos una secuencia completa. Pero si queremos que esta
secuencia se repita más de una vez, hay
que insertar un bloque llamado LOOP (lazo).
Señalamos el bloque HEADER, pulsamos
INSERT y escogemos LOOP. Lo podemos editar, y
vemos que se puede determinar un número
concreto de repeticiones (Iterations). Lo
dejamos con el número por defecto 1000.
Con esto queda la secuencia de bloques
definitiva, como sigue:
HEADER GIF 89a Screen 40x40
LOOP
CONTROL
IMAGE trabaj-0.gif 40x40 16
colours
CONTROL
IMAGE trabaj-1.gif 40x40 16
colours
CONTROL
IMAGE trabaj-2.gif 40x40 16
colours
CONTROL
IMAGE trabaj-3.gif 40x40 16
colours
6.Ya se puede guardar la
animación. Lo hacemos con el nombre workanim.gif. La
cargamos en el navegador para ver el
efecto. Vemos que no es conveniente que el tiempo
sea el mismo para todas las imágenes.
Después de una serie de pruebas, se varían los
tiempos en los bloques de Control de la
siguiente manera:
trabaj-0.gif --> 10
trabaj-1.gif --> 30
trabaj-2.gif --> 120
trabaj-3.gif --> 25
y se guarda el fichero una vez más, de
manera definitiva. Esta es la animación:
Consideraciones
finales
En los navegadores que no soportan
animaciones se verá únicamete la primera imagen.
Hay algunas versiones de Netscape en las
que no funciona la limitación de secuencias que
se indica en el bloque LOOP, funcionando
la animación indefinidamente. En los casos en
que sí funcione, hay que tener en cuenta
que cuando se pare, lo hará en la última imagen.
Como un GIF animado es un fichero de
imagen como otro cualquiera, se pueden capturar
con
la misma facilidad que los demás.
Cuando veamos un GIF animado que nos llame
la atención, es muy conveniente capturarlo
y cargarlo en el programa correspondiente,
para estudiar la secuencia de las distintas
imágenes y sus carcterísticas.
Si se quiere saber más sobre animaciones,
el sitio más indicado es: GIF Animation on the
WWW de Royal Frazier, uno de sus
principales impulsores.
Este sitio está replicado y traducido al
español por la E.T.S.I.M.O. de la Universidad de
Oviedo.
Ejemplo práctico
Si disponemos
de alguno de los programas ensambladores de animaciones indicados, para
practicar,
podemos capturar las cuatro imágenes que componen la animación, y seguir los
pasos indicados
para crearla. Si no es así, podemos capturar directamente el GIF animado
workanim.gif
Partiendo del
ejemplo práctico de la lección anterior mipag11.html, añadimos entre las
etiquetas
<HR> y <BODY>, situadas al final, lo siguiente:
<P><HR>
<H2>¡Sitio
del Web en obras!</H2>
<IMG SRC="workanim.gif">
<P><HR>
Guardamos este
fichero como mipag12.html y lo cargamos en el navegador para verlo.
Resultado.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
------------------------------------------
13. Mapas
Hemos visto
anteriormente dos maneras distintas de enlazar una página con otra: por medio
de un enlace de
texto (capítulo 3) o por medio de una imagen (capítulo 4). Pero en este último
caso se hacía
uso de una imagen para enlazar a una única página.
Se puede
utilizar una única imagen para enlazar con varias páginas, yendo a una u otra
según la
zona en donde
se pulse el ratón. Este tipo de imágenes se llaman mapas.
Veremos cómo se
crea un mapa partiendo de una imagen, y cómo se implementa dicho mapa con
el lenguaje
HTML en nuestra página.
Hay dos tipos
de mapas:
1.Mapas gestionados por el servidor
2.Mapas gestionados por el cliente
Mapas gestionados por el
servidor
En este tipo de
mapas al desplazar el cursor sobre la imagen que forma el mapa se van
obteniendo las
distintas coordenadas. Cuando se pulsa el ratón en un punto determinado, el
navegador envía
esas coordenadas al servidor, y éste comprueba en un fichero MAP (situado en
en su
directorio cgi-bin) cuál es la página que se corresponde con estas coordenadas,
envía esta
información al
navegador, y éste solicita a su vez al servidor que le enlace con dicha página.
Estos mapas,
que fueron los que aparecieron inicialmente, tienen una ventaja: que pueden ser
utilizados por
todos los navegadores, incluso por las versiones más antiguas.
Pero tienen
varios inconvenientes: No todos los servidores tienen implementado el programa
CGI necesario
para que pueda funcionar un mapa de este tipo. Además hay que conocer el tipo
de servidor
(NCSA, el más común, o CERN), pues el código a aplicar es distinto en un caso u
otro.. Por otra
parte, al requerir un trasiego de información entre el navegador y el servidor,
el
tiempo de
respuesta es mayor que en el otro tipo, como veremos.
Para más
información sobre este tipo de mapas:
The Imagemap Help Page
Mapas
gestionados por el cliente
Estos mapas son
gestionados por el cliente (es decir, nuestro navegador) y no por el servidor,
como en el caso
anterior.
En este tipo de
mapas, al ir desplazando el cursor se observa que en ciertas zonas se convierte
en el símbolo
normal para enlazar con otras páginas (una mano, habitualmente). Si se pulsa en
estas zonas
activas (hotspots), el navegador consulta con el documento HTML que ha
recibido,
y decide a qué
página o dirección corresponde esa zona activa.
Es decir, no
necesita enviar la información al servidor y esperar la respuesta de éste, con
lo que
el proceso es
más rápido que en el caso anterior, reduciéndose además el tráfico de datos y
la
sobrecarga al
servidor. Otras ventajas son que al pasar por una zona activa se muestra la
dirección a la
que se corresponde (al contrario que en el caso anterior, en la que sólo se ven
unas
coordenadas). Además, estos mapas se pueden utilizar off-line, al contrario
también que en
el otro tipo,
ya que no requieren la ayuda del servidor.
Pero tiene el
inconveniente de que estos mapas no son implementados por todos los
navegadores,
como en el caso anterior, aunque sí por la mayoría de los utilizados
actualmente,
desde las
versiones siguientes: Netscape 2.0, Microsoft Explorer 2.0, Mosaic 2.1, etc.
Pero se
puede obviar
este inconveniente suministrando enlaces alternativos para los navegadores que
no implementen
este tipo de mapas, como veremos.
En lo que
sigue, vamos a ver exclusivamente cómo implementar este tipo de mapas, es
decir,
mapas
gestionados por el cliente (client-side image maps).
Confección de la imagen
del mapa
Antes que nada,
es necesario confeccionar la imagen que va a servir como mapa. Se hará con
un programa
gráfico, y pueden utilizarse los formatos GIF o JPG (ver el capítulo 9).
Vamos a crear
una mapa para utilizarlo en el ejemplo práctico de este capítulo, con dos zonas
activas
rectangulares que enlancen con los ejemplos prácticos de los capítulos 2 y 3.
Se confecciona
con un programa gráfico la imagen que
nos va a
servir como mapa, tal como la situada a la
izquierda, que
todavía no es un mapa.
Para definir
un área activa rectangular, necesitamos
conocer las
coordenadas de su ángulo superior
izquierdo y
las de su ángulo inferior derecho.
Estas
coordenadas las obtenemos con el programa gráfico con el que hemos
confeccionado la
imagen. Estos
valores son los siguientes:
Para la primera
zona activa "Mis aficiones": (46,40) y (250,75)
Para la segunda
zona activa "Mis páginas favoritas": (46,100) y (250,135)
Ya tenemos los
datos necesarios para escribir el código HTML que convierta esta imagen en un
mapa.
Código HTML para definir un mapa
gestionado por el cliente
En este caso,
el código que debemos escribir es el siguiente:
<MAP
NAME="mi_mapa">
<AREA SHAPE="RECT" COORDS="46,40,250,75"
HREF="mipag2.html">
<AREA SHAPE="RECT" COORDS="46,100,250,135"
HREF="mipag3.html">
<AREA SHAPE="DEFAULT" NOHREF>
</MAP>
<IMG
SRC="pulsadr1.gif" USEMAP="#mi_mapa">
Que da como
resultado:
Veamos ahora
cada una de las etiquetas:
<MAP
NAME="mi_mapa">
Esta es la
etiqueta de apertura del mapa, y en donde se define su nombre.
<AREA SHAPE="RECT" COORDS="46,40,250,75"
HREF="mipag2.html">
Esta etiqueta
define la primera zona activa. Se indica que su forma (shape, en inglés) es
rectangular, y
que las coordenadas de su ángulo superior izquierdo son (46,40), y que las del
ángulo inferior
derecho son (250,75). A continuación se indica cuál es enlace que se desea
obtener, en
este caso con la página mipag2.html.
La siguiente
etiqueta es análoga, y se refiere a la segunda zona activa.
<AREA SHAPE="DEFAULT" NOHREF>
Con esta
etiqueta se define el área completa del mapa, indicando que su forma es la que
tiene
por defecto
(default), o sea rectangular. Si se quisiera que el mapa no abarcara la
totalidad de
la imagen, o
incluso que tuviera una forma distinta, habría que indicarlo aquí, en lugar de
la
instrucción
DEFAULT, haciendo uso del mismo tipo de instrucciones que las de las zonas
activas.
A continuación
se indica, con NOHREF, que el área completa de la imagen es una zona no
activa, excepto
en las áreas definidas anteriormente como activas.
</MAP>
Etiqueta de
cierre del mapa.
<IMG
SRC="pulsadr1.gif" USEMAP="#mi_mapa">
Con esta
etiqueta se solicita primero al servidor que envíe una imagen llamada
pulsadr1.gif.
Con
USEMAP="#mi_mapa" se indica que esta imagen es el mapa definido
anteriormente con ese
nombre, y que
debe actuar en consecuencia a las pulsaciones del ratón, solicitando un enlace
determinado en
las zonas activas, o no haciendo nada en el resto.
Enlaces alternativos de texto
Como se ha
dicho anteriormente, no todos los navegadores implementan este tipo de mapas
gestionados por
el cliente. Por ello, es necesario suministrar unos enlaces alternativos
convencionales
de texto (ver capítulo 3), para obviar este inconveniente.
Por ejemplo, a
continuaciación del mapa, se pueden poner estos dos enlaces de texto,
correspondientes
a las dos zonas activas (reduciendo la fuente, para hacerlo menos
antiestético):
<FONT
SIZE=-1>
<A HREF="mipag2.html">Mis
aficiones</A> |
<A
HREF="mipag3.html">Mis páginas favoritas</A>
</FONT>
Que, una vez de
colocado a continuación del código del mapa y centrado todo, resulta como:
Mis aficiones | Mis páginas favoritas
Zonas activas en forma de
círculos o polígonos
En el ejemplo
que se ha visto anteriormente se han definido las dos zonas activas en forma de
rectángulos.
Pero se pueden definir también estas zonas activas como círculos o como
polígonos.
Para definir
una zona activa circular es necesario conocer las coordenadas de su centro
(x,y) y
la longitud de
su radio (r). Una vez sabidos estos datos, la etiqueta es como sigue:
<AREA
SHAPE="CIRCLE" COORDS="x,y,r"
HREF="dirección_de_la_página">
Para definir
una zona activa poligonal hay que conocer las coordenadas de los distintos
puntos
(x1,y1),
(x2,y2), (x3,y3), etc. Con estos datos, la etiqueta se escribe como sigue:
<AREA
SHAPE="POLYGON" COORDS="x1,y1,x2,y2,x3,y3,..."
HREF="dirección_de_la_página">
Programas editores de
mapas
Hemos visto
cómo se debe escribir el código HTML para convertir una imagen en un mapa.
Pero hay
programas que lo hacen de una manera automática.
Partiendo de
una imagen (confeccionada con un programa gráfico normal), con este tipo de
programas no
hay más que señalar con el ratón qué áreas se desean que sean activas (y qué
forma deben
tener) e indicar los enlaces para cada zona activa. Entonces, el programa
escribe
todo el código
HTML de una forma automática, sin necesidad de tener que suministrar los datos
de las
coordenadas de cada zona activa.
Programas:
Para PC y Unix:
Mapedit.
Para el Mac:
WebMap.
Otras
herramientas para crear mapas.
Ejemplo práctico
Partiendo del
ejemplo práctico de la lección anterior mipag12.html, vamos a sustituir los
dos iconos del
comienzo que enlazan con las páginas "Mis aficiones" y "Mis
páginas
favoritas"
por el mapa que se ha visto anteriormente en este capítulo.
Para ello, es
necesario capturar primero la imagen del mapa, pulsadr1.gif, y guardarla en
el directorio
junto con los otros ejemplos prácticos.
A continuación
hay que sustituir las siguientes etiquetas (situadas al comienzo):
<A
HREF="mipag2.html"> <IMG SRC="hombre.gif">
</A>
<FONT SIZE=+3>Mis aficiones</FONT>
<P>
<A
HREF="mipag3.html"> <IMG SRC="casa.gif">
</A>
<FONT SIZE=+3>Mis páginas favoritas</FONT>
por las
siguientes:
<MAP
NAME="mi_mapa">
<AREA SHAPE="RECT" COORDS="46,40,250,75"
HREF="mipag2.html">
<AREA SHAPE="RECT" COORDS="46,100,250,135"
HREF="mipag3.html">
<AREA SHAPE="DEFAULT" NOHREF>
</MAP>
<CENTER>
<IMG
SRC="pulsadr1.gif"
USEMAP="#mi_mapa">
<BR>
<FONT SIZE=-1>
<A
HREF="mipag2.html">Mis aficiones</A> |
<A
HREF="mipag3.html">Mis paginas favoritas</A>
</FONT>
</CENTER>
Guardamos este
fichero como mipag13.html y lo cargamos en el navegador para verlo.
Resultado.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
--------------------------------------
14. Frames
Frames (en
inglés, marcos o cuadros) es un procedimiento del lenguaje HTML para dividir la
pantalla en diferentes
zonas, o ventanas, que pueden actuar independientemente unas de otras,
como si se
trataran de páginas diferentes, pues incluso cada una de ellas pueden tener sus
propias barras
deslizadoras. Los navegadores que lo implementan son el Netscape 2.0, y el
Explorer 2.0 en
adelante. Aunque no está incluido en el actual estándar HTML 3.2, está previsto
que lo esté en
el próximo (Cougar).
Una de sus
características más importantes es que pulsando un enlace situado en un frame,
se
puede cargar en
otro frame una página determinada. Esto se utiliza frecuentemente para tener un
frame estrecho
en la parte lateral (o superior) con un índice del contenido en forma de
diferentes
enlaces, que, al ser pulsados cargan en la ventana principal las distintas
páginas. De
esta manera se
facilita la navegación entre las páginas, pues aunque se vaya pasando de unas a
otras, siempre
estará a la vista el índice del conjunto.
Para comprender
los distintos conceptos vamos a desarrollar un ejemplo, creando una página
con dos frames.
El de la izquierda va a servir de índice de lo que veamos en el de la derecha,
y
en éste veremos
inicialmente una página de presentación. Se podrá acceder también aquí a la
página personal
creada en los capítulos anteriores (mipag13.html), si se pulsa un enlace en el
frame de la
izquierda.
Documento de definición de
los frames
Lo primero que
tenemos que hacer es crear un documento HTML en el que definiremos cuántas
zonas va a
haber, qué distribución y tamaño van a tener, y cuál va ser el contenido de
cada una
de ellas.
En el ejemplo
que vamos a desarrollar, la página va a tener dos frames distribuidos en
columnas (es
decir, uno al lado del otro, en vez de uno encima del otro, lo que sería una
distribución en
filas).
Con respecto al
tamaño, haremos que el primero (el del izquierda) ocupe el 20% del ancho de
la pantalla, y
el otro, el 80% restante.
Y con respecto
al contenido, el frame de la izquierda va a contener un documento HTML que
va a servir de
índice de lo que veamos en el otro (y que vamos a llamar mipagind.html), y el
de la derecha
otro documento HTML que va a servir de página de presentación (al que
llamaremos
mipagpre.html).
Todo lo
anterior se refleja en el siguiente documento HTML:
<HTML>
<HEAD>
<TITLE>Mi pagina con frames</TITLE>
</HEAD>
<FRAMESET COLS="20%, 80%">
<FRAME SRC="mipagind.html">
<FRAME SRC="mipagpre.html" NAME="principal">
</FRAMESET>
</HTML>
Obsérvese lo
siguiente:
Es un documento parecido a los que
conocíamos hasta ahora. La diferencia está en que en
vez de utilizar la etiqueta BODY, que
sirve normalmente para delimitar lo que se va a ver en
la pantalla, se hace uso de la etiqueta
FRAMESET (definir los frames).
En este caso, con la etiqueta <FRAMESET
COLS="20%, 80%"> se define que va a haber dos
frames y que van a ir en columnas. Si
hubiéramos querido que fueran en filas, habríamos
puesto ROWS (filas, en inglés). También se
define el espacio en anchura que van a ocupar
cada uno de ellos en la pantalla. Se ha
puesto como porcentajes del total, pero se podría
también haber puesto una cifra absoluta,
que representaría el número de pixels a ocupar.
Ya se ha definido el número de frames, su
distribución y su tamaño, pero falta por definir
el contenido de cada frame. Esto se hace
con las etiquetas:
<FRAME
SRC="mipagind.html">
<FRAME
SRC="mipagpre.html" NAME="principal">
Con esto se define que el
contenido del primer frame (el de la izquierda) sea el documento
HTML mipagind.html y el del segundo (el de
la derecha) sea el documento HTML
mipagpre.html.
Obsérvese que en la etiqueta del segundo
se ha incluido el atributo NAME="principal",
pero no así en el primero. El motivo es
que se necesita dar un nombre al segundo frame,
pues, como veremos a continuación, en el
documento del primer frame va a haber unos
enlaces que van a ir dirigidos hacia él.
En este caso sólo tenemos dos frames, pero podría
haber más, y es necesario distinguirlos
unos de otros. Y el primero no necesita nombre,
pues no va a haber enlaces en el segundo
dirigidos hacia él.
A este
documento le vamos a llamar mipagina.html, pero todavía no lo vamos a guardar,
pues
falta por
añadir algo que veremos más adelante.
Documentos HTML de cada
frame
Necesitamos
ahora confeccionar el documento HTML de cada uno de los frames. Recuérdese
que son como
páginas independientes, que pueden tener cada una su propio fondo, etc., y todo
lo que queramos
añadir en ellos y que hemos aprendido hasta ahora.
Documento del
frame de la izquierda
Va a tener un
fondo amarillo, y va a contener dos enlaces dirigidos al frame de la derecha.
Además, como
muestra de que se puede añadir cualquier cosa en un frame, vamos a incluir este
logo animado
(glogoan2.gif):
<HTML>
<HEAD>
<TITLE> Indice </TITLE>
</HEAD>
<BODY BGCOLOR="#FFBB00">
<P><A HREF="mipagpre.html"
TARGET="principal"> Presentación </A>
<P><A HREF="mipag13.html"
TARGET="principal"> Mi página </A>
<P><IMG SRC="glogoan2.gif">
</BODY>
</HTML>
Dentro de las
etiquetas de los enlaces podemos observar algo nuevo, y es el atributo TARGET
(en inglés:
objetivo, blanco), que sirve para hacer que al ser activado el enlace no se
cargue
en el propio
frame, sino en otro, precisamente en el que hayamos llamado con ese nombre en
el documento de
definición de los frames.
En nuestro
caso, le hemos dado el nombre de "principal" al frame de la derecha,
y es por tanto
ahí donde se
van a cargar los documentos HTML.
Guardamos este
documento con el nombre de mipagind.html. Además, capturamos la imagen
glogoan2.gif, y
la guardamos junto con el documento.
Documento del
frame de la derecha
Va a tener un
fondo negro, y va a contener sólamente un texto. En capítulos posteriores se
irán
añadiendo aquí
más cosas.
<HTML>
<HEAD>
<TITLE> Presentacion </TITLE>
</HEAD>
<BODY BGCOLOR="#000000" TEXT="#0000FF">
<CENTER>
<FONT SIZE=+3><STRONG>
<P>ESTA
ES LA VERSION
<BR><FONT COLOR="#FF0000">CON FRAMES</FONT>
<BR>DE MI
PAGINA
</STRONG>
</FONT>
</CENTER>
</BODY>
</HTML>
Guardamos este
documento con el nombre de mipagpre.html
Alternativa para los navegadores que
no soportan frames
Con lo visto
anteriormente, ya tenemos las tres piezas que necesitamos:
Documento de definición de los frames
Documento del contenido del primer frame
Documento del contenido del segundo frame
En teoría no
necesitamos nada más. Sólo queda un detalle: ¿Qué ocurriría con los navegadores
que no soportan
los frames? Pues que al desconocer las etiquetas FRAMESET y FRAME del
documento de
definición, no podría ejecutarlo y no podría cargar la página.
Para estos
casos está prevista la etiqueta <NOFRAMES> y </NOFRAMES>. Se añaden
al final del
documento de
definición de los frames, y a se pone entre ambas lo que queremos que vean los
que acceden con
un navegador que no soporta frames. Puede incluso ser el código HTML de
una página
completa (lo que normalmente va entre las etiquetas <BODY> y
</BODY>)
En nuestro
caso, vamos a poner un mensaje advirtiendo de esta circunstancia, y dirigiendo
al
usuario, con un
enlace normal, hacia la página mipag13.html.
(También
podríamos no decir nada sobre frames, y colocar aquí el código de la página de
presentación,
pero añadiendo un enlace a mipag13.html, para que se pueda pasar de
página)
<NOFRAMES>
Estas
utilizando un navegador que no soporta frames.
<P>Pulsa
para visitar mi <A HREF="mipag13.html"> página</A>.
</NOFRAMES>
Lo incluimos
dentro del documento de definición de los frames, que hemos visto antes, y que
queda de esta
manera:
<HTML>
<HEAD>
<TITLE>Mi pagina con frames</TITLE>
</HEAD>
<FRAMESET COLS="20%, 80%">
<FRAME SRC="mipagind.html">
<FRAME SRC="mipagpre.html" NAME="principal">
</FRAMESET>
<NOFRAMES>
Estas
utilizando un navegador que no soporta frames.
<P>Pulsa
para visitar mi <A HREF="mipag13.html"> página</A>.
</NOFRAMES>
</HTML>
Ahora sí
podemos guardar este documento con el nombre de mipagina.html.
Si lo cargamos,
este es el resultado con frames (para los navegadores que los soportan).
Se puede
comprobar cómo cambiamos de página en el frame de la derecha, según el enlace
que
pulsemos en el
frame de la izquierda.
Los que no los
soportan verían esto otro (Está forzado para que lo vean todos los
navegadores,
incluso los que soportan frames).
Con este
ejemplo práctico hemos aprendido la estructura básica de los frames, pero no
hemos
utilizado todas
sus posibilidades. A continuación se detallan los distintos atributos que se
pueden añadir a
las etiquetas.
Atributos de la etiqueta
<FRAMESET>
La etiqueta
FRAMESET, como hemos visto en el ejemplo, es la que define la distribución, el
número y tamaño
de los frames. Tiene dos atributos: COLS (columnas) y ROWS (filas):
<FRAMESET COLS="xx, yy, zz, ..">
<FRAMESET ROWS="xx, yy, zz, ..">
Define la distribución de
los frames en columnas o en filas, según se use uno u otro
atributo.
Define el número de frames que habrá,
pues, por ejemplo:
<FRAMESET COLS="xx, yy">
(habrá dos frames en columnas)
<FRAMESET COLS="xx, yy,
zz"> (habrá tres frames en columnas)
Define el tamaño de los frames, según el
valor que demos a xx, yy, zz.... Este valor
se puede expresar en:
Un porcentaje del ancho del pantalla
(para las columnas), o del alto de la pantalla
(para las filas). Así, por ejemplo:
<FRAMESET COLS="%20,
%80"> (la columna de la izquierda ocupará el 20% del
ancho de la pantalla, y la de la
derecha el 80% restante)
<FRAMESET ROWS="%10, %70,
%20"> (la fila superior ocupará el 10% del alto de la
pantalla, la del medio el 70%, y la inferior el 20%)
Un número absoluto que representa el
número de pixels que ocupará cada frame a lo
ancho o a lo alto (según sean filas o
columnas). Así, por ejemplo:
<FRAMESET COLS="40, 600">
(la columna de la izquierda tendrá 40 pixels de ancho
y la de la derecha 600). Pero es
peligroso utilizar sólo valores absolutos, pues el
tamaño de la pantalla varía de un
usuario a otro. Si se va a usar algún valor absoluto
para un frame, es mejor mezclarlo con
alguno relativo, como los que vamos a ver a
continuación, para que se ajuste el
total a la pantalla del usuario
Un valor relativo que se consigue
poniendo un asterisco (*), en vez de un número.
Esto se interpreta como que ese frame debe tener el espacio
restante. Por ejemplo:
<FRAMESET
ROWS="100,*,100"> (Habrá tres filas, la superior y la inferior de
una
altura fija de 100 pixels, y la del
medio obtendrá el espacio restante).
Si hay más de un frame con asterisco, ese espacio restante se dividirá
por igual entre
ellos.
Si hay un número antes del asterisco,
ese frame obtiene esa cantidad más de espacio
relativo. Así "2*,*" daría
dos tercios para el primer frame y un tercio para el otro.
Frames sin bordes
Si se desea que
no haya un borde de separación entre los frames, se deben incluir el atributo
FRAMEBORDER=0
dentro de la etiqueta FRAMESET. No todas las versiones de los navegadores lo
implementan.
Para que
también desaparezcan los huecos de separación entre frames hay que añadir otros
dos
atributos (el
primero es para el Explorer y el segundo para el Netscape): FRAMESPACING=0 y
BORDER=0. con
lo que la etiqueta completa quedaría:
<FRAMESET FRAMEBORDER=0 FRAMESPACING=0 BORDER=0 COLS="xx,
yy">
Atributos de la
etiqueta <FRAME>
Esta etiqueta
define las cararacterísticas de un frame concreto, no del conjunto de los
frames,
como era el
caso con la etiqueta <FRAMESET>. Puede tener los siguientes posibles
atributos, que
van dentro de
la etiqueta <FRAME>:
SRC="dirección". Esta dirección
puede ser la de un documento HTML (tal como hemos
utilizado en el ejemplo), o cualquier otro
recurso del Web (o URL). Con este atributo se
indica lo que se cargará inicialmente en
el frame.
Si no se le pone este atributo a la
etiqueta <FRAME>, entonces dicho frame aparecerá
inicialmente vacío, aunque tendrá las
dimensiones asignadas.
NAME="nombre_de_la_ventana".
Este atributo se usa para asignar un nombre a un frame.
De esta manera se podrá "dar en el
blanco" (en inglés, target) en esta página, desde un
enlace situado en otra página. Es decir,
que pulsando en otra página un enlace, se cargará
precisamente en ésta, tal como hemos visto
en el ejemplo.
El atributo NAME es opcional. Por defecto,
todas las ventanas carecen de nombre. Los
nombres que se escojan deben comenzar por
un carácter alfanumérico (una letra o un
número, pero no otro tipo de símbolo)
MARGINWIDTH="número". Se utiliza
este atributo cuando se quiere controlar la el ancho de
los márgenes dentro de un frame. El número
que se ponga representa los pixels de los
márgenes. Este atributo es opcional.
MARGINHEIGHT="número". Igual que
el anterior, pero referido a los márgenes en altura.
SCROLLING="yes|no|auto".
Este
atributo se utiliza para decidir si el frame tendrá o no
una barra deslizadora. Si se escoje
"yes" tendrá siempre una barra deslizadora. Si se
escoje "no" no la tendrá nunca,
y si se escoje "auto", será el navegador quien decida si la
tendrá o no. Este atributo es opcional. Su
valor por defecto es "auto".
NORESIZE. A este atributo no se le asigna
un valor numérico, como a los demás. Es un
indicador para que la ventana no se pueda
re-dimensionar (en inglés, resize) por parte
del usuario. Se puede comprobar en el
ejemplo con frames que si se coloca el cursor del
ratón entre los dos frames, al pulsarlo y
arrastrarlo en un sentido u otro, varían las
dimensiones prefijadas de los frames. Este
atributo impide que ocurra esto en un frame. Es
un atributo opcional. Por defecto, todos
los frames son re-dimensionables.
FRAMEBORDER="no". Este atributo
elimina el borde en un frame, pero si se quiere que se
elimine completamente, también hay que
ponérselo al frame contiguo. Si se quiere eliminar
los bordes de todos los frames, se debe
colocar en la etiqueta FRAMESET, como hemos
visto anteriormente.
El atributo
TARGET
En el ejemplo
hemos visto que, como queríamos que los enlaces situados en el frame de la
izquierda
surtieran efecto no en él mismo, sino en otro frame, teníamos que poner dentro
de
cada enlace el atributo
TARGET="principal", siendo "principal" el nombre que
habíamos
dado al segundo
frame, en el documento de definición de frames. Es decir, hemos utilizado este
atributo de
esta manera:
TARGET="nombre_dado_a_otro_frame".
Estos nombres,
que los escogemos nosotros, pueden ser cualquiera, pero con la condición que
el primer
carácter sea alfanumérico (letra o número).
Pero hay unos
nombres reservados (es decir, que no se pueden usar para denominar a un
frame), que
hacen que este atributo efectúe unas funciones especiales. Para que cumplan su
cometido, es
imprescindible escribir estas palabras reservadas (blank, self y top) en
minúsculas.
TARGET="_blank".
Hace que se abra una nueva copia del navegador, y el enlace activado se
carga en ella,
a pantalla completa. Es decir, tendríamos dos copias del navegador (Netscape,
Explorer, etc.)
funcionando a la vez.
TARGET="_self".
Hace que el enlace se cargue en el propio frame.
TARGET="_top".
Hace que el enlace se cargue a pantalla completa, suprimiendo todos los
frames, pero
sin que se cargue una nueva copia del navegador. Este es particularmente útil.
Un
error muy común
es olvidarse de poner este atributo en los enlaces que están en un frame, con
lo que resulta
que al ser activados, la página llamada se carga dentro del propio frame, lo
cual
es muy molesto
si esa página pertenece a otro sitio del Web, y aún más grave si esa página
tiene
a su vez
frames. Este inconveniente se evita poniendo este atributo dentro de las
etiquetas de los
enlaces.
Frames anidados dentro de otros frames
Hasta ahora
hemos contemplado sólo la posibilidad de tener una distribución de los frames
bien
en filas o bien
en columnas, (dependiendo que se utilice el atributo ROWS o COLS en la etiqueta
FRAMESET), pero
no ambos a la vez.
Se pueden
obtener distribuciones más complejas anidando filas dentro de una columna, o a
la
inversa,
columnas dentro de una fila.
Supongamos que
queremos la siguiente distribución:
Un frame estrecho en horizontal en la
parte superior, de lado a lado de la pantalla (altura,
el 15%)
Otro frame estrecho en vertical en la
parte izquierda, debajo del anterior (anchura, el
20%)
Un tercero ocupando el resto de la
pantalla.
Vemos que, en
realidad, esto equivale a la siguiente distribución:
Dos filas. La superior ocupa el 15% y la
inferior el resto.
La fila inferior está a su vez dividida en
dos columnas. La primera (la de la izquierda)
ocupa el 20% y la otra, el resto.
El documento de
definición de las dos filas (olvidémonos de momento que la de abajo está
subdividida),
sería:
<HTML>
<HEAD>
<TITLE>Pagina con dos filas</TITLE>
</HEAD>
<FRAMESET ROWS="15%, *">
<FRAME
SRC="documento_fila_superior">
<FRAME
SRC="documento_fila_inferior">
</FRAMESET>
</HTML>
Como la fila
inferior, en realidad, son dos columnas (con una distribución del 20% y resto),
sustituimos
(anidando) la etiqueta <FRAME SRC="documento_fila_inferior">
por:
<FRAMESET
COLS="20%, *">
<FRAME
SRC="documento_columna_izqda">
<FRAME
SRC="documento_columna_dcha">
</FRAMESET>
Con lo que
queda el documento definitvo así:
<HTML>
<HEAD>
<TITLE>Pagina
con fila superior y dos columnas inferiores</TITLE>
</HEAD>
<FRAMESET ROWS="15%, *">
<FRAME
SRC="documento_fila_superior">
<FRAMESET COLS="20%, *">
<FRAME
SRC="documento_columna_izqda">
<FRAME
SRC="documento_columna_dcha">
</FRAMESET>
</FRAMESET>
</HTML>
La distribución
quedaría así
(Se han omitido
los distintos documentos de cada frame)
WebMaestro: http://www.lander.es/webmaestro
- © Francisco Arocena
-----------------------------------------------
15. Sonidos
Una página del
Web puede tener sonidos incorporados, bien sea como un fondo sonoro que se
ejecuta
automáticamente al cargar la página, o como una opción para que la active el
propio
usuario.
Capacidades sonoras de los
navegadores
Para poder
escuchar los sonidos es necesario disponer, como es lógico, de una tarjeta de
sonido con sus
correspondientes altavoces. Pero esto no es suficiente, pues no todos los
programas
navegadores están capacitados en la misma medida.
Explorer de
Microsoft
Es el que está
mejor adaptado para el sonido, pues a partir de la versión 2.0 es capaz de
reproducir
fondos sonoros sin necesidad de añadir nada, y no hay ninguna complicación con
los
servidores,
como ocurre con el Netscape. Además, a partir de la versión 3.0 del Explorer,
es
incluso
compatible con los plug-ins del Netscape.
Netscape
Las versiones anteriores a la 2.0 no son
capaces de reproducir fondos sonoros que se
ejecuten automáticamente, sino que
requerirá que se activen los programas auxiliares
asociados a los formatos .wav o .mid.
La versión 2.0 sí es capaz de reproducir
un fondo sonoro, pero es necesario que tenga
instalado un plug-in llamado Crescendo que
se obtiene en LiveUpdate (Una vez obtenido
hay que instalarlo manualmente en el
directorio 'plugins' del Netscape 2.0).
La versión 3.0 lleva implícito el plug-in
Live Audio (pero sólo la versión completa, no la
reducida). En caso afirmativo, es capaz de
reproducir un fondo sonoro.
Pero a todas estas complicaciones de las
distintas versiones de los navegadores de los
usuarios, hay otra más y es que el
servidor donde esté alojada la página del Web debe
tener configurados como MIME los formatos
.mid y .wav. Si esto no es así, aunque
depositemos en el servidor nuestro
documento HTLM acompañado por el correspondiente
fichero de sonido, éste no se ejecutará.
En dicho caso, es necesario ponerse en contacto
con los administradores del servidor para
que configuren como MIME los formatos .mid y
.wav.
Este problema no existe, sin embargo para
el Explorer, con el que no nos tenemos que
preocupar por este tema.
Hemos visto
hasta aquí las distintas capacidades de los navegadores. Ahora vamos a ver las
etiquetas que
debemos poner en nuestro documento HTML para que se puedan oir los sonidos
en uno y otro
navegador, y que lamentablemente no son iguales, pero que se pueden combinar,
como veremos
más adelante.
Fondo sonoro para el Microsoft
Internet Explorer
Para las
versiones 2.0 en adelante, se utiliza la etiqueta:
<BGSOUND
SRC="fichero_de_sonido" LOOP=n>
El fichero de
sonido puede estar en formato .mid o .wav.
El atributo
LOOP (en inglés, lazo) sirve para especificar el número (n) de veces que se
debe
ejecutar el
fichero de sonido. Si se escoje el número n=-1 o se pone LOOP=infinite, el
sonido
se ejecutará
indefinidamente. Se puede omitir este atributo, y entonces el fichero se
ejecutará
una sola vez.
Ejemplo 1
La etiqueta
para que se ejecute el fichero prv89.mid dos veces en el Explorer es:
<BGSOUND SRC="prv89.mid" LOOP=2>
Este es el
resultado.
(Para poder
oirlo, hay que estar utilizando el Explorer)
Fondo sonoro para el
Netscape
La etiqueta
básica para el Netscape es:
<EMBED
SRC="fichero_de_sonido" WIDTH=xxx HEIGHT=yy>
donde WIDTH es
la anchura y HEIGHT la altura de una consola que aparece, y que tiene
diferentes
teclas (play, stop, pausa, etc.). Más adelante veremos los valores xxx e yy que
debemos
atribuirles.
El fichero de
sonido puede estar en formato .mid o .wav, pero recuérdese la advertencia hecha
anteriormente,
de que estos formatos deben estar configurados como MIME por el servidor
donde esté
alojada la página.
Dentro de la
etiqueta se pueden añadir los siguientes atributos opcionales:
AUTOSTART="true"
(arranca automáticamente)
LOOP="true"
(se ejecuta ininterrumpidamente)
Ejemplo 2
Vamos a ver una
etiqueta para que aparezca en el Netscape una consola con sus teclas.
Pulsando la
tecla play se ejecutará el fichero prv89.mid.
Con respecto a
las dimensiones de la consola, tenemos el problema de que son distintas para
los diferentes
plug-ins que existen para el Netscape, y no sabemos cuál de ellos estarán
usando
los distintos
usuarios de nuestra página. En este ejemplo se van a poner las dimensiones de
la
consola del
plug-in Crescendo del Netscape 2.0 (200 de ancho por 55 de alto), pero es
posible
que si se está
utilizando otro distinto se vean zonas en blanco.
La etiqueta
queda de esta manera:
<EMBED SRC="prv89.mid" WIDTH=200 HEIGHT=55>
Este es el
resultado.
(Para poder ver
la consola, y ejecutar el fichero es necesario utilizar el Netscape 2.0 o
superior, y
tener instalado algún plug-in de sonido)
Ejemplo 3
Vamos a crear
una etiqueta para el Netscape, en la que la consola sea invisible y el fichero
se
ejecute
automáticamente al cargar la página.
Para conseguir
que la consola sea invisible hay que añadirle el atributo
HIDDEN="true".
<EMBED SRC="prv89.mid" HIDDEN="true">
Este es el
resultado.
(Para que se
ejecute el fichero es necesario utilizar el Netscape 2.0 o superior, y tener
instalado algún
plug-in de sonido)
Fondo sonoro combinado para el
Explorer y el Netscape
Se pueden
combinar los dos tipos distintos de etiquetas para conseguir que un fondo
sonoro sea
escuchado por
usuarios que utilicen tanto el Explorer como el Netscape (siempre que éste
último esté
preparado para ello). En este caso, el Explorer ignorará la etiqueta del
Netscape, y
a la inversa.
Ejemplo 4
Vamos a ver las
dos etiquetas necesarias para que se ejecute el fichero prv89.mid como sonido
de fondo, tanto
por el Explorer como por el Netscape (lo hará una sola vez):
<BGSOUND SRC="prv89.mid">
<EMBED SRC="prv89.mid" HIDDEN="true">
Este es el
resultado.
Ejemplo 5
Ahora vamos a
las etiquetas para que el fichero prv89.mid se ejecute como sonido de fondo,
tanto por el
Explorer como por el Netscape y que se ejecute indefinidamente.
A la etiqueta
del Explorer basta con añadirle el atributo LOOP=infinite, como se ha visto
anteriormente.
Y con respecto
a la etiqueta del Netscape, teóricamente debería también bastar añadirle el
atributo
LOOP="true", pero curiosamente esto no es así, porque hay que poner
las dimensiones
de la consola
(que no se va a ver).
Las dos
etiquetas quedan de esta manera:
<BGSOUND SRC="prv89.mid" LOOP=infinite>
<EMBED SRC="prv89.mid" WIDTH=200 HEIGHT=55
AUTOSTART="true" LOOP="true"
HIDDEN="true">
Este es el
resultado.
Activación del sonido por el
propio usuario
Hasta aquí
hemos visto cómo poner un sonido de fondo en una página. Hay otra opción, mucho
más sencilla, y
es la de poner un enlace a un fichero de sonido, de tal manera, que al pulsarlo
se ejecute el
fichero. (Ver el Capítulo 3, en el que se explica cómo crear enlaces).
Por ejemplo, vamos
a poner un enlace al fichero prv89.mid:
Escucha esta
<A HREF="prv89.mid">musica</A>
Que resulta
como: Escucha esta musica
Al pulsar el
enlace se activa, en una ventana aparte, el programa que ejecuta el sonido.
Esto es
válido para
todos los navegadores, incluso las versiones más antiguas, con la única
condición
de que se haya
configurado un programa auxiliar capaz de ejecutar ficheros .mid o .wav.
Se puede hacer
el enlace con un icono (Ver el Capítulo 4)
Ejemplo 6
Vamos a hacer
un enlace con el icono sound1.gif al
fichero de sonido problemo.wav:
<A HREF="problemo.wav"><IMG
SRC="sound1.gif"></A>
Que
resulta:
Mi agradecimiento a Ibane Serna
por su colaboración en la confección de este capítulo.
Puedes visitar su excelente
página del Web, especializada en el tema de sonidos.
Ejemplo práctico
En el capítulo
anterior creamos una versión con frames, en la que aparece inicialmente en el
frame de la
derecha una página de presentación, (que guardamos con el nombre de
mipagpre.html)
Vamos a poner a
esta página una música de fondo (xfiles.mid), para que sea ejecutada por
el Explorer y
el Netscape. Para ello debemos seguir los siguientes pasos:
1) En el
documento mipagpre.html debemos añadir entre las etiquetas </SRONG> y
</FONT>
(situadas al
final), lo siguiente:
<BR><FONT
COLOR="#FF0000">¡Escucha la música de fondo!</FONT>
<BGSOUND SRC="xfiles.mid">
<EMBED SRC="xfiles.mid" WIDTH=2 HEIGHT=0
AUTOSTART="true">
Guardamos este
documento con el nombre mippre15.html
2) El documento
del frame de la izquierda mipagind.html servía de índice de lo que se ve en
el de la
derecha. Como ahora se debe de ver el documento mippre15.html en vez del que
estaba antes
(mipagpre.html), debemos sustituir uno por otro en el documento
mipagind.html,
con lo que queda:
<HTML>
<HEAD>
<TITLE> Indice </TITLE>
</HEAD>
<BODY BGCOLOR="#FFBB00">
<P><A HREF="mippre15.html"
TARGET="principal"> Presentación </A>
<P><A HREF="mipag13.html"
TARGET="principal"> Mi página </A>
<P><IMG SRC="glogoan2.gif">
</BODY>
</HTML>
Guardamos este
documento con el nombre mipind15.html
3) Como han
variado los nombres de los documentos de ambos frames, tenemos que
reflejarlo en
el documento de definición de los frames, y que llamábamos mipagina.html,
con lo que
dicho documento queda ahora así:
<HTML>
<HEAD>
<TITLE>Mi pagina con frames</TITLE>
</HEAD>
<FRAMESET COLS="20%, 80%">
<FRAME SRC="mipind15.html">
<FRAME SRC="mippre15.html" NAME="principal">
</FRAMESET>
<NOFRAMES>
Estas utilizando
un navegador que no soporta frames.
<P>Pulsa
para visitar mi <A HREF="mipag13.html"> página</A>.
</NOFRAMES>
</HTML>
Guardamos este
documento con el nombre mipag15.html. Este es el documento principal
que hay que
cargar, para ver el ejemplo. Pero todavía falta una cosa: tener en nuestro
disco
duro el fichero
xfiles.mid
4) Para
conseguirlo, pulsa este enlace. Obtendrás el fichero xfiles.zip, que es el
fichero
comprimido, y
que por lo tanto hay que descomprimir y guardar junto con los documentos
anteriores.
Cargando el
documento mipag15.html obtendremos el resultado final.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
----------------------------------------------
16. Texto en movimiento
Vamos a ver
distintas soluciones para conseguir texto en movimiento: haciendo uso del
lenguaje
HTML (las
marquesinas), con un GIF animado, con Javascript, etc.
Marquesinas (Marquees)
Una marquesina
(en inglés, marquee) es una ventana en la que se desplaza un texto. Sólo son
válidas para el
Explorer de Microsoft (en el Netscape se verá como texto fijo).
La etiqueta
básica es:
<MARQUEE> Texto que se
desplaza </MARQUEE>
Que resulta
como:
Texto que se
desplaza
Como no hemos
añadido ningún atributo dentro de la etiqueta, el comportamiento de la
marquesina es
el que tiene por defecto: ocupa todo el ancho de la pantalla, tiene la altura
de
una línea y el
texto se desplaza lentamente de derecha a izquierda. Vamos a ver los distintos
atributos que
modifican su apariencia y comportamiento:
WIDHT, HEIGHT
Ajustan la
anchura y altura, respectivamente, de la marquesina. Pueden ser igual a un
número
de pixels, o a
un porcentaje de la pantalla. Ejemplo:
<MARQUEE
WIDTH=50% HEIGHT=60> Esta marquesina ocupa el 50% del ancho de la
pantalla y
tiene una altura de 60 pixels </MARQUEE>
Que resulta
como:
Esta marquesina ocupa el 50% del ancho de
la pantalla y tiene una altura de 60 pixels
ALIGN
Modifica el
alineamiento del texto que rodea a la marquesina, que puede ser TOP (arriba),
MIDDLE (en
medio) o BOTTOM (abajo). Ejemplo:
<MARQUEE
WIDTH=50% HEIGHT=60 ALIGN=BOTTOM>La palabra "¡Hola!" estará
alineada con la
parte inferior de la marquesina</MARQUEE> ¡Hola!
Que resulta
como:
La palabra "¡Hola!" estará
alineada con la parte inferior de la marquesina ¡Hola!
BEHAVIOR
Este atributo
(que quiere decir en inglés comportamiento) sirve para definir de qué manera se
va a efectuar
el desplazmiento del texto. Si es igual a SCROLL (el valor por defecto), el
texto
aparece por un
lado, se desplaza hasta el otro hasta desaparecer por él, y vuelve a empezar
(como los casos
que hemos visto anteriormente). Si es igual a SLIDE, aparece por un lado y se
desplaza hasta
llegar al otro extremo, y se para ahí. Si es igual a ALTERNATE se desplaza
alternativamente
hacia un lado y otro, siempre dentro de los límites de la marquesina. Ejemplo:
<MARQUEE
BEHAVIOR=ALTERNATE>Este texto se mueve a un lado y otro, sin
desaparecer</MARQUEE>
Que se resulta
así:
Este texto se
mueve a un lado y otro, sin desaparecer
BGCOLOR
Con este
atributo se modifica el color de fondo de la marquesina, de acuerdo con el
método
visto en el
Capítulo 7. Ejemplo:
<MARQUEE
BGCOLOR="#FF7070"> Esta marquesina tiene un fondo de color rosa
</MARQUEE>
Que resulta
así:
Esta marquesina tiene un
fondo de color rosa
DIRECTION
Este atributo
sirve para modificar la dirección hacia la que se dirije el texto. Por defecto
es
LEFT
(izquierda). Se puede hacer que el texto se dirija hacia la derecha igualando
este atributo
a RIGHT.
Ejemplo:
<MARQUEE
DIRECTION=RIGHT> Este texto se dirije hacia la derecha </MARQUEE>
Que resulta
como:
Este texto se dirije
hacia la derecha
SCROLLAMOUNT
Define la
cantidad de desplazamiento del texto en cada movimiento de avance, expresado en
pixels. Cuanto
mayor es el número, más rápido avanza. Ejemplo:
<MARQUEE
SCROLLAMOUNT=50> Doy saltos grandes </MARQUEE>
Que se ve como:
Doy saltos
grandes
SCROLLDELAY
Define el
tiempo entre cada movimiento de avance, expresado en milisegundos. Cuanto mayor
es el número
más lento avanza. Ejemplo:
<MARQUEE
SCROLLDELAY =200> Espero mucho entre cada salto </MARQUEE>
Que se ve como:
Espero mucho entre
cada salto
LOOP
Especifica el
número de veces que aparecerá el texto. Es indefinido por defecto.
HSPACE, VSPACE
Definen,
respectivamente, la separación en sentido horizontal o vertical del texto que
está fuera
de la
marquesina.
Como se ha
dicho antes, esta etiqueta no es implementada por el Netscape. El texto que
está
dentro de la
etiqueta de la marquesina se verá en este navegador como texto fijo normal.
Normalmente, si
se hace uso de este recurso es porque se quiere destacar de una manera muy
especial un
texto, lográndose plenamente este objetivo en el Explorer, pero no así en el
Netscape, en
donde dicho texto pasaría totalmente desapercibido. Una manera de paliar este
inconveniente,
al menos en parte, es introducir la etiqueta de la marquesina dentro de una
tabla
(ver el
Capítulo 10). De esta manera, el texto estará en cierta medida destacado en el
Netscape,
y en el
Explorer la marquesina se verá de una manera aún más estética. Ejemplo:
<TABLE
BORDER=1>
<TR><TD>
<MARQUEE>
Marquesina dentro de una tabla </MARQUEE>
</TD></TR>
</TABLE>
Que se verá
como:
Marquesina dentro de una tabla
Texto en movimiento con un
GIF animado
Otro
procedimiento para conseguir texto en movimiento es el de confeccionar un GIF
animado
(ver el
Capítulo 12).
Se puede
conseguir que el texto se desplace realmente, emulando el comportamiento de las
marquesinas,
pero no es fácil conseguirlo, y puede ser bastante laborioso.
Un
procedimiento más sencillo es el siguiente: Creamos el texto apropiado con un
programa
gráfico (tiene
la ventaja sobre las marquesinas de que podemos escoger el tipo de fuente y los
efectos que
deseemos), tal como el siguiente ejemplo (bienv1.gif):
Luego
procedemos a borrar una a una cada palabra (o cada letra si se quisiera), y
vamos
guardando cada
imagen con un nombre distinto, tal como bienv2.gif:
A continuación
borramos la palabra "del" y guardamos la imagen como bienv3.gif, y
así con
el resto, hasta
bienv7.gif en donde se habrían borrado todas las palabras.
Luego
procedemos a montar la secuencia de las imágenes en algún programa para crear
GIFs
animados, como
por ejemplo en el GIF Construction Set . El orden será el inverso:
bienv7.gif -
bienv6.gif - ... - bienv2.gif - bienv1.gif
Se le añade un
LOOP (lazo, para repetir la secuencia) y se ajustan los tiempos de cada imagen.
Cuando esté
todo a nuestro gusto, salvamos el GIF animado con el nombre de bienvend.gif.
Este es el
resultado.
Otra variante
puede ser, partiendo igualmente de la imagen inicial bienv1.gif, dejar sólo una
palabra en cada
imagen, habiendo borrado el resto, y hacerlo con cada una de ellas. Con esto se
consigue una
apariencia mayor de movimiento en el texto, tal como en este otro ejemplo.
Texto en movimiento con
Javascript
Otra manera de
conseguir texto en movimiento es haciendo uso de Javascript. Vamos a ver dos
ejemplos: un
scroll (deslizamiento) de un texto en la barra de estado del navegador y un
scroll
en una ventana
dentro de la página.
Esto está
implementado en los siguientes navegadores:
Netscape, versión 2.0 o superior.
Explorer de Microsoft 3.0 o superior.
El Javascript
es un lenguaje distinto del HTML, que es el tema de este manual. En los dos
ejemplos que
vamos a ver a continuación, únicamente se mostrará la manera de incluirlos en
nuestro
documento HTML, pero sin pretender explicar su estructura.
Cómo incluir Javascript en un
documento HTML
Recordemos que
la estructura de un documento HTML es:
<HTML>
<HEAD>
<TITLE>
</TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
El script
(documento) en Javascript lo tenemos que colocar dentro de la cabecera, después
del
título. Es
decir, entre las etiquetas </TITLE> y </HEAD>, contenido dentro de
la etiqueta:
<SCRIPT
LANGUAGE="JavaScript"> </SCRIPT >
Es decir, que
queda de esta manera:
<HTML>
<HEAD>
<TITLE>
</TITLE>
<SCRIPT
LANGUAGE="JavaScript">
[Aquí debe ir colocado el
script]
</SCRIPT >
</HEAD>
<BODY>
</BODY>
</HTML>
Además de esto,
se debe añadir algo dentro de la etiqueta <BODY>, como se indicará en
cada
caso.
Scroll en la barra de
estado
El script es el
siguiente:
<SCRIPT LANGUAGE="JavaScript">
<!--
/// Scroll en la barra de estado, (C) Pedro Maicas, 1996.
var
txt="Esta es la primera linea de texto que se desplaza "
+ " y esta es la segunda, puedes poner
todas las"
+ " que quieras ! ";
function
scroll()
{
window.status = txt;
txt = txt.substring(1,
txt.length) + txt.charAt(0);
window.setTimeout("scroll()",150);
}
//-->
</SCRIPT>
Observación
sobre el texto: Se puede poner el texto en una sola línea, tan larga como se
quiera, siempre
que esté entre " y ";
Pero como no
debe de haber ningún salto de línea, si el texto es demasiado largo, es mejor
dividirlo en
distintas líneas, tal como está en el ejemplo.
Al final de la
última palabra del texto conviene dejar una serie de espacios en blanco, para
que no esté
encadenado el comienzo con el final.
Dentro de la
etiqueta <BODY> se debe añadir el atributo:
onLoad="scroll();"
quedando así:
<BODY onLoad="scroll();">
Este es el
resultado.
Scroll en una
ventana
Ahora vamos a
ver cómo conseguir que se desplace un texto dentro de una ventana de un
formulario. Con
esto se consigue un efecto parecido al de las marquesinas (pero en este caso sí
es implementado
por el Netscape 2.0 o superior).
El script es el
siguiente:
<SCRIPT LANGUAGE="JavaScript">
<!--
/// Scroll en en una ventana, (C) Pedro Maicas, 1996.
var
txt="Esta es la primera linea de texto que se desplaza "
+ " y esta es la segunda, puedes poner
todas las"
+ " que quieras ! ";
function
scroll()
{
document.frm.w.value = txt;
txt = txt.substring(1,
txt.length) + txt.charAt(0);
window.setTimeout("scroll()",150);
}
//-->
</SCRIPT>
Dentro de la
etiqueta <BODY> se debe añadir el atributo:
onLoad="scroll();"
quedando así:
<BODY onLoad="scroll();">
Las etiquetas
para la ventana del formulario son:
<FORM NAME='frm'>
<INPUT TYPE='text' NAME='w'
SIZE=64>
</FORM>
Como la ventana
está situada dentro de la página, debemos colocar estas etiquetas en el sitio
que nos
convenga, dentro de la seción <BODY> </BODY>, mezclado con el resto
del documento
HTML.
Este es el
resultado.
Mi
agradecimiento a Pedro Maicas, autor de estos dos programas en Javascript (que
son de libre uso y distribución). Puedes
ver otros
interesantes ejemplos en su página del Web, en la sección Programación
(Javascript).
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
-----------------------------------------------
17. Publicación y promoción de una
página
Este capítulo
trata de responder a estas dos preguntas básicas:
¿Cómo coloco mi
página en la red?
¿Cómo doy a
conocer a los demás la existencia de mi página?
Publicación de una
página
El propósito
que tenemos al confeccionar una página del Web es, por supuesto, el de
publicarla
y ponerla a
disposición de todo el mundo.
No podemos
colocarla directamente en la red, pues necesitaríamos disponer para nosotros
solos de un
servidor, es decir, un ordenador conectado permanentemente con Internet y
dotado
de un programa
específico, lo que supone una gran inversión económica y unos elevados
conocimientos
técnicos.
La solución es
instalarla en un servidor conectado a la WWW (World Wide Web: la telaraña
mundial), la
red de servidores interconectados entre sí que nos permite acceder a cualquier
página en
cualquier parte del mundo, y navegar a través de ellas.
Los distintos
canales para colocar una página en la red son:
Los servidores de las instituciones
oficiales y académicas a sus miembros, para la
difusión de información relacionada con
esos organismos.
Los proveedores comerciales de acceso a
Internet, o ISPs (Internet Service Providers)
que ceden frecuentemente a sus usuarios un
espacio determinado en sus servidores, para
que puedan colocar sus páginas personales,
bien sea gratuitamente o por una tarifa
determinada.
Las empresas comerciales que, sin ser
proveedores de acceso a Internet, se dedican a
alquilar espacio para la colocación de
páginas, de carácter personal o comercial.
Ciertos servidores que conceden de una
manera gratuita espacio para la colocación de
páginas personales. Uno de los más
populares es Geocities, que concede un espacio de 2
megas. Sus páginas explicativas está en
inglés, pero se pueden consultar las instrucciones
en castellano en la FAQ de WEB-ES, de
Alonso Alvarez.
Puedes encontrar muchos más servidores que
conceden páginas gratuitas consultando:
Agenda de Direcciones de HTML, de Manuel
Barberán. Detallada lista de servidores
gratuitos, algunos de ellos en castellano.
Yahoo! Relación de servidores gratuitos de este conocido motor de
búsqueda.
¿Cómo se envían las páginas al
servidor?
Una vez de
haber confeccionado en nuestro disco duro la página Web, y estando ya lista
para
ser colocada en
el servidor, surge la cuestión de cómo proceder para enviarla.
No se pueden
dar aquí unas instrucciones precisas, pues depende de la manera establecida
para
ello por cada
servidor. Generalmente se hace utilizando un programa de FTP (programa de
envío y
recepción de ficheros). Pero antes habrá que consultar en las páginas del
servidor si
existen las
instrucciones pertinentes para el envío, o en su defecto realizar la consulta
por email
o por teléfono.
Promoción de una
página
No basta con
colocar nuestra página en la red. Por muy interesante que sea su contenido, y
por
bien diseñada
que esté, para que los demás puedan acceder a ella tienen que tener
conocimiento
de su
existencia. Es una labor nuestra la de promocionar la página, es decir, darla a
conocer
por todos los
medios posibles.
Para comenzar,
es conveniente incluir la dirección (o URL) de la página en la firma de nuestro
programa de
email, así como también en el de lectura de newsgroups, y mejor aún si además
se
incluye su
título, o una frase que indique el contenido de la página. De esta manera se
incita a
visitarla al
que esté interesado en ese tema.
Pero el paso
más eficaz es dar de alta a nuestra página en sitios del Web especializados en
almacenar y
organizar direcciones. Estos sitios sirven como bases de datos a donde acude la
gente en
búsqueda de información sobre dónde encontrar las páginas del Web deseadas.
Además, dar de
alta una página en los buscadores es totalmente gratuito.
En líneas
generales, se pueden distinguir dos tipos de estos sitios:
Los que están organizados como
directorios, es decir, que catalogan las páginas por su
contenido en categorías y sub-categorías.
Para darse de alta en ellos, es necesario situarse
primero en la categoría apropiada al
contenido de nuestra página. Estos sitios sólo
contienen las páginas de quienes se hayan
dado de alta en ellos de manera voluntaria.
Otros sitios, los llamados motores de
búsqueda (search engines) actúan de una forma
completamente distinta. Utilizan unos
programas (llamados comúnmente robots o arañas)
que tienen la misión de rastrear
continuamente el Web en búsqueda de páginas nuevas o
renovadas. Para ello, van navegando de URL
en URL a través de los enlaces que
encuentran en las páginas, con la
intención de catalogar el número máximo de ellas.
Si uno de estos robots visita nuestra
página del Web, grabará el texto completo de cada
una de las páginas (la principal y las
sub-páginas). De esta manera, todas las palabras de
todas las páginas de nuestro sitio son
incorporadas a su base de datos. Cuando luego
alguien haga una consulta en estos motores
de búsqueda introduciendo una palabra que
coincida con alguna de ellas, presentará
nuestra página del Web como un resultado de la
búsqueda.
Aparte de esto, también se dedicará a
visitar todos los enlaces que vaya encontrado por
las distintas páginas. Es de esta manera
cómo catalogan páginas que no han sido dado de
alta de manera voluntaria en ellos. Sin
embargo, es conveniente que registremos nosotros
mismos nuestra página en estos motores de
búsqueda para acelerar el proceso, y no tener
que esperar a que la encuentren ellos por
medio de enlaces de otras páginas a la nuestra.
Además, una vez que los robots han
localizado un sitio del Web, lo visitarán
periódicamente para renovar la información
grabada.
Consejos para facilitar la labor
a los motores de búsqueda
Hay ciertas
cosas que podemos hacer para conseguir que nuestra página sea catalogada de la
manera más
adecuada en estos motores de búsqueda:
1. Utilizar
palabras clave dentro de la etiqueta <TITLE>, haciendo que sea lo más
descriptivo
posible, porque
cuando un motor de búsqueda presenta una página concreta como resultado de
una búsqueda,
lo hará reproduciendo las palabras que ha encontrado dentro de la etiqueta
<TITLE>
de esa página.
Por ejemplo, en
vez de titular una página como <TITLE> WebMaestro </TITLE>, es más
eficaz
hacerlo como
<TITLE> WebMaestro - Manual de HTML </TITLE>.
2. Utilizar
etiquetas <META>
Son unas
etiquetas que se colocan en la cabecera de la página (en la zona entre
<HEAD> y
</HEAD>),
que sirven para suministrar una información detallada del contenido de una
página,
con lo que se
obtiene un control mayor de cómo será catalogada la página. No todos los
motores de
búsqueda hacen uso de estas etiquetas, pero si las ponemos, las haremos mucho
más
accesibles a
los motores de búsqueda que sí las utilizan.
Hay diferentes
tipos de esta etiqueta, pero las que nos interesan ahora son la que hace
referencia a la
descripción (description) de la página y la que presenta las palabras clave
(keywords) con
las que la gente buscará una página como la nuestra en los motores de
búsqueda.
Veamos por
ejemplo las utilizadas para este manual:
<META NAME ="description" CONTENT="HTML Language
Tutorial in spanish. Manual
para la
creacion de paginas del Web">
En este caso,
lo que está incluido en el atributo CONTENT (contenido) es lo que presentará el
motor de
búsqueda, además del título de la página.
<META NAME="keywords" CONTENT="HTML tutorial WWW Web
spanish Spain html
manual
guia">
En este otro
caso, se incluyen en el atributo CONTENT las palabras claves para la búsqueda
de
nuestra página.
Se pueden poner tantas como se crea oportuno, incluso sus plurales.
La utilización
de estas etiquetas META es especialmente conveniente para las páginas que hacen
uso de frames
(ya que la página inicial es la de definición de los frames, que no tiene
ninguna
indicación del
contenido de las otras páginas). También es muy conveniente para los que
utilizan
Javascript en el comienzo de sus páginas, ya que el código empleado puede tener
cientos de
palabras, y los robots están programados para dar mayor énfasis a las palabras
que
encuentran al
principio que las situadas al final.
3. Poner un
resumen del contenido de la página en el comienzo del texto
Hay motores de
búsqueda que utilizan las primeras 25 palabras del texto de una página a modo
de presentación
de su contenido. Conviene, por tanto, hacer un breve resumen al inicio de la
página, lo que
por otra parte es siempre una práctica muy aconsejable.
4. Utilizar el
atributo ALT en las imágenes iniciales
Como vimos en
el Capítulo 4, dentro de la etiqueta de las imágenes se puede añadir el
atributo
ALT que sirve
para poner un texto a la imagen, que será visto únicamente por quienes utilizan
los navegadores
en forma de sólo texto.
Hay motores de
búsqueda que toman en cuenta el texto que encuentran de esta manera en las
imágenes (sobre
todo las iniciales) para hacer una descripción del sitio o para suministrar las
palabras clave.
Sistemas de búsqueda en
español
Generalmente
están organizados como directorios, es decir, que para darse de alta en ellos,
hay
que situarse
primero en la categoría que corresponde a nuestra página, o seguir las
instrucciones
oportunas. Algunos de los sitios catalogan únicamente páginas del propio país.
En principio,
hay que darse de alta en cada uno de ellos individualmente. Pero como primera
medida, es muy
conveniente registrarse en Atajos Auto-Registralo, en donde introduciendo los
datos de
nuestra página una sola vez, hará que se registre simultáneamente en numerosos
sistemas de
búsqueda, tanto en español como en inglés.
Argentina
DNA - Directorio Nacional
Argentino
La Brújula
Colombia
Indexcol
Chile
Guía Chile
interaccess
La Brújula - Indice de Nexus
España
B.I.W.E
Cibercentro
dónde?
Eikona
El Buscador
El índice
El Inspector de Telépolis
Elcano
Fantástico
interpyme - Pequeñas y medianas
empresas españolas
Olé!
Ozú
Señas
¡Seric! - Empresas españolas.
Sol - Con robot de búsqueda de
tecnología Altavista
Trovator - Con robot de búsqueda.
Ugabula
Vindio
Holanda
Mundo Latino
México
Atajos
MexSearch
MexMaster
SBEL
Tarántula
Yupi
Paraguay
Directorio WEB Paraguay
Uruguay
Uruguay al día
USA
Encuéntrelo
Venezuela
Auyantepui
Chevere
Si conoces algún otro sistema de
búsqueda en español que no figure en esta relación, te agradecería que
me lo comunicaras por email.
Sistemas de búsqueda en
inglés
Están
clasificados según el método necesario para registrarse en ellos.
1. Registro por medio de formularios
A. Registro múltiple
Permiten registrarse en múltiples
servicios, utilizando un único formulario.
Submit
It!
Postmaster
Add It!
Register It!
B. Buscadores de tipo general
Alta Vista (en inglés)
Alta Vista (en español)
HotBot
Lycos
WebCrawler
White NetPages
C. Buscadores de empresas
Internet
Yellow Pages
BizWeb Company
Information
Open Market
The Internet Mall
WWW Business Yellow Pages
2. Registro en buscadores
que están organizados como directorios
Hay que navegar entre los distintos
directorios, hasta situarse en la categoría que conviene
a la página que queremos registrar.
Yahoo!
3. Registro mediante envío de un email
InfoSeek. Enviar un email a
[email protected]
What's
New del NCSA. Enviar un email a [email protected]
Para más
información sobre el tema de este capítulo, puedes consultar:
Descubre cómo
atraer más tráfico a tu Web, por Media Planning S.A. Muy útil, completo y
documentado.
Muy recomendable.
Manual práctico
para la contratación de las tecnologías de la información, por Contract-soft,
en
donde se puede
encontrar detallada información sobre los aspectos jurídicos relacionados con
la informática.
De especial interés para el tema de este capítulo es el apartado copyright de
un
web
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
--------------------------------------------
18. Contadores de
visitas
En este
capítulo se verá la manera práctica de poner un contador de visitas en una
página del
Web.
En primer
lugar, tengamos presente una noción básica: un contador de visitas no se crea
simplemente con
una etiqueta del lenguaje HTML, sino que se genera en un programa CGI
especial
residente en el servidor.
Puede tratarse
del servidor donde esté alojada nuestra página si es que tiene instalado un
programa de
este tipo, o en caso contrario se puede recurrir a otros servidores distintos
que den
este servicio,
como veremos más adelante.
En teoría,
también podríamos instalar nosotros mismos un programa de este tipo en el
servidor
para poder
hacer uso de él. Pero es muy poco frecuente que los administradores de los
servidores
permitan a sus usuarios instalar programas ejecutables de este tipo, debido a
los
riesgos para la
seguridad del servidor que ello supone (como la introducción de virus, por
ejemplo).
No vamos a ver
aquí cómo crear, conseguir o instalar este tipo de programas, sino cómo hacer
uso de ellos,
una vez que hayamos localizado alguno al que tengamos acceso.
¿Cómo funciona un
contador?
Si queremos
instalar en nuestra página un contador de accesos, debemos colocar en el
documento HTML
una etiqueta que haga una llamada a un programa instalado en un servidor
que nos
suministre este servicio. Estas etiquetas no son un standard del lenguaje HTML,
sino
que nos la
tiene que suministrar quien nos dé el servicio, ya que depende del programa que
tengan
instalado en el servidor.
Por jemplo, la
etiqueta para el contador de WebMaestro (instalado en la página de la portada
de este manual)
es la siguiente:
<IMG
SRC="http://www.lander.es/cgi/nph-count?link=farocena&width=5">
Como se puede
comprobar, en realidad se trata de una etiqueta de una imagen (Ver el capítulo
4). Pero la
diferencia en este caso es que no se está solicitando al servidor que envíe una
imagen que
hayamos colocado nosotros en el servidor, como hemos visto hasta ahora.
Lo que se está
haciendo es una llamada a un programa instalado en un servidor cuyo URL es
http://www.lander.es
y que está en el directorio cgi.
Este programa
gestiona diferentes contadores de diferentes usuarios. Pero la llamada de esta
etiqueta hace
que se active uno en concreto, (en este caso el que tiene como indicativo la
palabra
farocena). Estos indicativos han sido escogidos por el usuario, y no deben
coincidir
con el de
ningún otro. Lo más seguro es escoger como indicativo el userid (lo que está
antes del
símbolo @ de la
dirección de email, ya que es seguro que no coincide con el de ningún otro
usuario dentro
de un mismo proveedor).
El programa
incrementa entonces el contaje de este contador individual en una unidad y
devuelve la
imagen de los dígitos correspondientes al número de veces que ha sido activado.
Es decir, envía
esta imagen:
Que quede bien
claro que este ejemplo concreto de contador no es aplicable literalmente a
cualquier
contador, aunque la estructura básica es siempre similar, es decir, la etiqueta
de
una imagen en
la que está especificado el URL del programa, con una cadena en la que está
incluido el
indicativo que personaliza el contador.
Otro ejemplo de
contador es el de WebMaestro en su versión para Infovía, que es:
<IMG
SRC="http://gizmo.axis.inf/cgi-bin/Count.cgi?md=5|dd=B|df=farocena.dat">
Por tanto, si
se quiere poner un contador en una página se debe preguntar al proveedor, donde
está alojada la
página:
Si tiene instalado un programa que
gestione los contadores de los usuarios.
En caso afirmativo, cuál es la etiqueta
concreta que se debe utilizar para hacer uso de este
programa.
Servidores públicos de
contadores
¿Qué se puede
hacer si el servidor donde va a estar alojada nuestra página no tiene un
programa
de contadores
para sus usuarios? En este caso se puede recurrir a otros servidores que dan
este servicio
de manera generalmente gratuita.
El único
inconveniente que puede tener esta solución es que al cargar el usuario nuestra
página, al
llegar a la etiqueta del contador, la solicitará a este otro servidor, y puede
ocurrir
que esté
inaccesible en ese momento, o sea lento en dar la respuesta.
A continuación
se sumistra los URLs de algunos de estos servidores. En ellos se pueden
encontrar las
instrucciones para crear un contador.
Servicio de
contadores, de Pedro Hurtado (España)
Contador de
Páginas WWW (Portugal, en portugués)
WebCounter
(USA)
En La Agenda,
de Manuel Barberán puedes encontrar más servidores e información relacionada
con este tema.
En el buscador
Yahoo! puedes encontrar información (en inglés) sobre programas para crear
contadores.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
-----------------------------------------------------
19. Componer con estilo
Una vez de
conocidas las técnicas para componer una página del Web, vamos a considerar los
ditintos
aspectos necesarios para que esa página sea atractiva y efectiva, fácil de
utilizar y de
mantener, así
como también los errores más frecuentes y lo que hay que evitar al componer un
documento HTML.
Bastantes de
los conceptos indicados a continuación ya han sido expuestos en sus capítulos
correspondientes.
Otros son nuevos, y otros son de puro sentido común. Pero todos ellos
agrupados
pueden dar una idea de conjunto sobre las directrices a seguir para
confeccionar
adecuadamente
una página del Web.
Estructura de una
página
Una página
consiste básicamente en infomación que se ofrece al usuario. Pero se debe
organizar
esta
información de una manera clara y efectiva.
Contenido: Un
sitio del Web debe ofrecer contenido, es decir, información del tipo que sea,
no
una simple
colección de enlaces a otras páginas. Evitar poner enlaces a páginas todavía
vacías
de contenido,
en donde sólo haya un icono indicando "Página en obras".
Longitud: Si
una página resulta excesivamente larga, es conveniente descomponerla en otras
varias, para
facilitar el tiempo de carga, y dar la oportunidad al usuario de elegir lo que
le
interese.
Cabeceras: Si
la información que se suministra se trata principalmente de texto, es muy
conveniente
utilizar adecuadamente las cabeceras y las listas.
Las cabeceras
del nivel 1 (H1) sirven para indicar los temas importantes, mientras que las
del
nivel 2 (H2) se
utilizarán para señalar los sub-temas relacionados con los anteriores, etc.
Es importante
recordar que el propósito de las cabeceras no es el de conseguir unos
determinados
tamaños de fuentes (para ello hay otro tipo de etiquetas), sino que se deben
utilizar
exclusivamente para organizar un documento en diversas secciones. Con este
propósito,
he aquí algunas
recomendaciones acerca del correcto uso de las cabeceras:
Una cabecera no debe estar a más de un
nivel del que la que le precede. Es decir, un
elemento H3 no debería seguir directamente
a uno H1.
Es incorrecto querer destacar de una
manera extra lo que está dentro de la cabecera,
utilizando etiquetas que hagan el texto
aún más grueso, tales como <B> o <EM>.
No se debe marcar el texto con las
etiquetas H2 o H3, simplemente porque en nuestro
navegador obtenemos así el tamaño de
fuente y el grosor deseados, ya que en otros
navegadores puede resultar de un tamaño
grotescamente grande.
Composición
Es muy
conveniente tratar de conseguir que las distintas páginas que componen un sitio
del Web
tengan un
estilo consistente. Una composición uniforme de las páginas ayudará a los
usuarios a
navegar entre
ellas, y dará personalidad al conjunto. Esta consistencia se puede obtener
escogiendo un
tema gráfico común al conjunto de las páginas: puede ser un color de fondo, o
un
logo, o una
manera particular de disponer los gráficos o el texto.
Aunque el
contenido es lo principal, una presentación acertada y atrayente contribuirá en
gran
medida al éxito
de una página del Web.
Escoger un
título significativo: A veces se omite el título de un documento HTML, o se le
pone uno
inadecuado, porque no se ve en en pantalla. Pero ese documento será conocido en
el
Web
precisamente por su título.
Por tanto,
conviene hacer que el título sea muy descriptivo, de tal manera que cuando
alguien lo
guarde en su
bookmark pueda saber posteriormente de qué se trata. A ser posible, se debe dar
una indicación
en el título de la organización (por ejemplo, en el título de esta página se
indica
el nombre del
manual, el número del capítulo, y el contenido del capítulo), con lo que su
identificación
sea completa fuera de su contexto.
Poner un párrafo
introductorio: A menudo, la única indicación del contenido de una página
viene
suministrada por una imagen. Pero no hay que olvidarse que existen navegadores
que
funcionan sólo
en modo texto (tal como Lynx, por ejemplo), así como que también hay una
proporción de
usuarios de navegadores gráficos que inhabilitan la carga de imágenes para
ganar
en velocidad.
Es conveniente,
por tanto, poner un párrafo introductorio que exprese de manera clara y concisa
el contenido de
la página. Otra razón muy importante para hacerlo es que existen motores de
búsqueda que
catalogan las páginas precisamente por el contenido de las palabras iniciales
(como se vió en
el Capítulo 17).
Ayudas
visuales: Guiar los ojos del usuario por medio de la estructura de la página,
barras
separadoras,
tipos de fuentes, iconos, imágenes, etc. No utilizar el parpadeo más que para
las
emergencias.
Para hacer
particiones de una página se pueden usar los separadores horizontales
(<HR>) o
tablas con
bordes. Pero no hay que abusar de esto. Demasiados separadores dan un aspecto
trozeado a la
página.
Seleccionar un
fondo de color o con imágenes: No todos los navegadores lo soportan, pero si
se utiliza
adecuadamente puede tener un impacto espectacular.
Es muy
importante que el fondo no dificulte la lectura del texto. Si el color del
texto es muy
llamativo, es
preferible usar un color de fondo pastel (ver el Cap. 7). Si se utiliza un
color de
fondo negro o
muy oscuro hay que tener un cuidado muy especial en escoger un color de texto
claro, que contraste
suficientemente.
Comunicarse con
los usuarios: Hay que ofrecer al usuario de la página la posibilidad de que
pueda hacer
comentarios, indicar posibles problemas, etc. Para ello es muy conveniente
suministrar una
dirección de email, o incluso un libro de visitas.
Asímismo, es
muy útil poner la fecha de la última modificación. Si los cambios son
frecuentes,
también se
puede proporcionar una lista cronológica de las modificaciones (como por
ejemplo
la lista de
este manual)
Ofrecer
referencias o otras páginas similares: Si un usuario está interesado por el
contenido
de nuestra
página nos agradecerá mucho si le ofrecemos referencias a otras páginas con el
mismo tema u
otros relacionados con él. Hay que valorar el trabajo de los demás, y no ver
tales
páginas como
rivales a la nuestra, sino al contrario, como una medida para enriquecerla.
Facilitar el mantenimiento
de las páginas
Una cosa que
facilita mucho el mantenimiento de una página es escribir el código HTML de una
manera clara y
ordenada, procurando poner cada etiqueta en su propia línea, dejando líneas en
blanco entre
los distintos bloques de código, y sobre todo, poner los oportunos comentarios
en
el documento
HTML no visibles en pantalla, (ver Capítulo 2), cuando se hagan cosas un poco
elaboradas.
Navegación
Hay que
procurar por todos los medios el facilitar al usuario la navegación entre las
distintas
páginas. Si
éstas son numerosas, el usuario no debe sentirse perdido como en un laberinto.
Los
medio que se
pueden emplear para conseguirlo son:
Iconos de
navegación : Como por ejemplo: . No olvidarse de incluir dentro de
cada etiqueta
el atributo ALT, que indica con un texto su función (ver el Cap. 4). Y sobre
todo,
es muy
importante que por lo menos haya siempre un icono que conduzca a la página
principal.
Indice con
frames : Una de las funciones más útiles de los frames (ver Cap. 14) es la
posibilidad de
tener un índice dentro de un frame que se mantiene siempre a la vista, con lo
que
se facilita
enormemente la navegación.
Barra de menú:
Se puede utilizar como ayuda a la navegación una barra de menú, consistente
en un mapa (ver
Cap. 13), es decir una imagen que contiene zonas que enlazan con otras
páginas. No
olvidarse de suministrar los enlaces del mapa también en forma de texto.
Claridad en el
texto de los enlaces: Hay que procurar que las palabras que forman parte de un
enlace indiquen
con claridad a dónde conduce ese enlace, y que estén integradas con el resto de
la frase.
Evitar frases
como ésta: "Puedes encontrar muchas direcciones útiles de HTML pulsando
aquí"
Un estilo mucho
mejor es: "Puedes encontrar muchas direcciones útiles de HTML en La Agenda
, de Manuel
Barberán."
Imágenes
Se consiguen
presentaciones muy vistosas con las imágenes, pero pueden representar un
problema para
los usuarios con conexiones lentas. Incluirlas sólamente cuando añadan algo al
contenido.
Si se juzga
conveniente incluir imágenes grandes, hacerlo de tal manera que sea el usuario
quien
decida si las
va a acargar o no. Para ello, suministrar enlaces a las imágenes con indicación
de
los kbytes,
bien sea con un texto, bien sea con un thumbnail (versión muy reducida de la
imagen, ver
Cap. 8)
Se deben
incluir dentro de las etiquetas de las imágenes estos atributos, que aunque son
opcionales son
muy convenientes:
Atributo ALT:
Es un texto asociado a la imagen (ver Cap. 4). Muy conveniente para los que
utilizan
navegadores en forma texto (Lynx, etc.), o para los que usando navegadores
gráficos,
han
inhabilitado la carga de imágenes para ganar en velocidad.
Atributos WIDTH
y HEIGHT: Es una indicación de las dimensiones de la imagen (ancho y alto,
ver Cap. 8). Es
muy importante ponerlo en todas las etiquetas de las imágenes (incluso de las
más pequeñas,
iconos, etc.), pues facilita mucho la carga de la página, ya que primero se
carga
todo el texto y
posteriormente se van rellenando los espacios reservados a las imágenes.
Con respecto a
los GIFs animados, conviene no abusar de ellos poniendo demasiados en una
misma página,
no sólamente por motivos estéticos, sino también porque esto puede provocar
problemas en
los ordenadores de algunos usuarios.
Frames
Los frames
permiten dividir la pantalla en diferentes ventanas, con un documento HTML
distinto en
cada una de ellas. Esto permite a su autor ejercer un gran control sobre la
disposición
general y apariencia de la página, pero como todas las cosas, deben ser
utilizados
con cuidado.
Cosas a evitar
en el uso de los frames:
Excesiva
fragmentación de la pantalla: Si se van a utilizar más de dos frames, hay que
evitar
la impresión de
que se ha "parcelado" la pantalla en múltiples ventanitas. Por lo
menos uno de
ellos debe ser
mucho mayor que los demás, para que actúe como página principal, siendo los
otros meros
auxiliares para la navegación de lo que ocurre en el frame principal.
Disposición
demasiado rígida de los frames: A veces, el autor planea cuidadosamente en su
propio monitor
el tamaño de cada frame, y para evitar que los usuarios "estropeen"
ese efecto,
elimina las
distintas posibilidades que existen para poder manipularlos (redimensionarlos,
deslizar su
contenido, etc.).
Pero esto puede
ser muy perjudicial para usuarios con resolución de pantalla distinta (sobre
todo si es
menor), ya que puede ocurrir que parte del contenido de los frames quede
oculta, y
debido a la
rigidez con que han sido planeados, no haya manera de resolver este
inconveniente.
Conviene, por
tanto, evitar poner los atributos NORESIZE o SCROLLING="no" dentro de
la
etiqueta
<FRAME>.
Por otra parte,
al dimensionar los frames con la etiqueta <FRAMESET>, conviene evitar
hacerlo
empleando
valores absolutos. Es mejor hacerlo con porcentajes de pantalla o valores
relativos.
Enlaces al
exterior prisioneros dentro de un frame: A veces encontramos páginas con frames
que contienen
enlaces a otros sitios del Web que al ser pulsados se cargan dentro del mismo
frame. Esto
resulta generalmente molesto para el usuario, pues la página cargada queda
aprisionada
dentro del reducido espacio del frame (agravado aún más si la página cargada
contiene ella
misma sus propios frames). Además, el usuario puede tener la impresión de que
el
autor de la
página pretende impedirle que se "escape" a otras páginas.
La manera de
evitar esto es poner, dentro de las etiquetas de los enlaces en cuestión, el
atributo
TARGET="_top"
(ver Cap. 14), con lo que al pulsar el enlace la nueva página se cargará a
pantalla
completa.
Nombres de los ficheros
Un sitio del
Web es en realidad un conjunto de ficheros, bien sea de texto (los documentos
HTML), bien sea
binarios (imágenes, sonidos, etc.) que vamos a colocar en un servidor, para
que sean
accesibles a quien quiera visitarlos.
Pero debido a
que la mayoría de los servidores están basados en sistemas Unix (aunque
crecientemente
se van utilizando otros sistemas), es muy conveniente, para evitarnos problemas
al instalar
nuestros ficheros en el servidor, considerar una particularidad referente a los
nombres de los
ficheros.
Resulta que en
los sistemas más utilizados para confeccionar las páginas del Web (Windows,
Mac) es
indiferente la utilización de las mayúsculas y minúsculas en los nombres de los
ficheros. Es
decir, es lo mismo Indice.html que INDICE.HTML o que indice.html Pero esto
no es así en
los sistemas Unix, en donde los ejemplos anteriores se corresponderían a tres
nombres
distintos.
Si no se tiene
esto en cuenta, puede ocurrir, por ejemplo, que una referencia que se haga en
un
documento HTML
al fichero Indice.html resulte en un error de que no existe tal fichero
debido a que en
realidad se llama indice.html
Para evitar
estos posibles problemas es muy conveniente tomar estas medidas desde que se
comienza la
confección de una página del Web:
Utilizar exclusivamente las minúsculas
para nombrar los documentos HTML (como se ha
hecho con los ejemplos prácticos de este
manual).
Igualmente, nombrar a todos los ficheros
binarios (de imagen, sonido, etc.) también
exclusivamente con minúsculas,
cambiándoles el nombre si es preciso.
Todas las referencias que se hagan dentro
de un documento HTML a otros documentos o
ficheros deben hacerse también siempre en
minúsculas.
Siguiendo estas
normas, no habrá problemas de este tipo.
Algunos
servidores exigen además de lo anteriormente indicado que los documentos HTML
tengan la
extensión .html en lugar de la de .htm
Si es así,
además de nombrar a los ficheros con dicha extensión, no olvidarse de hacer las
referencias
dentro de los documentos también con esta extensión.
Sonidos
Si se va a
incoporar una música de fondo a una página conviene poner la etiqueta del
sonido al
final del
documento HTML, con objeto de que se carguen primero el texto y las imágenes.
No
abusar con el
tamaño de los ficheros de sonido.
Una alternativa
muy aconsejable a los sonidos de fondo es la de dar al usuario la oportunidad
de que sea él
quien active el sonido, si así lo desea. (Ver esto en el Cap. 15)
No confeccionar una página para un
navegador concreto
Al contrario de
lo que cree mucha gente, una página del Web no se ve de manera idéntica en
todos los
navegadores.
Existen muchas
variantes, aparte de los diferentes tipos de navegadores, tales como la
antigüedad de
las versiones, los distintos sistemas operativos o equipos. Además, los
usuarios
pueden haber
escogido una resolución de pantalla distinta a la nuestra, o haber variado la
configuración
de su navegador para ajustarla a su gusto.
Todo esto no
quiere decir que no se puede hacer nada efectivo para resolver este problema.
La
mejor medida
para que una página se vea correctamente en la mayoría de los navegadores es
confeccionarla
con naturalidad, sin forzar las cosas queriendo controlarlo todo hasta el
último
detalle y
empleando para ello todo tipo de artificios, ya que la probabilidad de que se
vea
incorrectamente
en otros navegadores aumentará de manera proporcional.
También es una
buena medida tener más de un tipo de navegador, para comprobar si existen
diferencias
apreciables de uno a otro.
Sobre el tema
de este capítulo, puedes también consultar:
Diseño de
Páginas en Internet, de DataLink (México)
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
-------------------------------------
20. Applets de Java
Java™ es un
lenguaje de programación orientado a objetos que ha sido desarrollado por la
compañía Sun
Microsystems, basándose en el lenguaje C++. Aunque es también un lenguaje de
carácter
general, su principal característica es la de ser independiente de cualquier
plataforma,
lo que le hace
ser muy adecuado para ser utilizado en Internet, ya que puede ejecutarse en
cualquier
ordenador que tenga un navegador compatible con Java.
Esto quiere
decir que el mismo programa se puede utilizar, sin ningún cambio, en un PC, Mac
o
máquina Unix.
Esto es así porque un programa Java no corre directamente en el ordenador, sino
que lo hace en
una máquina virtual (la Máquina Virtual Java), quedando además confinado
dentro de ella,
lo que hace que sea un lenguaje seguro, ya que no puede acceder a otros
recursos de
nuestro ordenador.
Java y Javascript
Existe bastante
confusión entre los términos Java y Javascript. Son dos lenguajes distintos.
El Javascript
fue creado por Netscape inicialmente con otro nombre, adoptando finalmente
(por evidentes
razones de oportunismo) el de Javascript. Se trata de un lenguaje interpretado,
cuyo código se
incluye directamente en el documento HTML (En el Capítulo 16 se utilizaron
varios
ejemplos).
Nivel de dificultad del
lenguaje Java
Aunque el
lenguaje Java es más fácil que el C++, en el que está basado, se trata de un
lenguaje
de programación
de alto nivel, y por tanto es muchísimo más difícil (para quien no tiene
conocimientos
previos) que el HTML, que en realidad no es más que una sencilla manera de
formatear el
texto de las páginas del Web.
Pero una cosa
es programar en Java y otra mucho más sencilla es utilizar programas ya
existentes,
como veremos. Estos programas se llaman applets, y se pueden incrustar dentro
de
una página del
Web para realizar todo tipo de tareas.
El propósito de este capítulo es mostrar
cómo hacer uso de estos programas y dónde
encontrarlos, y no el de aprender a
programarlos.
Quien esté
interesado en iniciarse en el aprendizaje del lenguaje Java puede encontrar un
completo
tutorial (con la posibilidad de bajar todo el curso por FTP) en:
Tutorial de
Java, por Agustín Froufe (España; tiene además un mirror en Chile)
Más información
sobre otros manuales de Java en:
La Agenda, de
Manuel Barberán, en la sección Java
Lanzador
Internet, de Daniel López Avellaneda
¿Qué son los
applets?
Los applets son
pequeños programas ejecutables escritos en lenguaje Java, que podemos
colocar en
nuestro servidor, junto con el resto de ficheros que componen un sitio del Web
(documentos
HTML, ficheros de imagen, sonido, etc.)
Si en una de
nuestras páginas hemos incrustado un applet (de la manera que se verá más
adelante),
cuando un usuario cargue la página, recibirá del servidor dicho applet (al
igual que
ocurre con una
imagen o sonido), y se ejecutará en su navegador.
Pero para que
esto ocurra así, es condición indispensable que el usuario esté utilizando un
navegador
compatible con Java: Netscape 2.x o superior, Explorer 3.0 o superior, o
HotJava
(navegador
desarrollado por Sun, y escrito totalmente en Java). Quien utilice un navegador
no
compatible, no
verá la ejecución del programa (ni siquiera lo cargará), aunque podemos
informarle de
este hecho con un mensaje.
Como test
inmediato para comprobar si tu navegador es compatible con Java, observa lo que
ves a
continuación:
Si ves el lema: "WebMaestro ¡Crea tu
página del Web!" desplazándose en una línea
sinusoidal, es que tu navegador es
compatible con Java. (Pulsando con el ratón, se
invierte el sentido del desplazamiento)
Si, por el contrario, ves el mensaje
estático "[Aquí debería haber un applet de Java]", es
que tu navegador no es compatible con
Java, o que siéndolo, tiene inhabilitada la carga de
programas de Java.
¿Para qué sirven los
applets?
Con los applets
se pueden conseguir efectos visuales y sonoros (incluso ambos a la vez), textos
en movimiento,
utilidades (por ej., relojes), pequeños programas educativos, juegos
interaractivos,
presentaciones multimedia, etc. En definitiva, cualquier cosa que se pueda
conseguir con
un programa pequeño.
No es que haya
ninguna limitación teórica en el tamaño de estos programas. La razón de que
sean pequeños
es la misma por la que no es razonable colocar en una página gigantescos
ficheros de
imagen o sonido, es decir, no hay que alargar en exceso su tiempo de carga. (El
applet visto
anteriormente sólo tiene 4,6 kb)
¿Cómo se coloca un applet en
una página?
Lo primero de
todo, es necesario tener el programa del applet. El ejemplo de applet visto
anteriormente,
y que vamos a examinar a continuación con detalle, se llama SineText.class
Se trata de un
applet que hace que un texto (elegido por el usuario) se desplace formando una
onda
sinusoidal, en dirección reversible con un click del ratón. Se pueden escoger
los colores
del fondo y de
las letras, elegir entre algunos tipos de fuentes, su tamaño, velocidad de
desplazamiento,
etc.
Su autor es
Mattias Tollet y proviene de The Java(TM) Boutique
Para
conseguirlo ahora mismo, pulsa el enlace:
SineText.class (4,6 kb)
Alguna
observaciones:
Estos programas tienen la extensión .class
Hay que respetar escrupulosamente la
disposición de las mayúsculas y minúsculas en su
nombre (en este caso se debe poner
SineText.class y no sinetext.class, por
ejemplo).
Es un verdadero programa binario, y por
tanto no se puede leer en un procesador de textos,
como podemos hacer con un documento HTML.
Para colocar el
applet en la página, debemos utilizar las siguientes etiquetas (que se colocan
donde queramos
dentro del cuerpo del documento HTML, es decir entre las etiquetas <BODY>
y
</BODY>):
<APPLET CODE=SineText.class WIDTH=500 HEIGHT=100>
</APPLET>
Con esto se le
indica al navegador que cargue un applet, cuyo código compilado es
SineText.class,
que se encuentra en el mismo directorio que el propio documento HTML, y
que le reserve
un área de 500x100 pixels.
Pero en este
caso concreto, nos falta añadir los parámetros que personalizan el applet a
nuestro gusto
(sobre todo el texto que queremos que aparezca). Para ello se añaden etiquetas
de
este tipo:
<PARAM
NAME=nombre_del_parámetro VALUE="contenido_del_parámetro">
Para escoger el
texto, será, por ejemplo:
<PARAM
NAME=Text VALUE="¡Gracias por tu visita!">
De momento no
vamos a definir más parámetros. El resto de ellos serán los que ha escogido su
autor por
defecto. Las etiquetas del applet quedan de momento así:
<APPLET CODE=SineText.class WIDTH=500 HEIGHT=100>
<PARAM
NAME=Text VALUE="¡Gracias por tu visita!">
</APPLET>
Este es el
resultado.
(Para no
recargar demasiado esta página, se van a ver los ejemplos en páginas separadas)
¿Cómo sabemos qué
parámetros hay, cuáles son sus nombres y cuáles son los que hay por
defecto? Pues
sencillamente, leyendo la documentación del applet, ya que son variables que se
le han ocurrido
al autor al confeccionar el programa. Esto quiere decir que para otro applet
distinto los
parámetros serán también distintos.
En este applet,
su autor ha definido los siguientes parámetros:
Text - Texto
que se va a ver.
Rate - Número
de imágenes por segundo.
Font - Fuente:
Helvetica (defecto), TimesRoman o Courier.
FontSize -
Tamaño de la fuente.
TextStyle -
Estilo de la fuente: Plain, Bold (defecto) o Italic.
Speed -
Velocidad de desplazamiento 1-10 (5 es por defecto)
Direction -
Dirección inicial del desplazamiento. Left (defecto) o Right.
Background -
Color del fondo. 000000 (negro) es por defecto.
ForeGround -
Color del texto. FF0000 (rojo) es por defecto.
Vamos a añadir
algunos parámetros al ejemplo anterior (el orden en el que se colocan es
indiferente).
Variaremos también el área del applet a 600x75, y el texto del mensaje.
<APPLET CODE=SineText.class WIDTH=600 HEIGHT=75>
<PARAM
NAME=Text VALUE="¡Gracias por tu visita! Vuelve
pronto">
<PARAM NAME=Rate VALUE="4">
<PARAM NAME=Font VALUE="TimesRoman">
<PARAM NAME=Background VALUE="FFFFFF">
<PARAM NAME=Foreground VALUE="0000FF">
</APPLET>
Este es el
resultado.
Mensaje para los navegadores no
compatibles con Java
En los dos
últimos ejemplos, el usuario con un navegador no compatible no verá
absolutamente
nada, ya que el
applet no se carga ni ejecuta.
Se puede poner
un mensaje para que lo lean los que usan un navegador no compatible, y que
sin embargo, es
invisible para los que sí están viendo ejecutarse el applet. No hay más que
añadirlo, sin
ningún tipo de etiqueta, a continuación de los parámetros. Por ejemplo:
<APPLET CODE=SineText.class WIDTH=600 HEIGHT=75>
<PARAM
NAME=Text VALUE="¡Gracias por tu visita! Vuelve
pronto">
<PARAM NAME=Rate VALUE="4">
<PARAM NAME=Font VALUE="TimesRoman">
<PARAM NAME=Background VALUE="FFFFFF">
<PARAM NAME=ForeGround VALUE="0000FF">
Lo siento, pero
no puedes ver este applet funcionando.
</APPLET>
Este es el
resultado.
Quien use un
navegador compatible sólo podrá ver el mensaje si inhabilita la carga de
programas de
Java.
Otro ejemplo:
reloj
Hay veces que
el programa del applet necesita unos ficheros adicionales para funcionar
(generalmente
ficheros de imagen o sonido). Es el caso del ejemplo que vamos a ver, que es un
reloj que
necesita las imágenes de los dígitos.
Por tanto,
aparte de instalar el fichero del applet, que en este caso se llama
DigClk.class, hay
que instalar
los ficheros de imagen de los dígitos en un subdirectorio que se debe llamar
necesariamente
dcimages (porque así lo ha dispuesto el programador del applet).
Su autor es
William G. Ogle Jr. y proviene de The Java(TM) Boutique.
Puedes obtener
el applet DigClk.class y los ficheros de imagen agrupados en su subdirectorio
dcimages,
comprimidos en un fichero .zip:
dclk100.zip (5 kb)
El código HTML
necesario para el applet es:
<APPLET CODE="DigClk.class" WIDTH=122 HEIGHT=29>
Aquí habría un
reloj si tu navegador soportase Java
</APPLET>
Y este es el
resultado:
Obsérvese que
en este caso no hay etiquetas de parámetos, por no ser necesarias.
(La hora que
que visualice el usuario será la de su ordenador)
El atributo CODEBASE
En todos los
ejemplos anteriores hemos supuesto que el fichero del applet (el que tiene la
extensión
.class), está en el mismo directorio que el documento HTML donde queremos
incrustarlo.
Pero puede ser que lo hayamos colocado en otro directorio distinto.
En estos casos
hay que añadir el atributo CODEBASE dentro de la etiqueta <APPLET>
indicando
el directorio
donde se encuentra.
Si en el último
ejemplo hubiéramos colocado el fichero DigClk.class en un subdirectorio
llamado java
(por ejemplo), la etiqueta hubiera quedado así:
<APPLET CODEBASE=java CODE="DigClk.class" WIDTH=122
HEIGHT=29>
[el resto de
las etiquetas quedarían igual]
¿Donde se pueden conseguir
applets de Java?
En español:
Catálogo de
Applets (México)
Applets de
Java, de Luis Mariñas
En inglés:
The Java(TM)
Boutique en donde se pueden encontrar más de cien applets, distribuidos en
categorías, y
con con sus correspondientes instrucciones.
Otro sitio muy
interesante es Gamelan, que es un catálogo de recursos muy extenso.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
----------------------------------------------------
21. Trucos diversos
Aquí se pueden
encontrar varios trucos útiles para las páginas. Algunos de ellos se basan en
Javascript.
Distribución de programas desde
una página del Web
Si tenemos un
fichero ejecutable, es decir un programa, y lo queremos distribuir libremente,
se
puede conseguir
fácilmente poniendo un enlace a dicho fichero. Por supuesto, hay que que
colocarlo
previamente en
el servidor, junto con los demás elementos que forman la página (documentos
HTML,
ficheros de
imagen, de sonido, etc.)
Es muy
conveniente que el fichero esté comprimido (por ejemplo, en formato .zip) para
reducir su
tiempo de
carga, y por otra razón que se dirá más adelante.
Supongamos
entonces que ya tenemos instalado en el servidor el fichero comprimido
programa.zip.
Para ponerlo accesible a los demás, simplemente hay que poner un enlace directo
a
este fichero,
como por ejemplo de esta manera:
Para conseguir
el programa, pulsa este <A HREF="programa.zip">enlace</A>
Al pulsar el
enlace resultante, el navegador da la opción de ejecutarlo o guardarlo. Se
podría haber
puesto el
fichero sin comprimir, p. ej. como programa.exe, pero aparte de que ocupa más
espacio,
hay el peligro
de que en algunos navegadores (como el Explorer) se ejecute inmediatamente, en
vez de
guardarlo.
Texto fijo de un enlace en la
barra de estado
Como se vió en
el Capítulo 3, un ejemplo de etiqueta para un enlace es:
<A
HREF="http://www.microsft.com">Microsoft</A>
Que da como
resultado: Microsoft
Al pasar el
cursor del ratón por encima del enlace vemos que aparece en la barra de estado
del
navegador (en
la parte inferior de la pantalla) el URL o dirección del enlace, en este caso
http://www.microsft.com
Se puede hacer
que aparezca el texto que queramos, y además que permanezca fijo hasta que se
pase
el cursor por
encima de otro enlace. Para ello, basta con introducir lo siguiente, dentro de
la etiqueta
del enlace:
onMouseOver="window.status='Aquí
el texto que se quiera';return true;"
En el ejemplo
anterior podemos poner, por ejemplo:
<A HREF="http://www.microsft.com"
onMouseOver="window.status='Página
principal de Microsoft';return true;">Microsoft</A>
Que da este
resultado: Microsoft
Obsérvese como
queda permanentemente el texto escogido en la barra de estado, hasta que se
pase el
cursor por
encima de otro enlace que tenga otro texto distinto.
Se puede
conseguir (pero sólo con el Netscape, y no con el Explorer) un efecto similar,
pero en vez
de al llegar al
enlace, al abandonar el enlace, si se añade a la etiqueta lo siguiente:
onMouseOut="window.status='Aquí
el texto que se quiera';return true;"
Se puede poner
sólo o combinado con el anterior, como en el siguiente ejemplo:
<A
HREF="http://www.netscape.com" onMouseOver="window.status='Esto
se ve al
llegar al
enlace';return true;" onMouseOut="window.status='Esto otro se ve
al abandonar el
enlace';return true;">Netscape</A>
Este es el
resultado: Netscape
Con el Netscape
se ve el texto al llegar al enlace y el otro texto al abandonar el enlace. Con
el Explorer
sólo se ve el
primero (al llegar al enlace), pero no el segundo.
Salto automático de
pantalla
Si ponemos en
una página la siguiente etiqueta:
<META
HTTP-EQUIV="Refresh"
CONTENT="x;URL=URL_de_la_siguiente_página">
una vez de que
se cargue, permanecerá a la vista durante x segundos, y luego saltará
automáticamente
a otra página cuyo URL hayamos especificado.
Por ejemplo:
<META
HTTP-EQUIV="Refresh"
CONTENT="10;URL=http://www.nasa.com">
después de 10
segundos nos transportará automáticamente a la página de la NASA.
Obsérvense el
punto y coma después de la cifra de los segundos y la disposición de las
comillas.
Esta etiqueta
no se puede colocar en cualquier sitio del documento HTML. Debe ir situada en
la
cabecera (entre
las etiquetas </TITLE> y </HEAD>).
Aunque lo
implementan las últimas versiones del Netscape y del Explorer, hay algunos
navegadores
que no lo
hacen, por lo que es conveniente suministrar, por si acaso, un enlace al URL
deseado para
que el propio
usuario lo pueda activar.
A continuación,
como un ejemplo completo, se va a crear una página que hará que salte
automáticamente
a la portada de este manual:
<HTML>
<HEAD>
<TITLE>Ejemplo
de salto automatico de pantalla</TITLE>
<META HTTP-EQUIV="Refresh"
CONTENT="5;URL=http://www.lander.es/webmaestro">
</HEAD>
<BODY>
Ejemplo de
salto automatico de pantalla. Despues de 5 segundos debe saltar
AUTOMATICAMENTE
a la portada de WebMaestro.
<P>Si
esto no ocurre, pulsa este
<A
HREF="http://www.lander.es/webmaestro">enlace</A>.
</BODY>
</HTML>
Véase el
resultado.
Botón de envío de un formulario
con una imagen
En el Capítulo
11 se vió la etiqueta para conseguir el botón de envío de los datos de un
formulario:
<INPUT TYPE="submit" VALUE="zzz">
En donde zzz
era el texto que queríamos que apareciera en el botón. Se ilustraba con el
siguiente
ejemplo:
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
Escribe tu
apellido:
<BR><INPUT TYPE="text" NAME="Apellido">
<P><INPUT TYPE="submit" VALUE="Enviar
datos">
</FORM>
Que resulta:
Escribe tu
apellido:
Se puede
sustituir este botón de envío estándar por una imagen, como por ejemplo la
siguiente
imagen
(pulsa.gif):
Se consigue
sustituyendo la etiqueta:
<INPUT TYPE="submit" VALUE="Enviar datos">
por esta otra:
<INPUT TYPE="image" SRC="pulsa.gif" BORDER=0>
con lo que el
ejemplo anterior quedaría así:
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
Escribe tu
apellido:
<BR><INPUT TYPE="text" NAME="Apellido">
<P><INPUT TYPE="image" SRC="pulsa.gif"
BORDER=0>
</FORM>
Este es el
resultado:
Escribe tu
apellido:
Se puede
comprobar cómo pulsando la imagen se tiene el mismo efecto que con un botón
estándar
de un
formulario.
Nota: No se
puede, sin embargo, sustituir por una imagen el botón de borrado, que se
consigue con
la etiqueta <INPUT TYPE="reset" VALUE="zzz">
Menú de
direcciones
En el Capítulo
11 (Formularios) se vió la manera de elegir entre distintas opciones de texto
en un
menú
desplegable. Ahora vamos a ver un menú similar, pero en el que se puedan elegir
entre distintas
direcciones del
Web, a donde será dirigido el usuario una vez que pulse un botón.
Veámoslo con un
ejemplo:
<FORM>
<SELECT NAME="list">
<OPTION VALUE="http://www.microsoft">Microsoft
<OPTION
VALUE="http://www.lander.es/webmaestro">WebMaestro
<OPTION VALUE="http://www.netscape.com">Netscape
<OPTION VALUE="http://www.infoseek.com">Infoseek
</SELECT><P>
<INPUT TYPE=button VALUE="Pulsa para ir"
onClick="top.location.href=this.form.list.options[this.form.list.selectedIndex].value">
</FORM>
Este es el
resultado:
Se pueden poner
tantas opciones como se quiera. También se puede dirigir a páginas propias
(como
la opción
WebMaestro, que dirige a la portada de este manual), pero en este caso se debe
poner el
URL completo de
la página (http://www.lander.es/webmaestro), como si tratara de una página
ajena.
Acceso a una página por medio
de un password
Puede ocurrir
que tengamos una página cuyo contenido no queremos que sea accesible por todo
el
mundo, sino
sólamente por quien nos interese. Para conseguirlo, podemos suministrar un
password o
clave con el
que se pueda acceder a dicha página.
La manera más
rigurosa es hacerlo por medio de un CGI, es decir, un programa especial que se
coloca en el
servidor y que actúa de filtro. Pero, como se ha comentado en varias ocasiones
en este
manual, el
inconveniente de esta solución es que es muy poco frecuente que los
administradores de
los servidores
permitan a sus usuarios la instalación de estos programas, como medida de
seguridad.
Una solución
alternativa es utilizar el siguiente programa en Javascript (Véase en el Cap.
16 sobre
cómo incluir un
programa de Javascript en un documento HTML; recuérdese que el script se coloca
en la cabecera,
entre las etiquetas </TITLE> y </HEAD>).
<HTML>
<HEAD>
<TITLE>Ejemplo de acceso con password</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function Saltar(pal) {
window.location=pal+".html"
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
Introduce la
palabra clave para acceder a la página
<P>
<INPUT TYPE="password" NAME="palclave" SIZE=25
VALUE="">
<INPUT TYPE="button" VALUE="Acceder"
onClick="Saltar(this.form.palclave.value)">
</FORM>
</BODY>
</HTML>
Esto funciona
de la siguiente manera: una vez escogida la clave (por ejemplo: xyz123),
debemos dar a
la página de
acceso restringido precisamente este nombre: xyz123.html, es decir, se debe dar
a la
página
restringida el nombre compuesto por la clave, más la extensión .html (o .htm)
No hay que
cambiar ni añadir nada en el script. Si se utiliza las extensiones .htm en vez
de .html la
página se
llamaría xyz123.htm pero entonces hay que sustituir la línea del script
window.location=pal+".html" por window.location=pal+".htm"
Este es el
resultado:
Introduce la
palabra clave para acceder a la página
Como
comprobación, introduce la clave xyz123, y pulsa el botón y verás cómo accedes
a la página
reservada, y
por el contrario, si introduces otra clave, recibirás un mensaje de error.
Otras colecciones de trucos:
Grupo de Chapuceros -
Javascript
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
--------------------------------------------------
22. Canales de chat en
páginas Web
En la jerga de
las comunicaciones se llama hacer chat (charla, en inglés) al intercambio de texto
con
otras personas
en tiempo real.
Esto es una de
las características principales de los servicios on-line (como Compuserve, AOL,
MSN, etc.) para
sus suscriptores. Internet tiene su propia versión, abierta a todos, llamada
IRC
(Internet Relay
Chat), pero hasta hace poco, sólo se ha podido acceder al él por medio de
programas
cliente
especiales, aparte de ser necesario saber de antemano a qué redes de servidores
conectarse y
cuáles canales
pueden ser interesantes.
Pero todo esto
está cambiando con la llegada del chat basado en páginas del Web, que es una
variante del
IRC que utiliza applets de Java (ver el capítulo 20). Cuando un usuario carga
una página
Web que
contiene uno de estos chats, recibe el applet y su propio navegador lo ejecuta.
El applet se
encarga de
establacer la conexión con el servidor de chat, y con el canal correspondiente,
poniéndole
en contacto
directo con otros usuarios que estén conectados en ese momento con ese mismo
canal.
¿Cómo se instala un canal de chat en
una página del Web?
Existen unos
servidores comerciales que suministran los applets y que se encargan de la
gestión del
chat, y que
además lo hacen de una manera gratuita, pues todo se costea gracias a la
publicidad
(mientras se
utilizan estos canales, los usuarios reciben periódicamente anuncios dentro de
la ventana
del chat).
También suelen exisistir versiones de pago, con un mayor control del canal.
Algunos de
estos servidores son:
ParaChat (el
utilizado para el chat de WebMaestro)
Chat Planet
WebMasters
El
procedimiento suele ser análogo en todos: Hay que rellenar un formulario con
nuestros datos.
Además hay que
escoger un nombre para el canal e indicar el URL de nuestra página en donde se
va a
instalar el
chat.
Después de
enviar estos datos, se recibe el código HTML del applet (en realidad unas pocas
líneas)
por email, o
también directamente en la pantalla (como en el caso de ParaChat).
Una vez que
tengamos las líneas del código, las podemos incluir en un documento normal de
HTML,
con sus adornos
correspondientes (fondo, texto explicativo, imágenes, etc.). Colocamos este
documento HTML
en nuestro servidor, y ya está listo para ser utilizado.
Cuando alguien
cargue nuestra página, recibirá el applet, y se podrá conectar con nosotros, u
otros
usuarios que
estén conectados en ese momento. Hay que tener en cuenta que el canal estará
disponible de
manera permanente, por lo que es conveniente indicar las ocasiones en las que
estaremos
presentes en el canal.
Puedes ver un
ejemplo en el canal de chat de WebMaestro.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
-------------------------------------------------
23. Hojas de
estilo en cascada.
Introducción
Las hojas de
estilo repesentan un gran avance con respecto a cómo los diseñadores de páginas
Web pueden aumentar grandemente su capacidad de mejorar la apariencia de sus
páginas.
En su origen el
Web fue concebido en un entorno científico, como un medio de intercambio de
documentación, en el que lo esencial era el contenido, siendo la presentación
algo completamente accesorio. Pero a medida que el Web era descubierto por toda
clase personas como un fantástico medio de difusión, las limitaciones del HTML
con respecto al control sobre la presentación se convirtieron en una fuente
continua de frustraciones.
Los nuevos
diseñadores de páginas Web estaban acostumbrados a los medios tradicionales
sobre papel, en los que tenían un control total sobre la apariencia. Han ido
aprendiendo a utilizar diversos trucos para suplir las limitaciones
estilísticas del HTML. Pero aunque su intención ha sido buena - mejorar la
presentación de las páginas - las técnicas empleadas han tenido unos efectos
secundarios a menudo desafortunados. Estas técnicas o trucos suelen funcionar
para algunas personas, algunas veces, pero nunca para todas las personas y en
todos los casos.
Varios ejemplos
de estas técnicas son:
•Utilización de
etiquetas no estándar, inventadas por los creadores de algunos navegadores
(como Netscape o Explorer). •Convertir el texto en imagen. •Usar imágenes
transparentes para crear espacios en blanco. •Uso de tablas para forzar
determinadas presentaciones. •Utilizar programas o lenguajes ajenos al HTML
para conseguir determinados fines, etc.
Estas técnicas
aumentan considerablemente la complejidad de las páginas del Web, tienen una
flexibilidad limitada, y sobre todo, provocan problemas al ser utilizados por
distintos navegadores o plataformas.
Las hojas de
estilo devuelven la facilidad de controlar la presentación y sobrepasan la
limitada gama de mecanismos de presentación que se han ido añadiendo al HTML
durante estos últimos años. Por ejemplo, con ellas es fácil determinar el
espacio entre las líneas de texto, el tipo y tamaño de las fuentes, el grosor
de los márgenes, los colores usados para el texto o el fondo, así como el
fomateo a voluntad de cualquier etiqueta.
Además hay otro
aspecto muy interesante de las hojas de estilo, y es que separan por completo
la información para la presentación de una página de su contenido, con lo que
se facilita mucho el diseño y revisión de las páginas, pues se puede variar la
presentación de una página, o de todo el conjunto de ellas, sin cambiar una
sola línea del código del HTML.
Como veremos
más adelante, se pueden definir variaciones de diseño por medio de las
"clases". Por ejemplo, si se necesitan cinco estilos de párrafos
diferentes, se pueden definir cinco clases para la etiqueta <P> :
P.normal, P.indentado, P.subrayado, P.rojo y P.dobleespacio.
En este
capítulo se hace una introducción a las hojas de estilo, pues se trata de un
tema muy extenso. En los siguiente capítulos se verán con detalle los distintos
atributos y valores así como distintos consejos para su mejor utilización.
¿Qué
navegadores las soportan?
Debido a que se
trata de una reciente innovación, hay un soporte todavía limitado para las
Hojas de estilo en cascada. Actualmente sólo lo soportan el Explorer 3.0 en
adelante, así como el Netscape 4.0 en adelante.
Otros
navegadores, o las versiones más antiguas de los anteriormente mencionados,
simplemente lo ignorarán.
Las Hojas de
estilo todavía no han sido incorporadas al vigente estándar del HTML , el HTML
3.2, pero lo van a ser en el próximo, el HTML 4.0, del cual se ha publicado ya
un borrador. En concreto, la documentación referida a las Hojas de estilo se
puede encontrar en esta página.
¿Cómo
funcionan?
Las hojas de
estilo en cascada nos permiten redefinir las reglas que utiliza el navegador
para presentar una página del Web.
Todos los
navegadores tienen sus reglas. Así, por ejemplo -como vimos en el capítulo 1,
el HTML define que las cabeceras del nivel uno (el texto que está entre las
etiquetas <H1> y </H1>) se muestre como un texto alineado a la
izquierda, un par de puntos mayor que el resto, en negrita y en la fuente Times
Roman.
Ejemplo:
<H1> Cabecera de nivel 1 </H1> se verá como:
Cabecera de
nivel 1
Cada etiqueta
define sus propias reglas para mostrar el texto que engloba. Con las hojas de
estilo podemos cambiar cada una de estas reglas si lo deseamos. Es decir,
podemos modificar a nuestro antojo el comportamiento de cada etiqueta.
Hay tres
maneras de añadir estilos a nuestras páginas Web.
1.Añadiendo
instrucciones de estilo sólo a etiquetas concretas, o a un grupo de ellas.
2.Incluyendo
las instrucciones de estilo en el documento HTML de una página concreta - de
una manera análoga a cómo se incluye un script de Javascript. Esto permite
cambiar la apariencia de una hoja entera, cambiando unas pocas líneas.
3.Enlazando
todos documentos HTML de todas las páginas que componen un sitio del Web con un
fichero de definición del estilo. De esta manera, se puede cambiar la
apariencia de múltiples páginas retocando un solo fichero.
Podemos
utilizar en nuestras páginas uno, dos o los tres métodos descritos, como se
verá más adelante.
1. Estilo para
etiquetas concretas o grupos de etiquetas
Este método es
el apropiado si sólo se desea cambiar el estilo en unas secciones determinadas
de una página. Con él podemos manipular las propiedades de alguna etiqueta o de
algún grupo de etiquetas.
Se hace
añadiendo el atributo STYLE, que contiene una serie de propiedades, dentro de
la etiqueta correspondiente. Veamos el siguiente ejemplo:
<P>
"Este es
un párrafo normal, sin márgenes a la izquierda ni a la derecha, con el color de
su texto en negro".
<P STYLE="margin-left: 0.5in; margin-right: 0.5in;
color:green">
"Quiero
que este otro párrafo tenga un margen izquierdo de media pulgada, al igual que
el margen derecho. Además quiero que su texto sea de color verde".
Que se verá (en
los navegadores que soportan hojas de estilo) de esta manera:
"Este es
un párrafo normal, sin márgenes a la izquierda ni a la derecha, con el color de
su texto en negro".
"Quiero
que este otro párrafo tenga un margen izquierdo de media pulgada, al igual que
el margen derecho. Además quiero que su texto sea de color verde".
Como se ve en
este ejemplo, hemos variado la manera de cómo se comporta habitualmente la
etiqueta <P>. Podíamos haber conseguido otras muchas más cosas, como se
verá más adelante.
Obsérvese la
sintaxis del atributo STYLE. Se ponen entre comillas una serie de propiedades
(por ejemplo, margin-left), y después de dos puntos se pone el valor de esa
propiedad (en este caso, 0.5in o sea, 0.5 pulgadas). Las distintas propiedades
deberán estar separadas por punto y coma.
Si queremos
cambiar la apariencia de una sección entera (que agrupe un conjunto de
etiquetas), se puede utilizar la etiqueta <DIV>, con la que definimos el
estilo globalmente para esa sección.
En el siguiente
ejemplo cambiamos el color (a rojo) y el tamaño de la fuente (a 16 puntos de
altura) de un bloque de etiquetas por medio de la etiqueta <DIV>, lo que
tiene el mismo efecto que si hubiéramos asignado este estilo separadamente a
cada una de las etiquetas englobadas (<P>, <UL> y <LI>):
<DIV STYLE="font-size: 16pt; color: red">
<P>La
definición del estilo (rojo y 16 puntos), afecta a todo el bloque de etiquetas.
<P>Este
texto también es rojo y tiene 16 puntos de altura.
<P>Al
igual que esta línea.
</DIV>
Que se ve de la
siguiente manera:
La definición
del estilo (rojo y 16 puntos), afecta a todo el bloque de etiquetas.
Este texto
también es rojo y tiene 16 puntos de altura.
Al igual que
esta línea.
¿Qué ocurre si a
una de las etiquetas englobadas por DIV le introducimos un estilo distinto?
Comprobémoslo introduciendo un estilo propio a la segunda etiqueta <P>:
<DIV STYLE="font-size: 16pt; color: red">
<P>
Veamos si la
definición del estilo (rojo y 16 puntos), afecta a todo el bloque de etiquetas,
hasta la etiqueta de cierre de DIV.
<P
STYLE="color: blue">Esta línea es azul, a pesar de estar englobada
dentro de DIV, porque tiene su propio estilo.
<P>Esta
otra cumple con el estilo de DIV, porque no tiene estilo propio.
</DIV>
Este es el
resultado:
Veamos si la
definición del estilo (rojo y 16 puntos), afecta a todo el bloque de etiquetas.
Esta línea es
azul, a pesar de estar englobada dentro de DIV, porque tiene su propio estilo.
Esta otra
cumple con el estilo de DIV, porque no tiene estilo propio.
Como se
comprueba en este caso, el estilo dentro de una etiqueta concreta tiene
precedencia sobre el estilo del bloque, impuesto por DIV.
Aquí comenzamos
a ver la noción de precedencia de unos métodos sobre otros, que como hemos
visto antes, son muy variados. Este es el motivo de que se llamen Hojas de
Estilo en Cascada (hay una cascada de métodos para aplicar los estilos,
teniendo un orden de precedencia riguroso de unos sobre otros). Se verá esto
más adelante.
Hay otra
etiqueta, <SPAN>, que tiene una misión parecida a <DIV>, pero que
se usa para cambiar elementos más pequeños (por ejemplo, palabras o incluso
letras), en lugar de bloques enteros. Por ejemplo:
<P>
En este párrafo
sólamente queremos atribuir un estilo a
esta <SPAN
STYLE="font-family: courier;font-size: 15pt;color:
fuchsia">palabra</SPAN>, que queremos que su fuente sea courier,
de 15 puntos de altura y de color fucsia.
Resultado:
En este párrafo
sólamente queremos atribuir un estilo a esta palabra, que queremos que su
fuente sea courier, de 15 puntos de altura y de color fucsia.
Este método de
introducir el estilo en etiquetas concretas o en conjuntos de etiquetas es
sencillo de aplicar (como hemos visto), y es el adecuado si sólo se desea hacer
algún cambio puntual en una página. Sin embargo, no es un adelanto muy grande
con respecto al HTML, donde existen etiquetas que hacen funciones similares.
Además, si se
desean hacer cambios, hay que examinar todo el documento en busca de etiquetas
dispersas. Si se desean hacer cambios globales a una o más páginas son más
conveniente los otros dos métodos que veremos a continuación.
2. Inclusión
global del estilo en un documento HTML
Se hace
poniendo un bloque de instrucciones dentro de las etiquetas <STYLE>
</STYLE>, que deberá estar colocado dentro de la cabecera del documento,
después del título, entre las etiquetas </TITLE> y </HEAD> (de
igual manera que se hace con los scripts de Javascript).
Esta etiqueta
<STYLE> tiene un atributo, TYPE, que especifica el tipo de medio en que
va a ser publicado en Internet, en nuestro caso será "text/css" (que
permitirá a los navegadores que no soporten este tipo el ignorar la hoja de
estilo). Es decir, la etiqueta queda de esta manera: <STYLE TYPE="text/css">
Por tanto, la
estructura será la siguiente:
<HTML>
<HEAD>
<TITLE> </TITLE>
<STYLE TYPE="text/css">
[bloque de
instruciones de estilo]
</STYLE>
</HEAD>
<BODY>
[conjunto de
todas las etiquetas que componen la página]
</BODY>
</HTML>
Veamos ahora
con un ejemplo, cómo se escribe el bloque de instrucciones del estilo, incluido
dentro de la etiqueta <STYLE> (en el capítulo siguiente se ve con detalle
cada uno de los atributos):
<STYLE TYPE="text/css">
BODY {background: yellow ;font-size: 10pt; font-family: Arial;
margin-left: 0.5in; margin-right: 0.5in}
H1 {background: blue; font-size: 14pt;font-weight: bold; color: red}
H2 {font-size: 12pt;font-weight: bold; color: red}
DIV {background: URL(nubes.jpg)}
</STYLE>
Como se ve en
este ejemplo, se ponen las distintas etiquetas a las que se quiere atribuir un
estilo (en este caso BODY, H1, H2 y DIV, pero podrían haber sido otras
cualesquiera); a continuación del nombre de cada etiqueta, y englobadas por los
signos "{" y "}" van las distintas propiedades con sus
respectivos valores, separadas unas de otras por un punto y coma.
Si se coloca
este bloque en la cabecera del documento HTML, donde se ha indicado antes,
veremos que cada vez que se usa una de las etiquetas que tienen una definición
de estilo, no se comportará de la forma habitual, sino tal como la hemos
definido. El resto de las etiquetas, que no están incluidas en el bloque de
definición del estilo, se comportarán de la forma habitual. Puede comprobarse
lo dicho, viendo una página a la que se le ha aplicado el estilo del ejemplo
anterior.
3. Enlazando
distintos documentos a una hoja de estilo
Si nuestro
sitio del Web está compuesto por muchas páginas, y queremos darles un estilo
uniforme a unas cuantas, en vez de incluir un bloque de definición de estilo
repetido en cada una de ellas (como se ha visto en la sección anterior), se
puede establecer un enlace a un fichero de texto que contiene el bloque de
definición del estilo.
Supongamos que
queremos aplicar a unas cuantas páginas el estilo visto en el ejemplo anterior.
Tendríamos que crear un fichero de texto como este:
BODY {background: yellow ;font-size: 10pt; font-family: Arial;
margin-left: 0.5in; margin-right: 0.5in}
H1 {background: blue; font-size: 14pt;font-weight: bold; color: red}
H2 {font-size: 12pt;font-weight: bold; color: red}
DIV {background: URL(nubes.jpg)}
Obsérvese que
no tiene ninguna etiqueta, pues no es un documento normal HTML, sino que es un
fichero de texto que sólo contiene el bloque de definición del estilo.
Se guarda con
el nombre que se quiera, pero tiene que tener necesariamente la extensión .css
Supongamos que lo guardamos con el nombre de miestilo.css
En todas las
páginas que queremos que tengan este estilo concreto, sólamente deberemos de
añadir (en el mismo sitio de la cabecera que para el caso anterior, es decir
entre </TITLE> y </HEAD>, la siguiente etiqueta:
<LINK REL=stylesheet HREF="miestilo.css"
TYPE="text/css">
Aquí se ha
supuesto que el fichero miestilo.css se ha dejado en el mismo directorio donde
están los documentos HTML. Si no es así, es decir, si está en otro
subdirectorio en el servidor, habría que indicar la ruta (por, ejemplo:
HREF="subdirectorio/miestilo.css").
Un ejemplo de
este método lo constituye este manual, en donde todos los capítulos están
enlazados con un fichero que contiene la hoja de estilo para todos ellos,
llamado wmstyle.css (se puede ver en esta página su texto).
Mezclando los
métodos
Como se ha
visto anteriormente, hay tres métodos de aplicar las hojas de estilo en
cascada.
¿Se pueden
aplicar más de uno a la vez en una misma página?
Sí. Por
ejemplo, en la confección de este manual se utilizan simultáneamente algunos de
ellos. En las páginas del índice y de la portada se utilizan el segundo método
(inclusión de la hoja de estilo en el documento HTML) y también el primero
(inclusión del estilo en etiquetas concretas). Y en la totalidad de los
capítulos se utilizan el tercero (enlace a la hoja de estilo) y el primero.
¿Qué ocurre si
hay información contradictoria entre ellos?
Para evitar
conflictos entre los distintos métodos usados simultáneamente, existe un orden
de precedencia, es decir, cuál prevalecerá sobre el otro si dan órdenes
contradictorias sobre un aspecto concreto.
El orden de
precedencia es el siguiente (de mayor a menor):
1.Estilo dentro
de una etiqueta. 2.Bloque de estilo en la cabecera del documento. 3.Enlace a un
fichero que contiene la hoja de estilo.
Esto quiere
decir que una orden de estilo, por ejemplo el color del texto, puesta dentro de
una etiqueta, prevalecerá sobre la que esté indicada en los otros dos métodos,
si es que se usan en esa página.
Lo más práctico
es utilizar el tercer método (enlace a una hoja de estilo), para dar una
apariencia consistente a todas las páginas, y si es necesario modificar un
aspecto concreto en alguna de ellas, utilizar el primero o el segundo.
En el siguiente
capítulo se detallan los distintos atributos y sus valores.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
----------------------------------------------
24. Hojas de
estilo en cascada.
Atributos
A continuación
se muestra en una tabla el resumen de los atributos que se pueden incuir en las
hojas de estilo. Pulsando el enlace con el nombre del atributo nos lleva a la
sección donde se comenta con más detalle.
AtributoDescripciónValoresEjemplofont-sizeEstablece
el tamaño de texto. puntos (pt)
pulgadas (in)
centímetros
(cm)
pixels
(px){font-size: 12pt}font-familyEstablece la fuente. nombre de la fuente
nombre de la
familia de la fuente{font-family: courier}font-weightEstablece el espesor de la
fuente. extra-light
light
demi-light
medium
demi-bold
bold
extra-bold{font-weight:
bold}font-styleConvierte el texto a cursiva. normal
italic{font-style:
italic}line-heightEstablece la distancia entre líneas. puntos (pt)
pulgadas (in)
centímetros
(cm)
pixels (px)
porcentaje
(%){line-height: 24pt}colorEstablece el color del texto. nombre del color
valores
RGB{color: blue}text-decorationSubraya o remarca el texto. none
underline
italic
line-through{text-decoration:
underline}margin-leftEstablece el márgen izquierdo de la página. puntos (pt)
pulgadas (in)
centímetros
(cm)
pixels
(px){margin-left: 1in}margin-rightEstablece el márgen derecho de la página.
puntos (pt)
pulgadas (in)
centímetros
(cm)
pixels
(px){margin-right: 1in}margin-topEstablece el márgen superior de la página.
puntos (pt)
pulgadas (in)
centímetross
(cm)
pixels
(px)*{margin-top: -20px}text-alignEstablece la justificación del texto. left
center
right{text-align:
right}text-indentEstablece la indentación del texto. puntos (pt)
pulgadas (in)
centímetros
(cm)
pixels
(px){text-indent: 0.5in}backgroundEstablece la imagen o el color del fondo.
URL,
nombre del
color
valor RGB{background: #33CC00}
Explicación de
los atributos
------------------------------------------------------------------------
font-size
El atributo
font-size establece el tamaño del texto en puntos (pt), pulgadas (in),
centímetros (cm), o pixels (px). Ejemplos:
{font-size: 12pt}
{font-size: 1in}
{font-size: 5cm}
{font-size: 24px}
------------------------------------------------------------------------
font-family
el atributo
font-family establece la fuente del texto. Se puede especificar una única
fuente, como por ejemplo:
{font-family: Arial}
u otras fuentes
alternativas, separadas por una coma, como por ejemplo:
{font-family: Arial, Helvetica}
En el ejemplo
anterior, nos aseguramos que los sistemas que no soporten la fuente Arial,
uticen la fuente Helvetica. Es muy aconsejable especificar, como útimo recurso,
un nombre genérico de familia de fuentes. Ejemplo:
{font-family:
Arial, Helvetica, sans-serif}
Estos nombres
genéricos de familia de fuentes (serif, sans-serif, cursive, fantasy, o
monospace) tienen la ventaja de que son representados como las fuentes que
tenga instaladas el usuario.
Si se hace
referencia a una fuente cuyo nombre consiste en varias palabras (separadas por
espacios en blanco), hay que englobarla entre comillas. Ejemplo:
{font-family: "Courier New"}
------------------------------------------------------------------------
font-weight
El atributo
font-weight establece el espesor de la fuente:
{font-weight: medium}
{font-weight: bold}
Los valores
aceptados (extra-light, light, demi-light, medium, demi-bold, bold, y
extra-bold) dependen en las fuentes que tenga instaladas el usuario. (Por
ejemplo, el sistema del usuario puede que sólo permita medium y bold para una
determinada fuente). ------------------------------------------------------------------------
font-style
El atributo
font-style establece la fuente como cursiva:
{font-style: italic}
En el borrador
de la W3C se contemplan además otros posibles estilos (minúsculas, oblicuas,
etc.)
------------------------------------------------------------------------
line-height
Este atributo
establece la separación entre líneas, que se puede expresar en puntos (pt),
pulgadas (in), centímetros (cm), pixels (px) o porcentaje (%). Ejemplo:
{line-height: 20pt}
También se
puede expresar como un porcentaje del valor por defecto:
{line-height:
150%}
En el Explorer
3.0, el espaciado se añade antes de las líneas, no después de ellas. Además
este atributo se comporta de forma impredecible con texto que usa diferentes
tamaños de texto en la misma línea.
------------------------------------------------------------------------
color
Este atributo
establece el color del texto de acuerdo con su valor hexadecimal (véase el Cap.
7), o usando los nombres de colores:
{color:
#33CC00}
{color: red}
Los nombres de
los colores son los siguientes:
<Picture><Picture><Picture><Picture>blacksilvergraywhite<Picture><Picture><Picture><Picture>maroonredpurplefuchsia<Picture><Picture><Picture><Picture>greenlimeoliveyellow<Picture><Picture><Picture><Picture>navybluetealaqua
------------------------------------------------------------------------
text-decoration
Este atributo
permite remarcar el texto. Los valores soportados son underline (subrayado),
line-through (tachado), none (ninguno) e italic (cursiva). Ejemplos:
{text-decoration: underline}
{text-decoration: line-through}
------------------------------------------------------------------------
margin-left, margin-right, y margin-top
Estos atributos
establecen los márgenes (izquierdo, derecho y superior respectivamente) en el
ámbito de una etiqueta. Se pueden especificar los márgenes en puntos, pulgadas
(inches), centímetros o pixels. Por ejemplo:
BODY {margin-left: 0.5in;
margin-right: 0.5in;
margin-top: 1in}
Se pueden usar
valores negativos. Entonces, en vez de contraerse el magen, se extenderá en la
dirección opuesta.
------------------------------------------------------------------------
text-align
Este atributo
permite justificar los elementos HTML a la izquierda, al centro o a la derecha.
Ejemplos:
{text-align: left}
{text-align: center}
{text-align: right}
------------------------------------------------------------------------
text-indent
Además de
establecer los márgenes, se puede provocar una indentación del texto (es decir,
que la primera palabra del párrafo se desplace una cantidad deseada). Se puede
expresar en puntos, pulgadas, centímetros o pixels. Por ejemplo:
P {text-indent:
0.5cm}
hace que los
párrafos que se crean con la etiqueta <P>, empiecen con su primera línea
indentada 0.5 centímetros.
Se pueden usar
valores negativos, que sacan el texto hacia los márgenes.
------------------------------------------------------------------------
background
Se utiliza este
atributo para destacar secciones de una página, estableciendo un color de fondo
o una imagen de fondo.
Para establecer
un color de fondo, se especifica su valor hexadecimal (véase el Cap. 7), o un
nombre de color (ver el atributo color visto anteriormente). Ejemplos:
{background: red}
{background:
#6633FF}
También se
puede colocar una imagen de fondo en el ámbito de la etiqueta. Es decir, se
puede poner, por ejemplo, una imagen de fondo en un párrafo determinado.
Para colocar
una imagen, se especifica el URL entre paréntesis (no entre comillas, como es
lo habitual). Por ejemplo:
{background:
URL(http://www.lander.es/webmaestro/docs/nubes.jpg)}
En este caso se
ha puesto el URL absoluto, es decir, la referencia completa en el servidor.
Pero es más conveniente hacerlo de forma relativa, es decir con respecto al
documento HTML. Si el fichero de imagen y el documento HTML están en el mismo
directorio, no hay que poner ningún URL, sino el nombre del fichero de imagen
directamente. En el ejemplo anterior sería:
{background: URL(nubes.jpg)}
Vamos a ver una
aplicación práctica: poner esta imagen de fondo a un párrafo, utilizando el
método de incluir el estilo en la etiqueta <P>:
<P
STYLE="background: URL(nubes.jpg)"> Este párrafo tiene un fondo
con imágenes, al igual que con el HTML convencional se consigue para toda una
página, pero en este caso está limitado al ámbito de esta etiqueta.
<P> En
cambio, este otro párrafo no tiene imagen de fondo, porque no se le ha incluido
este atributo.
Este es el
resultado:
<Picture>Este
párrafo tiene un fondo con imágenes, al igual que con el HTML convencional se
consigue para toda una página, pero en este caso está limitado al ámbito de
esta etiqueta.
En cambio, este
otro párrafo no tiene imagen de fondo, porque no se le ha incluido este
atributo.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena
-----------------------------
25. Hojas de
estilo en cascada.
Consejos de
utilización
En este
capítulo se amplían los conceptos vistos en los dos capítulos anteriores, y se
introducen algunos nuevos sobre las hojas de estilo en cascada.
Agrupando
distintos atributos
Supongamos que
se quieren atribuir los mismos atributos a diferentes etiquetas, como por
ejemplo:
H1 {font-size: 15pt;
font-weight: bold;
color: maroon}
H2 {font-size: 15pt;
font-weight: bold;
color: maroon}
H3 {font-size: 15pt;
font-weight: bold;
color: maroon}
Se pueden
agrupar de esta manera:
H1, H2, H3 {font-size: 15pt;
font-weight: bold;
color: maroon}
Agrupación de
los atributos del texto
En el capítulo
anterior se han visto una serie de atributos relacionados con la apariencia del
texto. Se pueden simplificar agrupándolos de una manera determinada. Así, por
ejemplo, en lugar de:
P {font-weight: bold;
font-style: italic;
font-size: 12pt;
line-height: 20pt;
font-family: Times, serif; }
Se pueden
agrupar en un único atributo llamado font:
P {font: bold italic
12pt/20pt Times, serif}
Nota: El orden
de los atributos es significativo. Los atributos font-wight y font-style se
deben especificar antes que los demás.
Agrupación de
los atributos de los márgenes
También se
pueden agrupar los tres distintos atributos para los márgenes (superior,
derecho e izquierdo) en un único atributo llamado margin. Así, por ejemplo, en
lugar de:
BODY {margin-top: 20px;
margin-right: -10px;
margin-left: -10px}
Se puede poner:
BODY {margin: 20px -10px-10px}
El orden de
colocación es significativo. Debe ser: superior (top), derecho (right) e
izquierdo (left). Si se pone un único valor, será aplicado a los tres márgenes.
Variaciones por
medio de clases
En el capítulo
23 vimos que uno de los métodos era la inclusión global del estilo, en el que
se definían los estilos de un bloque de distintas etiquetas. Vimos allí este
ejemplo:
<STYLE TYPE="text/css">
BODY {background: yellow ; font-size: 10pt; font-family: Arial;
margin-left: 0.5in; margin-right: 0.5in}
H1 {background: blue; font-size: 14pt; font-weight: bold; color: red}
H2 {font-size: 12pt; font-weight: bold; color: red}
DIV {background: URL(nubes.jpg)}
</STYLE>
Como se puede
ver, se define para la etiqueta H2, por ejemplo, que su texto sea de color rojo
(red). Pero esto hace que, obligatoriamente, todas las cabeceras de nivel H2
sean de este color en toda la página.
Pero nos podría
interesar, por el motivo que sea, que unas veces tenga el color rojo y otras
veces sea de otros colores. Para conseguirlo, se pueden emplear unas clases
(variantes de esta etiqueta). Para ello, se define separadamente la etiqueta
H2, seguida de un punto y un nombre que queramos, como por ejemplo:
H2.rojo {font-size: 12pt; font-weight: bold; color: red}
H2.verde {font-size: 12pt; font-weight: bold; color: green}
H2.azul {font-size: 12pt; font-weight: bold; color: blue}
y en la página,
podremos utilizar, según nos convenga, una u otra de estas variantes de la
siguiente manera:
<H2
CLASS=rojo>Esta cabecera será de color rojo</H2>
<H2
CLASS=verde>Esta cabecera será de color verde</H2>
<H2
CLASS=azul>Esta cabecera será de color azul</H2>
Como se ve,
esto nos da una flexiblidad aún mayor para obtener la apariencia que queramos
en nuestra páginas.
Aplicación de
estilo a los enlaces
Las hojas de
estilo también permiten modificar a voluntad la apariencia de los enlaces,
asignando cualquiera de los atributos vistos (color del texto, tamaño de la
fuente, existencia o no del subrayado, etc.).
Hay dos tipos
de enlaces que se pueden modificar:
A:link enlaces
que todavía no han sido visitados (pulsados)
A:visited
enlaces que ya han sido visitados (pulsados)
Por ejemplo:
A:link {color:
red}
A:visited {color: green}
hace que los
enlaces sin visitar sean de color rojo, y una vez visitados se pongan de color
verde.
Si se les
aplica el atributo text-decoration visto en el capítulo anterior, ajustado al
parámetro none (ninguno), hace que los enlaces no estén subrayados. Ejemplo:
A:visited {color: fuchsia; text-decoration: none}
hace que los
enlaces visitados sean de color fucsia y no estén subrayados.
Comentarios
Se pueden
añadir comentarios propios a las hojas de estilo, que pueden servir de
recordatorio posterior. Se pueden colocar en cualquier sitio de la
especificación, siempre que vayan englobados entre los caracteres /* y */.
Ejemplo:
H1 {font:
20pt/22pt bold; color=#00FF00} /*Color verde para las cabeceras de nivel 1 */
Diseñando para
todos los navegadores
Si se utiliza
el método de incluir un bloque de estilo en la cabecera (ver cap. 23), que
consiste en poner las distintas instrucciones de estilo entre las etiquetas
<STYLE> y </STYLE>, tal como en el ejemplo que se vió allí:
<STYLE TYPE="text/css">
BODY {background: yellow ; font-size: 10pt; font-family: Arial;
margin-left: 0.5in; margin-right: 0.5in}
H1 {background: blue; font-size: 14pt; font-weight: bold; color: red}
H2 {font-size: 12pt; font-weight: bold; color: red}
DIV {background: URL(nubes.jpg)}
</STYLE>
en los
navegadores que no implementen las hojas de estilo se ignorarán las etiquetas
<STYLE> y </STYLE>, pero podría ocurrir que aparezca como texto el
bloque de definición del estilo.
Para evitar
esto, es conveniente englobar dicho bloque de información entre los símbolos
<!-- y --> (como se vió en el Cap. 2), que son los que nos permiten hacer
comentarios no visibles en la pantalla. Por tanto, es conveniente poner el
bloque de definición del estilo de esta manera:
<STYLE TYPE="text/css">
<!--
BODY {background: yellow ; font-size: 10pt; font-family: Arial;
margin-left: 0.5in; margin-right: 0.5in}
H1 {background: blue; font-size: 14pt; font-weight: bold; color: red}
H2 {font-size: 12pt; font-weight: bold; color: red}
DIV {background: URL(nubes.jpg)}
-->
</STYLE>
Aprovechando la
herencia entre etiquetas
Como sabemos,
las etiquetas de un documento HTML tienen una estructura definida, que de
manera muy resumida se puede poner de esta forma:
<HTML>
<BODY>
.... (conjunto
de etiquetas que conforman la página)
</BODY>
</HTML>
Como se puede
ver, la etiqueta <BODY> engloba a todas las demás. Si se la asigna un estilo
determinado a esta etiqueta, todos los elementos que estén dentro de la página
(tablas, listas, párrafos, etc.) heredarán este estilo.
Por tanto, para
establecer un estilo global a la página entera, lo más apropiado es
atribuíserlo a la etiqueta <BODY>. Por ejemplo:
BODY {font: 10pt/11pt Arial,
Helvetica, sans-serif;
background:
url(nubes.jpg);
margin-left: 0.5in;
margin-right: 0.5in}
establece para
la página entera la fuente, separación entre líneas, imagen de fondo y espesor
de los márgenes. Si se precisa que ciertos elementos concretos dentro de la
página tengan otras características distinta a la general, entonces hay que
definirlas por separado.
WebMaestro:
http://www.lander.es/webmaestro - © Francisco Arocena