Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A modo de introducción
La web no es más que un montón de documentos enlazados unos con otros que, para
ser interpretados deben estar codificados de cierta manera, utilizando un lenguaje
que todos los navegadores entiendan. Este lenguaje es llamado HTML (HyperText
Markup Language).
Para comenzar a hacer una página web, sólo son necesarios dos elementos:
1. Un procesador de texto cualquiera como el Block de Notas de Windows o
cualquier otro que permita guardar los archivos como 'Sólo Texto', es decir, sin
formatos de ningún tipo.
2. Un navegador.
El hecho que no sea necesario ningún programa especial es una de las características
más importantes para el programador. Esto permite crear páginas web con cualquier
PC y sistema operativo ya que: el código HTML sólo es texto.
Es cierto que existen programas que ayudan a escribir documentos HTML pero, es
conveniente comenzar a hacerlo de una manera manual, para comprender bien la
estructura del lenguaje. Una vez que hayamos pasado esta etapa básica, entonces,
recién entonces, podemos utilizar herramientas simples como HTMLPad,
EZPad,WeBuilder, Amaya o NVU.
Personalmente, no recomiendo utilizar los programas de tipo WYSIWYG (What You See
Is What You Get, en inglés, "lo que ves es lo que obtienes") como
FrontPage,Dreamweaver, GoLive si no se tienen claros los conceptos del lenguaje ya
que algunas de las características avanzadas de estas herramientas pueden distraernos
o confundirnos. Generalmente, agregan códigos automáticos que terminan por
ensuciar lo que hacemos, nos impiden analizarlo o nos dificulta encontrar problemas.
Jamás deben usarse procesadores de texto como Word u OpenOffice ya que lo único
que se necesita es un archivo en texto plano.
Una vez que se escriben los códigos necesarios con un simple procesador de textos, el
archivo se guarda con cualquier nombre y con extensión .html o .htm (en MS-DOS o
cualquier sistema que sólo acepte tres letras en la extensión) y luego, se lo abre con
el navegador.
Principios elementales
El principio esencial del lenguaje HTML (HyperText Markup Language) es el
uso de las etiquetas (tags) que tienen la siguiente estructura:
<ETIQUETA> inicio
[.......]
</ETIQUETA> cierre
Una etiqueta es una palabra (en mayúscula o minúscula), delimitada por los
signos <(mayor que) y > (menor que).
Por regla general, las etiquetas forman bloques que se inician con una
instrucción y finalizan con la misma instrucción a la que se le antepone una
barra inclinada (/):
Cada elemento se divide en tres partes: una etiqueta inicial, el contenido, y
una etiqueta final. Todo lo que hay entre la etiqueta de apertura y la etiqueta
de cierre se ve afectado por esa etiqueta:
<ETIQUETA>
</ETIQUETA>
</ETIQUETA>
<ETIQUETA />
<BASE href="http://bolsanegra.net/pages/pagina1.html">
y más tarde se hiciese una referencia a una URL relativa como esta:
<A href="../imagenes/ejemplo.gif">VINCULO</A>
la URL apuntaría a:
http://bolsanegra.net/imagenes/ejemplo.gif
<HTML>
<HEAD>
<TITLE>[Aquí va el título]</TITLE>
[Aquí van las etiquetas del encabezado (no son visibles)]
</HEAD>
<BODY>
[Aquí van las etiquetas del cuerpo (lo que muestra la página)]
</BODY>
</HTML>
Los párrafos
Ahora que conocemos las estructura básica de una página, podemos empezar
a agregarle algo de contenido.
Una de las características principales de una página web es que, cuando
ingresamos un texto, este se va a “acomodar” al tamaño de la ventana sin que
tengamos que agregar ninguna instrucción o carácter especial. Por el
contrario, si queremos separar el texto en distintos párrafos debemos
indicarlo y para eso usamos la etiqueta <P> </P>:
[Este es un párrafo.]
<P>
[Y este es otro, entre ambos se verá una línea en blanco.]
</P>
Se verá así:
Esto lo escribo en una línea. Y esto lo escribo en otra. Y aquí dejo
10 espacios en blanco.
El atributo align en la etiqueta P permite especificar la alineación del párrafo.
Puede tener tres valores: “center“, “left” y “right” (centrado, a la izquierda
y a la derecha):
<P ALIGN="left">
en el centro
a la derecha
Cada una de esta etiquetas mostrará el texto comprendido entre ellas son un
tamaño distinto donde, por defecto, H1 será el mayor y H6 el menor.
<H1>
<H2> <H3>
<H4> <H5> <H6>
Otra etiqueta elemental, <CENTER> </CENTER>, permite central los textos (y
cualquier otra cosa comprendida entre ellas) en la pantalla:
<CENTER>
<HR />
align=left|center|
alineación
right
<CENTER>
<P>
<CENTER>
<P>
EJEMPLO PRACTICO:
En un procesador de textos cualquiera escribimos lo siguiente:
<HTML>
<HEAD>
</HEAD>
<BODY>
<H1>
<CENTER>Este es el título</CENTER>
</H1>
<HR />
<P>
tincidunt ut laoreet
</P>
</BODY>
</HTML>
Ahora, guardamos el archivo con el nombre que se nos ocurra pero con
extensión HTM o HTML y lo abrimos con el navegador.
<STRONG>
<EM>
<CENTER>
</CENTER>
</EM>
texto en negrita
</STRONG>
m<sup>2</sup>
V<sub>x</sub>
Para controlar cambiar el tamaño de las fuentes hay dos etiquetas de uso
frecuente que permiten aumentarlo o disminuirlo, son <BIG>
</BIG> y <SMALL> </SMALL>:
Tamaño de texto normal: ABCDEFG abcdefg 01234567
[texto normal]
<BIG>
texto grande
<BIG>
aún más grande
<BIG>
</BIG>
</BIG>
</BIG>
[texto normal]
texto grande
<PRE>
este texto
preformateado
se mostrará
</PRE>
Se verá así:
este texto
Para terminar, hay algunas etiquetas especiales que no se utilizan para dar
formato sino para identificar el tipo de texto.
CITE se utiliza cuando el texto es una cita o una referencia, DFN indica que se
define el término y VAR que el texto es una variable o un argumento, por
defecto, se muestran en itálica:
Utilizando la etiqueta CITE para mostrar una cita.
Con la etiqueta KBD indicamos que el texto debe ser introducido por
el usuario.
Listas
Las listas nos permiten agregar información de manera más clara. Hay tres
tipos diferentes: las listas no-ordenadas (no numeradas), las listas ordenadas
(numeradas) y las listas de definiciones.
Las listas no-ordenadas (unordered lists) sirven para mostrar cosas que no
necesitan ir precedidas por un número. La etiqueta a utilizar es <UL>
</UL> y, cada item en la lista se agrega con la etiqueta <LI> </LI>:
<UL>
</UL>
Las listas ordenadas (ordered lists) sirven para mostrar datos en un orden
determinado. Los items se agregan igual que en el caso anterior, la diferencia
es que utilizamos la etiqueta <OL> </OL> para enmarcar todo. El resultado
será el mismo pero cada item estará precedido por un número correlativo:
<OL>
</OL>
Las listas de definición se utilizan para glosarios. Toda la lista debe ir entre
las etiquetas <DL> </DL> (definition list). A diferencia de las anteriores, cada
renglónn tiene dos partes: el nombre de la cosa a definir (definition term) se
coloca en la etiqueta <DT> </DT> y la definición en si misma (definition
definition) en la etiqueta<DD> </DD>:
<DL>
</DL>
LISTA NO-ORDENADA
• Un item
• Otra otro item
• Cualquier item
• Ultimo item
LISTA ORDENADA
1.Un item
2.Otra otro item
3.Cualquier item
4.Ultimo item
LISTA DE DEFINICIONES
Palabra 1
La definición de la palabra 1
Palabra 2
La definición de la palabra 2
Al igual que casi todas las etiquetas HTML, las listas pueden anidarse, es
decir, ponerse una dentro de otra:
<UL>
<LI> Animales
<UL>
<LI> Mamíferos
<UL>
</UL>
</LI>
</UL>
<UL>
<LI> Reptiles
<UL>
</UL>
</LI>
</UL>
</LI>
<LI> Vegetales
<UL>
</UL>
</LI>
</UL>
Fuentes
Hay dos etiquetas que pueden utilizarse para manejar las fuentes pero ambos
están en desuso. El elemento <FONT> </FONT> cambia el tamaño, tipo y
color de la fuente, y BASEFONT establece el tamaño base de fuente (los
cambios producidos con FONTson relativos a este tamaño base , si no se
indica, el tamaño base es 3).
En ambos casos, los atributos son:
[texto]
</font>
<br />
[texto]
</font>
<br />
[texto]
</font>
<br />
<br />
Estos códigos empiezan siempre con el signo & y acaban siempre con ; (punto
y coma).
De una manera similar, existen códigos para escribir letras específicas de
distintos idiomas. En castellano, los códigos de las vocales acentuadas se
forman comenzando con &, seguido de la vocal y por la
palabra acute (aguda). Como todos los demás, siempre terminan con el
signo ; (punto y coma):
á para la á
é para la é
í para la í
ó para la ó
ú para la ú
Á para la Á
É para la É
Í para la Í
Ó para la Ó
Ú para la Ú
ñ para la ñ
Ñ para la Ñ
ü para la ü
Ü para la Ü
¿ para ¿
¡ para ¡
Vínculos
Una de las características destacables de una página web es la posibilidad de
unir distintos documentos por medio de hipertexto o hipervínculos. Eso que
comunmente llamamos vínculos o enlaces.
Estos enlaces o hipertexto son zonas (generalmente palabras o frases)
especiales que permite pulsar sobre ellas para ir a otras páginas.
En general, los enlaces tienen la siguiente estructura:
HREF = "subdirectorio/PAGINA2.html"
HREF = "../PAGINA2.html"
<ADDRESS>
<A href="URL_cualquiera">
Nombre de la persona
</A>
Imágenes
La forma de incluir imágenes en nuestras páginas es muy similar a como lo
hacemos con los enlaces a otras páginas. La única diferencia es que, en
lugar de indicar el nombre y la localización de un documento HTML, se le
indica el nombre y la localización de un archivo que contiene una color.
La etiqueta que utilizamos es IMG y el atributo SRC (image source, fuente de
la imagen):
Las reglas respecto a la forma de ingresar el destino son las mismas que las
que rigen para los enlaces. Si no se indica nada quiere decir que el archivo
está en el mismo directorio que el documento HTML. Si la imagen está fuera
de nuestro sitio, se debe indicar la URL o dirección completa,
El formato de la imagen es, en términos generales, irrelevante aunque
normalmente se utilizan los formatos GIF, JPG y PNG.
Un aspecto muy importante a tener en cuenta es el tamaño de las imágenes.
Cuanto más grande sea el archivo, más tiempo de carga será necesario. Dado
que los navegadores leen y ejecutan secuencialmente, al encontrarse una
etiqueta IMG, se inicia la carga de la imagen y recién cuando termina, se
continúa con el resto de la página. Esto es así por una simple razón, el
navegador desconoce el tamaño de la imagen y, por lo tanto debe cargarla por
completo para saber dónde continuar.
Una forma de minimizar este efecto es utilizar otros dos
parámetros, WIDTH (ancho) yHEIGHT (alto). De esta manera, le decimos al
navegador cuál es el tamaño de la imagen y puede “reservar” el espacio
necesario para continuar con la carga del resto de la página a la vez que
también va cargando la imagen.
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.
Las imágenes pueden combinarse con el texto de tal forma que este se ubique
en cierta posición, rodeándola. Para eso, los atributos ALIGN admiten varios
valores. En los siguientes ejemplos se muetran las distintas posibibilidades. En
todo los casos, el texto se escribe sin saltos de línea, inmediatamente después
de la etiqueta IMG:
Otra posibilidad que nos dan las imágenes es la de utilizarlas como enlace a
otra página. La forma de hacerlo es crear un enlace normal y reemplazar el
texto explicativo por la imagen:
<A HREF="URL">
</A>
<A HREF="URL">
</A>
Por medio de los parámetros WIDTH y HEIGHT podemos mostrar las imágenes
con una dimensión diferente a la que realmente tiene, variando el ancho o el
alto. Esto es muy utilizado para poner en la página un thumbnail (una
reproducción en pequeño de una imagen), que hace de enlace a la imagen. De
esta manera podemos no “recargamos” la página, y el visitante será quien
decida qué imágenes desea ver con su tamaño real.
<A HREF="URL">
</A>
WIDTH y HEIGHT no modifican el archivo original y, por lo tanto, aún cuando
las veamos pequeñas, la cantidad de bytes a cargar será la misma que si la
mostráramos completas.
Tablas
Las tablas en HTML son una de las formas más comunes de tabular el
contenido alineándolo en filas y columnas.
La etiqueta general, que engloba a todas las demás es <TABLE> y </TABLE>.
Es decir:
<TABLE>
</TABLE>
<TABLE>
<TR>
</TR>
<TR>
[etiquetas de las celdas segunda fila]
</TR>
</TABLE>
En el último nivel (dentro de las anteriores) están las etiquetas de cada celda
(table data), que son <TD> y </TD> y las de encabezado (table header) que
es <TH> y</TH>:
Dentro de las etiquetas TD se coloca el contenido (texto, imágenes, etc.) y
dentro de las etiquetas TH un texto que, por defecto, se mostrará en negrita.
Hay que repetir la etiqueta tantas veces como celdas queremos que haya en
esa fila:
<TABLE>
<TR>
<TH>
TITULO O ENCABEZADO
</TH>
</TR>
<TR>
<TD>
CONTENIDO
</TD>
</TR>
</TABLE>
<TABLE>
<CAPTION>
TITULO DE LA TABLA
</CAPTION>
</TABLE>
Por último, hay una serie de etiquetas opcionales que se utilizan para agrupar
otras etiquetas.
COL (columna de una tabla) y COLGROUP (grupo de columnas de una tabla) se
usan para agrupar columnas, mientras que THEAD (cabecera de
tabla), TFOOT (pie de tabla) y TBODY (cuerpo de tabla) se usan para agrupar
filas.
Este ejemplo es una tabla simple, con dos filas y tres columnas con un
encabezado. Dentro de cada celda se incluye un texto:
<TABLE>
<CAPTION>
</CAPTION>
<TR>
<TH>
COLUMNA 1
</TH>
<TH>
COLUMNA 2
</TH>
<TH>
COLUMNA 3
</TH>
</TR>
<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>
<TABLE BORDER=1>
<TR>
<TD>
<IMG SRC="URLimagen">
</TD>
<TD>
<TABLE BORDER=1>
<TR>
<TD>1</TD><TD>2</TD>
</TR>
<TR>
<TD>3</TD><TD>4</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
1 2
3 4
Cada etiqueta de una tabla posee una serie de atributos que le dan una gran
flexibilidad.
Estos son los atributos del elemento TABLE:
align=alineamiento posición de la tabla respecto a la ventana
<TABLE BORDER=ancho>
Por defecto, el valor a BORDER es 1 por lo que, si no queremos verlo,
debemos escribir BORDER=0.
Normalmente es el navegador el que se encarga de dimensionar el tamaño
total de la tabla de acuerdo con el número de filas y columnas y,
fundamentealmente, de acuerdo al contenido de las celdas, espesor de los
bordes, etc. Sin embargo, a veces es necesario forzarlo para que la tabla
tenga unas dimensiones totales mayores o menores de las que le
corresponden, tanto en ancho como en alto. Esto se consigue añadiendo
dentro de la etiqueta de la tabla los atributos WIDTH y HEIGHT, y dándoles un
valor que puede ser un porcentaje, o a una cifra expresada en pixeles.
Por defecto, las tablas son transparentes pero pueden tener un color de
fondo, para ello usamos el atributo BGCOLOR=”#XXYYZZ”.
<TABLE BGCOLOR="#000000">
También es posible utilizar una imagen como fondo, para ello usamos el
atributoBACKGROUND=”URLimagen”.
<TABLE BACKGROUND="URLimagen">
Por defecto, la separación entre las distintas celdas de una tabla es de dos
pixeles pero eso puede modificarse con el atributo CELLSPACING. De forma
similar, por defecto, la separación entre el borde y el contenido dentro de las
celdas es de un pixel pero se puede cambiar con el atributo CELLPADDING.
align=left|center|right|justify|char alineación
<TD BGCOLOR="#000000">
<TD BACKGROUND="URLimagen">
1 2
3 4
Normalmente, el contenido de una celda está alineado a la izquierda, el
atributoALIGN es el que se usa para modificarlo. Estos son los valores
utilizados habitualmente:
<TD ALIGN="center">centrado</TD>
<TABLE BORDER=1>
<TR>
<TD>CELDA 1</TD>
<TD>CELDA 2</TD>
<TD>CELDA 3</TD>
</TR>
<TR>
<TD>CELDA 4</TD>
<TD>CELDA 5</TD>
<TD>CELDA 6</TD>
</TR>
</TABLE>
<TABLE BORDER=1>
<TR>
<TD>CELDA 3</TD>
</TR>
<TR>
<TD>CELDA 4</TD>
<TD>CELDA 5</TD>
<TD>CELDA 6</TD>
</TR>
</TABLE>
CELDAS 1 y 2 CELDA 3
CELDA 4 CELDA 5 CELDA 6
Y también extendemos la celda 4 para que abarque la celdas 5 y 6:
<TABLE BORDER=1>
<TR>
<TD>CELDA 3</TD>
</TR>
<TR>
</TR>
</TABLE>
CELDAS 1 y 2 CELDA 3
CELDA 4, 5 y 6
En el otro sentido, extendemos la celda 1 para que abarque la celdas 4:
<TABLE BORDER=1>
<TR>
<TD>CELDA 2</TD>
<TD>CELDA 3</TD>
</TR>
<TR>
<TD>CELDA 5</TD>
<TD>CELDA 6</TD>
</TR>
</TABLE>
CELDA 2 CELDA 3
CELDAS 1 y 4
CELDA 5 CELDA 6
Por último, combinamos ambos atributos y extendemos la celda 5 para que
abarque la celdas 6:
<TABLE BORDER=1>
<TR>
<TD>CELDA 2</TD>
<TD>CELDA 3</TD>
</TR>
<TR>
</TR>
</TABLE>
CELDA 2 CELDA 3
CELDAS 1 y 4
CELDAS 5 y 6
Estos son los atributos de los elementos COL y COLGROUP que se verán más
adelante:
span=valor los atributos de COL afectan a N columnas
align=left|center|right|justify|char alineación
Formularios
Una de las técnicas más utilizadas para que una página web tenga cierto grado
de interactividad es el uso de los llamados formularios que son los que nos
permiten buscar, hacer pedidos, escribir mensajes, suscribirse, etc.
Aunque las etiquetas HTML para formularios no son muchas, tienen un número
muy amplio de atributos y, algunos de ellos, son muy complejos.
Para sólo dar una idea de su funcionamiento, un formulario se crea con la
etiqueta<FORM> </FORM>, dentro de la cual se insertan otras que crean los
controles: botones, entrada de texto, casillas de verificación, menúes, etc.
Estos son los atributos del elemento FORM:
accept-charset=tipo lista de codificaciones caracteres soportadas
enctype=tipo
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
[elementos para introducir datos]
[botón de envío]
</FORM>
En este caso, el atributo ACTION indica la acción a efectuar (enviar datos por
email). El atributo METHOD=POST indica que los datos sean
enviados inmediatamente apenas se pulse el botón de envio (no se analizan ni
verifican). El atributoENCTYPE=”TEXT/PLAIN” hace que sea enviado como
texto plano, sin codificar.
Los elementos para introducir los datos pueden ser de diferente
tipo, texto, menúesy botones. En todos los casos, se utiliza la
etiqueta <INPUT> </INPUT>:
En donde:
xxx es una palabra que indica el tipo de introducción
yyy es el nombre que le asignamos a la variable de introducción del dato
zzz es la palabra asociada a un elemento
¿Confuso?, no es para menos, veamos uno por uno:
Para introducir datos por medio de una línea de texto, la palabra clave
es INPUT TYPE=”text” y, el VALUE no se utiliza. Por ejemplo solicitamos que
se introduzca un nombre:
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
Escriba su nombre:<BR>
</FORM>
Se ve así:
Escriba su nombre:
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
</FORM>
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
</FORM>
ROJO
VERDE
AZUL
El atributo opcional CHECKED se ha añadido en la primera etiqueta para que
aparezca marcada por defecto.
Todo esto muy bien pero ¿cómo se envian los datos?
El elemento esencial en cualquier formulario es el botón de envío que se
consigue con la etiqueta INPUT TYPE=”submit”.
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
Escriba su nombre:<BR>
</FORM>
Otro botón que puede agregarse con facilidad es el de borrado de los datos
introducidos. Es muy similar al anterior, INPUT TYPE=”reset”.
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
Escriba su nombre:<BR>
Escriba su nombre:
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
Escriba su nombre:<BR>
<INPUT TYPE="text" NAME="nombre">
<INPUT TYPE="image" SRC="URLimagen" BORDER=0>
</FORM>
Escriba su nombre:
onClick=".......">
name=texto
<FORM ACTION="mailto:dirección_de_email"
METHOD="POST" ENCTYPE="TEXT/PLAIN">
Introducir comentarios:<BR>
</TEXTAREA>
</FORM>
Que resulta:
Introducir comentarios:
cols=cantidad ancho
name=texto
readonly
rows=cantidad alto
Por defecto, sólo se ve una opción, si queremos que sean visibles más,
añadimos el atributos MULTIPLE SIZE=”cantidad”.
Seleccione un color:
<OPTION VALUE="http://www.google.com.ar/">Google</OPTION>
Este es el resultado:
selected
Escriba su apellido:
Seleccione un color:
Introducir comentario:
Enviar datos
Borrar datos
Insertar elementos
Los scripts son pequeños programas que se ejecutan en la PC del usuario. El
lenguaje más utilizado es JavaScript pero existen otros.
Como cada navegador tienes rutinas diferentes para hacer las mismas cosas,
es necesario tener un uso bastante profundo del lenguaje para
implementarlas.
No todos los usuarios tienen navegadores que acepten scripts, y, en muchos
casos, los desactivan por lo que no es aconsejable depender de ellas para que
la página funcione. Lo ideal es siempre tener una alternativa.
Generalmente se insertan en el HEAD pero, sependiendo de lo que hagan,
pueden ser ubicadas en cualquier parte de la página. En el atributo TYPE, se
debe especificar el lenguaje utilizado:
<SCRIPT TYPE="text/javascript:">
[...............]
</SCRIPT>
Los scripts también pueden estar en archivos externos y para cargarlos,
utilizamos el atributo SRC:
<SCRIPT TYPE="text/javascript:">
[...............]
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</APPLET>
Al igual que con los scripts, es recomendable agregar una línea de advertencia
para que los navegadores que no soporten Java muestren un texto indicativo.
Una página web también puede tener otro tipo de archivos incorporados
(sonidos, video, Flash). Hasta hace muy poco, las etiquetas para cada tipo de
archivo eran diferentes e incluso, variaban según el navegador. Por ejemplo
una forma de incorporar un sonido de fondo en Internet Explorer era:
y en Netscape:
TYPE="application/x-shockwave-flash"
DATA="URL_archivo">
</OBJECT>
[ ....... ]
</OBJECT>
[ ....... ]
</OBJECT>
<OBJECT DATA="URLarchivo.HTML">
[ ....... ]
</OBJECT>
</IFRAME>
Estilo
Las hojas de estilo permiten controlar la presentación de una página web
determinando 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 y, además, el fomateo
individual de cualquier etiqueta.
Como veremos más adelante, se pueden definir variaciones de diseño por
medio de las “clases”. Si necesitáramo varios estilos de párrafos diferentes, se
pueden definir clases para la etiqueta P, por
ejemplo: P.normal, P.subrayado, P.tablas, etc.
Las hojas de estilo en cascada (CSS) permiten definir las reglas que utiliza el
navegador para presentar una página web y esto lo podemos hacer de tres
maneras diferentes:
• Añadiendo instrucciones de estilo a etiquetas concretas
• Incluyendo las instrucciones en el documento HTML de una página
concreta
• Enlazando todos los documentos con un archivo de definición del estilo
Para agregar estilo a una etiqueta concreta, debemos añadirle el
atributo STYLE que contendrá una serie de propiedades:
<P>
Texto normal.
</P>
</P>
Texto normal.
<DIV>
</DIV>
<SPAN>
</SPAN>
Si queremos cambiar la apariencia de una sección entera (que agrupe un
conjunto de etiquetas), utilizamo la etiqueta DIV, y definimos el estilo
globalmente:
</DIV>
</P>
</DIV>
diferente.</P>
</DIV>
<STYLE TYPE="text/css">
[lista de propiedades]
</STYLE>
<STYLE TYPE="text/css">
</STYLE>
Todos los métodos pueden aplicarse a la vez en una misma página Podemos
tener un archivo externo genérico, una o varias etiquetas STYLE y usar el
atributo style en etiquetas individuales.
Para evitar conflictos entre los distintos métodos, existe un orden de
precedencia, es decir, cuál regla prevalecerá sobre la otra si dan definiciones
contradictorias.
El orden de precedencia de mayor a menor es el siguiente:
• los estilos definidos dentro de una etiqueta con el atributo STYLE
• los estilos definidos por la etiqueta STYLE
• los estilos contenidos en los archivos externos
Los marcos
Los frames (marcos) son un método que aún es utilizado para dividir la
pantalla en diferentes ventanas que pueden actuar independientemente unas
de otras, como si se tratara de páginas diferentes.
Su característica más importante es que, haciendo click sobre un vínculo en
un frame, puede cargarse otro documento HTML en un sector de la página.
Frecuentemente se usa tener un área estrecha en un panel lateral donde se
encuentra un índice con vínculos que cargan las distintas páginas.
Para crear una página con frames, debemos crear un documento HTML
especial en el que se definen las zonas su distribución, tamaño y contenido.
Imaginemos que la página va a tener dos frames distribuidos en columnas (una
al lado de la otra) y que la izquierda ocupa el 20% del ancho de la pantalla, y
el otro, el 80% restante.
<HTML>
<HEAD>
<TITLE>Ejemplo Frames</TITLE>
</HEAD>
</FRAMESET>
</HTML>
<HTML>
<HEAD>
<TITLE>Indice</TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
TARGET (destino) sirve para hacer que al ser activado el enlace no se cargue
en el frame del vínculo sino en otro, en el que hayamos llamado con ese
nombre en el documento de definición de los frames.
Para evitar que los navegadores que no soportan frames no carguen la página
utilizamos la etiqueta NOFRAMES y la colocamos a continuación de las
etiquetasFRAME:
<HTML>
<NOFRAMES>
<BODY>
si no se soportan frames]
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>
<FRAMESET ROWS="100,*,100">
Si hay más de un frame con asterisco, ese espacio se dividirá por igual entre
ellos.
Si hay un número antes del asterisco, ese frame tendrá esa cantidad
adicional , “2*,*”daría dos tercios para el primer frame y un tercio para el
otro.
Por defecto, los frames se muestran con un borde de separación entre ellas,
para eliminarlo, se debe incluir el atributo FRAMEBORDER=0 dentro de la
etiquetaFRAMESET y, para que también desaparezcan las separaciones entre
frames hay que añadir el atributo FRAMESPACING=0
La etiqueta FRAME posee otros atributos aparte de NAME y SRC:
MARGINWIDTH=”número” y MARGINHEIGHT=”número” controlan los
márgenes dentro de un frame.
SCROLLING=”yes|no|auto” define si el frame tendrá o no una barra de
despazamiento.
NORESIZE no se le asigna un valor sino que indicar que la ventana no se pueda
re-dimensionar FRAMEBORDER=”no” elimina el borde.
Como vimos, el atributo TARGET indica donde se mostrará el contenido.
El nombre puede ser cualquiera siempre que el primer carácter sea
alfanumérico y no pueden incluirse algunos cuyos significados están
reservados:
TARGET=”_blank” hace que se abra el vínculo en una nueva ventana.
TARGET=”_self” hace que el vínculo se cargue en el propio frame.
TARGET=”_top” hace que el vínculo se cargue a pantalla completa,
suprimiendo todos los frames.
Como cualquie etiqueta, los frames pueden anidarse, es decir, ponerse uno
dentro de otro.
Supongamos que queremos hacer lo siguiente, un frame horizontal superior
ocupando todo el ancho de la pantalla; otro vertical en la parte izquierda,
debajo del anterior y un tercero ocupando el resto de la pantalla.
<HTML>
<HEAD>
<TITLE>Frames anidadas</TITLE>
</HEAD>
<FRAME SRC="filasuperior">
<FRAME SRC="columnaizquierda">
<FRAME SRC="columnaderecha">
</FRAMESET>
</FRAMESET>
</HTML>
Hay una serie de atributos que son comunes a casi todos los elementos:
<BODY BGCOLOR="#RRGGBB">
El fondo de la página puede ser una imagen. Esta, se repite en toda la página,
como si fuera un mosaico. El atributo a usar es BACKGROUND cuyo contenido
será la URL de la imagen.
Hay que tener en cuenta que algunos navegadores no muestren las imágenes,
por lo tanto es conveniente definir un color de fondo para que la página pueda
mostrarse correctamente.
Mapas e imágenes
Hemos visto que podemos enlazar una página con otra usando vínculos de
texto o imágenes individuales.
Una alternativa es utilizar una imagen única, para enlazar a varias páginas,
yendo a una u otra según el área en donde se haga click. A este tipo de
imagenes se las llaman mapas.
Para crear un mapa, debemos partir de una imagen, y utilizar código HTML
para crear las áreas (zonas activas o hotspots).
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 cualquie programa gráfico.
La etiqueta que crea un mapa es <MAP> </MAP> que contendrá una o más
etiquetas<AREA /> con los datos de cada zona.
Supongamos que la primera zona activa tiene estas dos coordenadas (a1,b1) y
(c1,d1) y que la segunda zona activa tiene las coordenadas (a2,b2) y (c2,d2),
el código resultante sería este:
<MAP NAME="nombremapa">
</MAP>
WIDTH="ancho" height="alto">
Para definir una zona poligonal hay que usar el atributo SHAPE=”POLYGON” y
conocer las coordenadas de los distintos puntos (x1,y1), (x2,y2), (x3,y3), etc:
HREF="URLvinculo">
Crear estilos
Para poder utilizar hojas de estilo y sacarles el máximo provecho es
indispensable entender cuál es la estructura de un documento HTML.
Podemos imaginarnos que una página web es un conjunto de cajas (bloques)
metidas una dentro de la otra, siendo la más grande, la que contiene a todas,
el elemento definido con la etiqueta HTML.
En este tipo de estructura, donde hay elementos contenidos en otros hay una
cierta jerarquía, los elementos padre son los contenedores y los elementos
hijos los contenidos:
color: yellow;
margin: 20px;
Los selectores pueden ser aún más complejos; los selectores contextuales
permiten aplicar reglas de estilo a elementos insertados dentro de otros. En
este ejemplo, la regla se aplicaría a los elementos STRONG que estén
incluidos (hijos) en un elementoUL (padre):
<H2 CLASS=rojo>
</H2>
<H2 CLASS=verde>
</H2>
Las clases pueden no estar asociadas a una etiqueta sino que pueden ser
independientes. Para esto, simplemente escribimos su nombre anteponiéndole
un punto.
Por ejemplo, podemos definir una clase genérica para textos en color rojo con
esta clase:
Algo similar se logra por medio del atributo ID (identificar). Las clases
permiten que apliquemos las mismas propiedades a diferentes elementos, en
cambio, ID, le da un nombre (identificador) único a un elemento de la página
y de esta manera, lo diferencia del resto.
Para crear una regla de estilo de este tipo, debemos utilizar el carácter # y
luego el nombre del identificador:
Y la usaríamos así:
<div id="algoespecial">
</div>
P {font-weight: bold;
font-style: italic;
font-size: 12px;
font-family: Times;
P {margin-top: 20px;
margin-right: 10px;
margin-left: 30px;
margin-bottom: 50px;
Hay otra pseudo-clase muy utilizada y es hover, que se activa cuando se pasa
el puntero del ratón pasa por encima del vínculo, y que debe ponerse justo
antes deA:active:
Para entender las hojas de estilo debemos comprender que los elementos en
bloque y elementos en línea son rectángulos y que cada rectángulo o cuadro
tiene un área donde se ubica el contenido y opcionalmente, un borde. Entre el
borde y el contenido hay un área de relleno (padding) y entre el borde
opcional y el borde real hay un área de margen (margin) que separa los
elementos en bloque entre si.
El ancho de un elemento es igual al ancho del área de su contenido y el ancho
del rectángulo es la suma de los anchos del elemento, el relleno, el borde y el
margen. Lo mismo ocurre con la altura.
Los elementos en bloque poseen propiedades para establecer ancho (width) y
alto (height).
Los elementos en línea ocupan una o varias líneas del texto de un elemento en
bloque. En una misma línea puede haber varios elementos en línea y, en
general, no se puede especificar su tamaño pero si sus márgenes, bordes y
rellenos.
{font-size: 12pt;}
{font-size: 1in;}
{font-size: 5cm;}
{font-size: 24px;}
{font-family: Arial;}
{font-weight: medium;}
{font-weight: bold;}
{font-style: italic;}
{font-style: small-caps;}
{line-height: 20pt}
{line-height: 150%}
color establece el color del texto de acuerdo con su valor hexadecimal o
usando los nombres de colores:
{color: #33CC00}
{color: red}
{background: red;}
{background: #6633FF;}
{background: URL(URLimagen);}
{background-color: #FF00000;}
{background-image: url(URLimagen);}
{background-image: none;}
{background-repeat: no-repeat;}
{background-attachment: fixed;}
{background-position: left;}
{word-spacing: 1em;}
{line-height: 1.2em;}
{text-decoration: underline}
{text-decoration: line-through}
{text-align: left}
{text-align: center}
{text-align: right}
{text-indent: 0.5cm;}
{text-transform: uppercase;}
{vertical-align: middle;}
{margin-right: 0.5in;}
{margin-top: 1in}
{padding-left: 0.5in;}
{padding-right: 0.5in;}
{padding-top: 1in;}
{border-color: red;}
{border-style : inset;}
width especifica el ancho. Puede ser auto, una longitud, o un porcentaje del
elemento padre:
{width: 100px;}
height especifica el alto. Puede ser auto, una longitud, o un porcentaje del
elemento padre:
{height: 100px;}
{float: right;}
clear indica si un elemento puede tener objetos flotantes a sus lados. Con
clear el elemento se mueve hacia abajo hasta quedar debajo del objeto que
flota. Conclear:both no se permite que haya un objeto flotante a ningún lado
y con clear:nonese permiten objetos flotantes a ambos lados:
{clear: both;}
{display: block;}
{white-space: nowrap;}
{list-style-type: disk;}
list-style-image es una variante de list-style-type que se utiliza cuando se
quiere tener una imagen personalizada:
{list-style-image: url(URLimagen);}
{list-style-position: inside;}
HTML dinámico
DHTML (Dynamic HTML, HTML dinámico) está basado en la idea de convertir
las etiquetas HTML en objetos que pueden ser programados mediante
JavaScript u otros lenguajes. de esta manera, la página puede ser modificada
o tener cierta interacción con los visitantes.
Normalmente, podemos agregar una imagen con la etiqueta IMG,
dimensionarla, alinearla y, por supuesto, establecer su fuente. Una vez que el
navegador la cargue y la muestre, permanecerá en la pantalla sin
alteraciones.
Con el DHTML podríamos conseguir que, ante ciertas acciones del usuario, la
imagen cambie alguna de sus propiedades sin que tenga que recargarse la
página.
Una de las técnicas más simples es cambiar el archivo de la imagen. Esta es
una etiqueta normal:
<IMG SRC="URLimagen">
onmouseclick="rutinascript">
Las rutinas scripts son complejas pero hay algunas que podemos utilizar sin
tener demasiado conocimiento.
onmouseover="getElementById('demo01').src='imagen2';" />
Como se ve, hay dos distintos, uno para la imagen de la izquieda y otro para el
de la derecha. El primero de ellos es el que usamos normalmente, el segundo
es una variante a utilizar cuando el servidor en que nos encontramos no lo
acepte. La forma general es:
getElementById('nombreID').propiedad='valor';
onmouseover="getElementById('demo03').src='imagen2';"
onmouseout="getElementById('demo03').src='imagen1';" />
Aquí, el valor de ID del ejemplo es otro ya que debe ser un nombre único. Eso,
que puede ser una desventaja es lo que nos permite no solo cambiar la
apariencia de un elemento con un efecto rollover:
AL PASAR EL CURSOR SOBRE ESTE PARRAFO, CAMBIA DE COLOR
<P ID=”demo04″
onMouseOver=”getElementById(‘demo04′).style.color=’red’;”
onMouseOut=”getElementById(‘demo04′).style.color=’black’;”>
</P>
<P ID="demo05">
</P>
<P
onMouseOver="getElementById('demo05').style.color='red';"
onMouseOut="getElementById('demo05').style.color='black';">
</P>
onmouseover="getElementById('demo06').style.color = 'red';"
onmouseout="getElementById('demo06').style.color = 'black';">
</P>
<P id="demo07"
onmouseover="getElementById('demo07').style.color = 'blue';
getElementById('demo06').style.color = 'blue';"
onmouseout="getElementById('demo07').style.color = 'black';
getElementById('demo06').style.color = 'black';">
</P>
Casi cualquier propiedad puede ser cambiada, algunas como las que asignan el
tamaño, harán que el espacio necesario para el elemento se re-dimensione.
getElementById('identificador').style.propiedad = 'valor'