Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A continuación debes saber que las dos etiquetas fundamentales dentro de las cuales tiene que ir
nuestro código fuente son <html> como etiqueta de apertura y</html> como etiqueta de cierre.
Después, todo lo que será visible al visitar la página con el navegador, debe de estar entre las
etiquetas <body> cuerpo, en inglés, como etiqueta de apertura y </body> como etiqueta de cierre.
Nota: Las etiquetas también se pueden escribir con letras mayúsculas: <HTML> <BODY>...Nosotros
vamos a optar por las minúsculas por ser lo que se está imponiendo de acuerdo con las últimas
normas.
Vamos a escribir algo en nuestra página. Por ejemplo Bienvenid@. Lo escribiremos
entre <body> y </body>. Nuestro código quedará así:
Ahora tenemos que guardar nuestro documento en alguna parte del ordenador y ¡muy
importante! con un nombre y una extensión especial. El nombre va a ser index(ya veremos porqué
este nombre más adelante) y su extensión .html
También se podría guardar con la extensión .htm (el es exactamente el mismo).
El sitio puede ser cualquier parte del ordenador. Para tenerlo accesible, lo vamos a guardar en
el Escritorio: Le damos a Archivo > Guardar
Mi primera página.
Poner un color de fondo.
Si deseamos poner un color de fondo a toda la página, lo tenemos que hacer dentro de la
etiqueta <body> pues afecta a todo el documento. Esto que se escribe dentro de una etiqueta se
denomina atributo. Los colores deben escribirse mediante el denominado código hexadecimal que
consiste en 6 cifras/letras agrupadas de dos en dos, que nos indican la cantidad de rojo, verde y
azul que contiene ese color, o bien, con la palabra inglesa que corresponde al color.
Nosotros vamos a poner el color rojo al fondo de la página. Lo conseguimos escribiendo la
etiqueta <body> con su atributo como sigue: <body bgcolor="red"> ( bgde background ).
Guardamos los cambios y abrimos cada uno de los navegadores para comprobar los s:
Listas no numeradas.
Comienza el listado con la etiqueta <ul> (unordered list) y su final con la etiqueta de cierre </ul>.
Cada objeto que forma la lista va precedido de la etiqueta <li> (list item) sin etiqueta de cierre.
<html>
<head>
<title>
Listas no numeradas
</title>
</head>
<body>
Mis aficiones:
<ul>
<li> El cine.
<li> La montaña.
<li> La música.
</ul>
</body>
</html>
Listas numeradas.
Comienza el listado con la etiqueta <ol> (ordered list) y su final con la etiqueta </ol>. Cada objeto
que forma la lista va precedido, igual que en las anteriores de la etiqueta <li> sin cierre.
<html>
<head>
<title>
Listas numeradas
</title>
</head>
<body>
Mis preferencias:
<ol>
<li> Viajar.
<li> Salir con mis amigos.
<li> Dormir.
</ol>
</body>
</html>
Listas anidadas.
Se pueden combinar unas listas dentro de otras: No numeradas y/o numeradas. Hay que tener,
simplemente, cuidado en la colocación de las etiquetas de apertura y cierre.
<html>
<head>
<title>
Listas anidadas
</title>
</head>
<body>
<h3>Animales:<h3>
<ul>
<li> VERTEBRADOS.
<ul>
<li>Anfibios
<li>Peces
<li>Reptiles
<li>Aves
<li>Mamíferos
</ul>
<li> INVERTEBRADOS.
<ul>
<li>Insectos
<li>Arácnidos
<li>Crustáceos
<li>Miriápodos
</ul>
</ul>
</body>
</html>
Hemos incorporado la etiqueta de encabezado de tercer orden <h3> para resaltar el concepto que
se va a clasificar. (Recuerda que los encabezados van del <h1> el mayor al <h6> el menor).
Listas de definiciones.
@Franz Flores Callapa Página 5
SISTEMAS INFORMATICOS
Son apropiadas, como su nombre indica, para establecer listados de términos con sus definiciones.
Las etiquetas de apertura y cierre son <dl> y </dl> (definition list). Los conceptos a definir van con
la etiqueta <dt> (definition term) y las definiciones con la etiqueta <dd> (definition definition).
<html>
<head>
<title> Listas de definiciones
</title>
</head>
<body>
<dl>
<dt>Concepto 1
<dd>Definición del Concepto
1
<dt>Concepto 2
<dd>Definición del concepto
2
</dl>
</body>
</html>
Sangrados.
Se realizan con la etiqueta <blockquote> de apertura y su correspondiente de cierre. Aumentan,
también, el interlineado, por eso se emplean para hacer una cita textual.
<html>
<head>
<title>
Sangrados
</title>
</head>
<body>
Este texto está justificado a la izquierda.
<blockquote>
Éste está sangrado respecto del anterior
</blockquote>
Éste vuelve a estar justificado a la izquierda.
</body>
</html>
<blockquote>
<blockquote>
<blockquote>
Éste está más sangrado
</blockquote>
</blockquote>
</blockquote>
Éste vuelve a estar justificado a la izquierda.
</body>
</html>
Tablas.
Empezamos con un tema algo complejo.
Una tabla se define entre las etiquetas <table> y </table>
A partir de este momento hay que definir las filas de la tabla que se definen con <tr> y </tr> (table
row). Un par de etiquetas para cada una de las filas.
Dentro de cada fila se definen las celdas que forman esa fila con las etiquetas <td> y </td> (table
data).
Vamos a empezar definiendo una tabla de 3 filas y 3 columnas (para nuestro lenguaje serán tres
filas, cada una de ellas con tres celdas):
<html>
<head>
<title>
Tablas 1
</title>
</head>
<body>
<table>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</body>
</html>
<title>
Tablas 3
</title>
</head>
<body>
<table border="3" align="center" width="50%"
bgcolor="#ffcccc">
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td bgcolor="#ff00cc"> </td>
<td bgcolor="#ffcc00"> </td>
<td bgcolor="#00cccc"> </td>
</tr>
</table>
</body>
</html>
Para no liarse, lo primero que hay que tener claro es el número máximo de columnas y filas que
tiene la tabla: En este caso es 4 columnas y 3 filas. Pues bien, tendremos que establecer 4
celdas en cada una de las 3 filas. Luego, agruparemos celdas con las etiquetas correspondientes.
Empezamos con la primera fila. Se extiende ocupando las 4 columnas. La etiqueta que debemos
emplear es un atributo para la primera celda de la primera fila (debe"extenderse" sobre las cuatro
columnas) <td colspan="4">. Lógicamente la primera fila ya se ha acabado.
Pasamos a la segunda fila. La primera celda se extiende sobre 2 filas. Escribiremos <td
rowspan="2">. Después de esta celda siguen las otras tres que son normales.
Por último definimos la tercera fila. Como la primera celda ya ha sido definida en la fila anterior,
sólo nos queda la segunda celda, que es normal, y la tercera que se extiende sobre dos
columnas <td colspan="2">
Pondremos un para meter algo aunque no se vea y, para asegurarnos de la simetría de la
tabla, estableceremos el ancho con el atributo width en la tabla (30% por ejemplo) y una
proporción del espacio total de la tabla en cada columna (25%) y lo haremos en las celdas que nos
parezca (en las "normales" de ancho).
El código podría quedar así:
<html>
<head>
<title>
Tablas 5
</title>
</head>
<body>
<table border align="center" width="30%"
bgcolor="#ffcccc">
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td rowspan="2" width="25%"> </td>
<td width="25%"> </td>
<td width="25%"> </td>
<td width="25%"> </td>
</tr>
<tr>
<td> </td>
<td colspan="2"> </td>
</tr>
</table>
</body>
</html>
Título de la tabla.
Disponemos de una etiqueta para poner el título de la tabal. Es <caption> con su correspondiente
de cierre. Se coloca después de la etiqueta de definición de la tabla y añade un texto por encima
de la tabla y centrado con ésta.
<html>
<head>
<title>
Tablas 6
</title>
</head>
<body>
<table border align="center" width="30%"
bgcolor="#ffcccc">
<caption>Éste es el título de la tabla</caption>
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td rowspan="2" width="25%"> </td>
<td width="25%"> </td>
<td width="25%"> </td>
<td width="25%"> </td>
</tr>
<tr>
<td> </td>
<td colspan="2"> </td>
</tr>
</table>
</body>
</html>
Celdas de cabecera.
Disponemos de una etiqueta especial para aquellas celdas que son cabecera respecto de las celdas
situadas debajo de ellas. Son las etiquetas <TH> (table header). El texto situado en ellas queda
centrado y en negrita. Lo único que hay que hacer es sustituir la etiqueta normal de celda por esta
otra.
<html>
<head>
<title>
Tablas 7
</title>
</head>
<body>
<table border align="center" width="50%"
bgcolor="#ffcccc">
<caption>Ejemplo de celdas de cabecera</caption>
<tr>
<th>Nombre</th>
<th>Apellido 1</th>
<th>Apellido 2</th>
</tr>
<tr>
<td width="25%">José</td>
<td width="25%">Pérez</td>
<td width="25%">Pérez</td>
</tr>
<tr>
<td>Luis</td>
<td>Román</td>
<td>Sánchez</td>
</tr>
</table>
</body>
</html>
xxx
xxx
xxx
Primera fila (alineación horizontal):
En la primera celda el texto está alineado a la izquierda. No hay que hacer nada, es la
alineación que se establece por defecto. (Podría escribirse, de todas formas: <td
align="left">).
En la segunda celda el texto está alineado en el centro: <td align="center">.
En la tercera celda el texto está alineado a la derecha: <td align="right">.
Segunda fila (alineación vertical):
En la primera celda el texto está alineado en la parte superior: <td valign="top">.
En la segunda celda el texto está alineado en la parte central. No hay que hacer nada, es la
alineación vertical establecida por defecto. (Podría escribirse, de todas formas: <td
valign="middle">) .
En la tercera celda el texto está alineado en la parte inferior: <td valign="bottom">.
Para observar mejor los s se ha forzado la altura de las celdas a 50 píxeles. Basta escribirlo en la
primera celda de cada fila: <td height="50"> pero podría escribirse en todas ellas.
<html>
<head>
<title>
Tablas 8
</title>
</head>
<body>
<table border width="60%" align="center"
bgcolor="#ffffcc">
<caption>Alineaciones de celdas</caption>
<tr>
<td width="33%" height="50">xxx</td>
<td width="34%" align="center">xxx</td>
<td width="33%" align="right">xxx</td>
</tr>
<tr>
<td height="50" valign="top">xxx</td>
<td align="center">xxx</td>
<td align="right" valign="bottom">xxx</td>
</tr>
</table>
</body>
</html>
xxxx
xxxx
xxxx
La separación entre el borde la tabla y el contenido de las celdas es de 1 píxel. Se puede modificar
con el atributo cellpadding de la etiqueta table. Tabla con cellpadding de 15 píxeles:
xxxx
xxxx
xxxx
En la segunda tabla se ha aumentado la altura de las celdas a 70 píxeles para observar la alineación
vertical.
Veamos los códigos:
<html>
<head>
<title>
Tablas 9
</title>
</head>
<body>
<table border width="60%" align="center"
bgcolor="#ffffcc" cellspacing="15">
<caption>
Tabla con espacio entre celdas de 15 píxeles
</caption>
<tr>
<td width="33%" height="50">xxxx</td>
<td width="34%" align="center">xxxx</td>
<td width="33%" align="right">xxxx</td>
</tr>
<tr>
<td height="50" valign="top">xxxx</td>
<td align="center">xxxx</td>
<td align="right" valign="bottom">xxxx</td>
</tr>
</table>
</body>
</html>
<html>
<head>
<title>
Tablas 10
</title>
</head>
<body>
<table border width="60%" align="center"
bgcolor="#ffffcc" cellpadding="15">
<caption>
Tabla con "cellpadding" de 15 píxeles
</caption>
<tr>
<td width="33%" height="70">xxxx</td>
<td width="34%" align="center">xxxx</td>
<td width="33%" align="right">xxxx</td>
</tr>
<tr>
<td height="70" valign="top">xxxx</td>
<td align="center">xxxx</td>
<td align="right" valign="bottom">xxxx</td>
</tr>
</table>
</body>
</html>
Imágenes.
La etiqueta para introducir una imagen en nuestra página es <img
src="nombre.gif"> (src de source en inglés fuente u origen de la imagen) y siendo nombre el
nombre que tiene la imagen y .gif su formato.
La etiqueta funcionará bien siempre y cuando la imagen esté en la misma carpeta en la que se
encuentra la página web desde la que la llamamos. Es habitual (y recomendable) colocar todas las
imágenes en otra carpeta interna, en ese caso, habrá que darle la ruta en la cual se encuentra
nuestra imagen. Supongamos que la imagen nombre.gif se encuentra en una carpeta
denominada imag, pues bien, la etiqueta sería <img src="imag/nombre.gif">
Veamos un ejemplo:
En este caso el formato de la imagen es .jpg (junto con el .gif y el .png los formatos de imágenes
más habituales en internet). La imagen se denomina riglos2.jpg
<html>
<head>
<title>
Imágenes 1
</title>
</head>
<body>
<center>
<img src="imag/riglos2.jpg">
</center>
</body>
</html
<head>
<title>
Imágenes 2
</title>
</head>
<body>
<center>
<img src="imag/riglos2.jpg"
width="150" height="230">
</center>
</body>
</html>
Texto alternativo.
Es otro atributo que se coloca por varios motivos, el principal es que aquellas personas que visiten
nuestra página sin descargarse las imágenes (habitual en los que tienen una mala conexión y no
desean eternas descargas) tengan, al menos, una orientación del contenido de la misma. Debe ser
una descripción corta del tema de la imagen. Se introduce con la cadena alt="descripción de la
imagen" y, al ser un atributo, se coloca como los dos anteriores, dentro de la etiqueta <img>.
<html>
<head>
<title>
Imágenes 3
</title>
</head>
<body>
<center>
<img src="imag/riglos2.jpg"
width="150" height="230"
alt="Mallos de Riglos (Huesca)">
</center>
</body>
</html>
Cuando el visitante (si navega con el Internet Explorer) se acerque con el cursor a la imagen,
aparecerá un rectángulo con el texto alternativo:
Nota: El hecho de que aparezca el texto alternativo al acercarnos con el cursor a la imagen, es una
desviación del Explorer. Existe otro atributo para que esto se produzca independientemente del
navegador que empleemos. Es el atributo title.
Vínculos.
Es una de las herramientas más interesantes de los documentos html. La sintaxis para establecer
un enlace es: <a href="destino">texto</a>
Donde destino es el documento con el que se enlaza y texto es la palabra o palabras que, al pulsar,
nos llevan a ese destino (también puede ser una imagen).
15.1.- Vínculos a otro documento del mismo sitio.
Nuestro sitio estará formado por varios archivos generadores de varios documentos. Los
documentos tendrán la extensión .html (o .htm). Para establecer el vínculo escribiremos
sencillamente el nombre del documento en el destino y, entre las etiquetas de apertura y cierre la
palabra o palabras que activarán el vínculo.
Como ejemplo vamos a establecer un enlace a la primera página de este sitio (primer documento)
cuyo archivo tiene como nombre index.htm
<html>
<head>
<title>
Vínculos 1
</title>
</head>
<body>
<center>
<a href="index.htm">
Ir al inicio de este curso
</a>
</center>
</body>
</html>
Muchas veces puede resultar interesante escribir la propia dirección URL como activador del
vínculo:
<html>
<head>
<title>
Vínculos 3
</title>
</head>
<body>
<center>
Ir a Google:<br>
<a
href="http://www.google.es">
http://www.google.es</a>
</center>
</body>
</html>
</html>
Para eliminar este borde tan antiestético que se coloca alrededor de la imagen tenemos el
atributo border="0"
<html>
<head>
<title>
Vínculos 7
</title>
</head>
<body>
<center>
Visita la página de
TERRA:<p>
<a
href="http://www.terra.es">
<img
src="imag/logo_terra.gif"
border="0">
</a>
</center>
</body>
</html>
<frame src="indice.html">
<frame src="saludo.html" name="principal">
</frameset>
El código quedaría así:
<html>
<head>
<title>Fila superior y dos columnas</title>
</head>
<frameset rows="15%,*">
<frame src="titulo.html">
<frameset cols="20%,*">
<frame src="indice.html">
<frame src="saludo.html" name="principal">
</frameset>
</frameset>
</html>
Veamos los códigos de todos los archivos:
Primero el documento titulo que se cargará en el marco superior:
<html>
<head>
<title>Marco superior</title>
</head>
<body bgcolor="#0066cc">
<font color="#ffffff">
<center>
<h1>mi sitio web</h1>
</center>
</font>
</body>
</html>
<head>
<title>Marco de la derecha</title>
</head>
<body bgcolor="#ff9999">
<center>
<h1>
Bienvenido a mi página web
</h1>
</center>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<frameset cols="20%, *" frameborder="0" framespacing="0" border="0">
<frame name="izquierda" src="completo.html" marginwidth="0" marginheight="0"
scrolling="auto" frameborder="no" />
<frameset rows="80%,*" frameborder="0" framespacing="0" border="0">
<frame name="principal" src="file:///D|/html/lateral.html" marginwidth="0" marginheight="0"
scrolling="auto" frameborder="no" />
<frame name="inferior" src="ejemplo.html" marginwidth="0" marginheight="0" scrolling="auto"
frameborder="no" />
</frameset>
</frameset>
<noframes>
<center>
su navegador no puede desplegar el frame
</center>
</noframes>
</html>
Formularios
Los formularios nos permiten dentro de una página Web solicitar información al visitante y
procesarla. En un formulario podremos solicitar diferentes datos (campos) cada uno de los cuales
quedará asociado a una variable. Una vez se hayan introducido los valores en los campos, el
contenido de estos será enviado a la dirección (URL) donde tengamos el programa que pueda
procesar las variables. Para poder realizar este último paso de procesar las variables
necesitaremos realizar un programa externo en algun lenguaje de programación como PERL, C++ o
Visual Basic. A este programa externo se le suele llamar CGI (Common Gateway Interface). La
creación de este tipo de programas sería tema de otro manual diferente, por lo que aquí veremos
como se pueden enviar las variables a nuestra dirección de correo electrónico.
La declaración del formulario se pone entre las directivas <FORM></FORM>. En el interior de la
declaración se indican los elementos (variables) de entrada. La directiva <FORM> tiene los
parámetros action y method.
action = "programa"
Indica el programa que va a "tratar" a las variables que se envien con el formulario. En
nuestro caso enviaremos las variables por correo electrónico, con lo que el "programa"
será "mailto: direccion_de_correo".
method = POST / GET
Indica el método según el que se transferiran las variables. POST produce la modificación
del documento de destino (como en el caso de enviar por correo las variables). GET no
produce cambios en el documento destino (como en el caso de una consulta a una base de
datos, p.ej. una página de búsqueda en Internet).
Campos de Entrada
Para la introducción de las variables se utiliza la directiva <INPUT>. Esta directiva tiene el
parámetro type que indica el tipo de variable a introducir y name que indica el nombre que se le
dará al campo. Cada tipo de variable tiene sus propios parámetros.
type= text name = campo
Indica que el campo a introducir será un texto. Sus parámetros son :
maxlenght = numero
Número máximo de caracteres a introducir en el campo.
size = numero
Tamaño en caracteres que se mostrará en pantalla.
value = "texto"
Valor inicial del campo. Normalmente sera " ", o sea, vacio.
type = password name = campo
Indica que el campo será una palabra de paso. Mostrará asteriscos (*) en lugar de las
letras escritas. Sus parámetros opcionales son los mismos que para text.
type = checkbox name = campo
El campo se elegirá marcando una casilla. Se permite marcar varias casillas. Los valores de
las casillas serán indicados por :
value = "valor"
checked
La casilla aparecerá marcada por defecto.
type = radio name = campo
El campo se elegirá marcando una casilla. Solo permite marcar una sola de las casillas. Los
valores de las casillas seran indicados por :
value = "valor"
<INPUT type = checkbox name = archivo value = "Manual" > Manual de Html
<INPUT type = checkbox name = archivo value ="Mapthis" > Programa Mapthis
<INPUT type = checkbox name = archivo value ="Help" > Archivo de Ayuda
<P>
Tu Edad :
<INPUT type = radio name = edad value = "-20" > Menos de 20 años
<INPUT type = radio name = edad value = "20-40" > Entre 20 y 40 años
<INPUT type = radio name = edad value = "+40" > Mas de 40 años
<P>
<INPUT type = hidden name = lugar value = "pagina personal" >
Como encontraste mi página :
<SELECT name = donde >
<OPTION>De casualidad
<OPTION>Por el buscador Ole
<OPTION>Por el buscador Yahoo
<OPTION>Me la comentaron
</SELECT>
<P>
Tus Comentarios:
<BR>
<TEXTAREA name = comentario rows = 5 cols = 40 wrap = virtual ></TEXTAREA>
<P>
<INPUT type = submit value = "Enviar" >
<INPUT type = reset value = "Borrar" >
</FORM>
Tu Nombre: Tu Clave:
Archivos a Enviar:
Manual de Html Programa Mapthis Archivo de Ayuda
Tu Edad :
Menos de 20 años
Entre 20 y 40 años
Mas de 40 años
Como encontraste mi página :
Me la comentaron
Tus Comentarios:
Enviar Borrar
Si rellenas este FORM y pulsas sobre el botón Enviar, (estando conectado a Internet), se generará
un mensaje de correo a la dirección de correo nombre@ext.es. Si pulsas el boton Borrar se
borraran los datos que hayas introducido en el Formulario.
El texto que se recibiría por correo electrónico sería parecido a este :
MUSUCA
1. <EMBED SRC="starwars.mid">
Si ponemos este código tal cual nos saldrá un control musical con sus botones de play, stop,
control de volumen,... y claro, como nosotros queremos poner música de fondo, deberemos de
ocultar dicho control. Para ello contamos con el atributo hidden, al cual deberemos de dar un
valor de true.
1. <EMBED SRC="starwars.mid" HIDDEN="true">
Y ahora, hecho esto, tenemos un ligero problema. Y es que cuando teníamos el control musical,
disponíamos del botón play para forzar el inicio de la canción y ahora, al haber ocultado el control,
no tenemos forma de hacerlo y es por ello que la canción no comenzará. Por lo tanto, deberemos
de utilizar el atributo autostart con un valor true para que se inicie la canción.
1. <EMBED SRC="starwars.mid" AUTOSTART="true">
Para permitir la apertura automática de un archivo audio también con Netscape, hay que usar la
marca <EMBED>:
Los TARGET se usan sobre todo en los marcos pero pueden usarse también en otros casos. Así, por
ejemplo, si queremos que una página asociada a un enlace se cargue en una ventana distinta del
navegador, tendremos que insertar el TARGET="_new".
Pongamos que el midi para escuchar se llame "imagine.mid"; el código sería:
Haciendo clic se abrirá una ventana por defecto, la cual se colocará al lado de la principal (aquélla
desde la que se ha LANZADO el enlace). Aquí tienes el ejemplo práctico:
</BODY>
</HTML>
Css Externo
<link rel=stylesheet href="style.css" type="text/css">
<head>
…
<link rel="stylesheet" type="text/css" href="rutaDelArchivo.css">
</head>
CSS INTERNO
Vamos a ver ahora cómo podemos definir esos estilos en la cabecera del documento HTML usando
la siguiente sintaxis:
<head>
…
<style type="text/css">
elementoAfectadoPorElEstilo {
propiedad1ParaEseTipoDeElementos:valor;
propiedad2ParaEseTipoDeElementos:valor;
propiedad3ParaEseTipoDeElementos:valor;
…
propiedadnParaEseTipoDeElementos:valor;
}
</style>
</head>
Las diferentes propiedades y valores se pueden poner en una misma línea o en distintas líneas
según se prefiera (siempre separados mediante punto y coma).
Dentro de las etiquetas <head> … </head> incluiremos una etiqueta de apertura de declaración de
estilos <style type=”text/css”>, a continuación colocaremos la definición de tantos estilos como
deseemos y cerraremos la declaración con </style>. En HTML 5 no es necesario especificar type
=”text/css” pero de momento seguimos recomendando que se use esta sintaxis.
En nuestro código de ejemplo el cambio de los elementos del menú para que tengan el texto color
verde y el icono o símbolo de viñeta de color rojo se haría de esta forma:
<!DOCTYPE html>
CSS EXTERNO
Aunque el CSS interno nos permite unificar en una declaración todos los estilos para un archivo
html, seguimos teniendo el problema de tener que repetir la definición de estilos en la cabecera
de cada uno de los archivos html de nuestro desarrollo web. Si el desarrollo tiene pocos archivos
quizás sea menos problemático, pero cuando el desarrollo tiene cientos o miles de archivos sí se
convierte en un verdadero problema, ya que cada vez que introdujéramos cambios habría que
hacerlo en los cientos o miles de archivos de que constara el desarrollo.
Para solventar esta solución se ideó la declaración externa de CSS, basada en declarar los estilos
CSS en un archivo independiente que puede servir como referente para dotar de estilos a decenas,
cientos o miles de archivos html, que únicamente deberán invocar el nombre de archivo utilizando
una sintaxis específica. De este modo un cambio en los estilos habrá que hacerlo únicamente en el
archivo de estilos correspondiente, lo cual supone una gran ventaja. Incluso un cambio completo
de los estilos de una página web se puede conseguir simplemente sustituyendo el archivo
correspondiente.
Vamos a generar un archivo de estilos independiente. Para ello abre Notepad++ (o el editor de
texto que estés usando) y crea un archivo con el siguiente contenido:
/* Comentario en CSS estilos aprenderaprogramar.com*/
ul {color:red;}
a {color:green; text-decoration: none;}
Seguimos usando las mismas propiedades CSS y los mismos valores que hemos usado en la forma
CSS en línea y en la forma CSS interna.
Los contenidos que se encuentren entre los símbolos /* …. */ serán considerados comentarios y se
pueden usar para introducir información del autor del archivo, versión, etc. así como para escribir
aquellas aclaraciones sobre los estilos que se consideren necesarias. Un comentario puede
comprender una o varias líneas según se desee.
Elige Guardar Como… y guarda el archivo con un nombre y extensión css, por ejemplo estilos.css.
Asegúrate que la extensión del archivo sea css. No es válido si no tiene esta extensión.
En nuestro archivo HTML eliminaremos la definición de estilos interna y dejaremos sólo la
invocación al archivo escrita con la siguiente sintaxis:
<head>
…
<link rel="stylesheet" type="text/css" href="rutaDelArchivo.css">
</head>
link es una etiqueta que se usa en HTML para establecer vínculos entre un documento HTML y
otros recursos como una imagen de icono o una hoja de estilos CSS. En este caso se indica con la
propiedad rel (relación o relationship) que el documento HTML debe usar los estilos definidos
como texto/css en un archivo con el nombre indicado. Ten en cuenta que si como ruta de archivo
indicas simplemente el nombre del archivo, éste debe encontrarse en la misma carpeta en que se
encuentre el documento HTML. Si el archivo CSS se encuentra en otra carpeta deberás indicarlo
escribiendo una URL completa u bien una URL relativa que determine la ruta.
Nosotros ubicaremos de momento el archivo CSS en la misma carpeta que el archivo HTML. En el
archivo HTML tendremos lo siguiente:
<!DOCTYPE html>
<!-- Código ejemplo para el curso CSS -->
<html>
<head>
<title>Portal web - aprenderaprogramar.com</title>
<meta charset="utf-8">
<meta name="description" content="Portal web aprenderaprogramar.com">
<meta name="keywords" content="aprender, programar, cursos, libros">
<link rel="stylesheet" type="text/css" href="estilos.css">
</head>
<!-- Aquí el resto del código del ejemplo -->
</html>
//el html <link rel="stylesheet" href="cssexterno.css" type="text/css">
Ejercicios
body{ background:#00FF00}
h2{background:#FF0000}
h3{background:#0000FF}
p{background:#339966}
ejercicio2
p{border-style:double;color:red;font-size=x-large;font-style:italic; text-
align:center; background:url(imagen.gif); border:#00CC33;
ejercicio3
background:repeat:no-repeat;
background:-position:50px 100px
}
EJERCICIO 1
Modifica el código HTML mostrado a continuación para cumplir con estos requisitos mediante
la aplicación de estilos internos:
a) Todas las etiquetas h1 deben mostrar su texto en color rojo.
b) Todas las etiquetas h3 deben mostrar su texto en color verde.
c) Todos los párrafos deben mostrar su texto en color brown (marrón).
<!DOCTYPE html>
<html>
<head>
<title>Portal web - aprenderaprogramar.com</title>
<meta name="description" content="Portal web aprenderaprogramar.com">
<meta name="keywords" content="aprender, programar, cursos, libros">
<meta charset="utf-8">
</head>
<body>
<p><a href="principal.html" title="Página principal" >Ir a la pagina principal</a></p>
<h1>Novedades</h1>
<p>Aquí presentamos las novedades del sitio.</p>
<h3>Lanzamos el producto X-FASHION</h3>
<p>Este producto permite estirar la piel hasta dejarla como la de un bebé.</p>
<p><img src="http://i.imgur.com/tq5Bs.png" title="Imagen del producto" alt="imagen producto x-fashion" /></p>
<h3>Mejoramos el producto T-MOTION</h3>
<p>Hemos lanzado una nueva versión del producto T-MOTION</p>
<p><img src="http://i.imgur.com/SpZyc.png" title="Imagen del proudcto tmotion" alt="imagen producto tmotion"
/></p>
</body>
</html>
Para comprobar si tus respuestas son correctas puedes consultar en los foros
aprenderaprogramar.com.
EJERCICIO 2
Modifica el código HTML del ejercicio anterior para cumplir con estos requisitos mediante la
aplicación de CSS externo definido en un archivo independiente, donde debes incluir al menos un
comentario:
a) Todas las etiquetas h1 deben mostrar su texto en color azul.
li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}
li a.active {
background-color: #4CAF50;
color: white;
}
li a:hover:not(.active) {
background-color: #555;
color: white;
}
</style>
</head>
<body>
</html>
-moz-box-sizing: border-box;
}
#sidebar ul {
margin: 0;
padding: 0;
list-style: none;
}
#sidebar ul li {
margin: 0;
}
#sidebar ul li a {
padding: 15px 20px;
font-size: 16px;
font-weight: 100;
color: white;
text-decoration: none;
display: block;
border-bottom: 1px solid #196c96;
-webkit-transition: background 0.3s ease-in-out;
-moz-transition: background 0.3s ease-in-out;
-ms-transition: background 0.3s ease-in-out;
-o-transition: background 0.3s ease-in-out;
transition: background 0.3s ease-in-out;
}
#sidebar ul li:hover a {
background: #196c96;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
border-right:1px solid #bbb;
}
li:last-child {
border-right: none;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover:not(.active) {
background-color: #111;
}
.active {
background-color: #4CAF50;
}
</style>
</head>
<body>
<ul a class="active">
<li><a class="active" href="#home">PRINCIPAL</a></li>
<li><a href="#news">GALERIA DE VIDEOS</a></li>
<li><a href="#contact">GALERIA DE MUSICA</a></li>
<li><a href="#contact">FORMULARIOS</a></li>
<li><a href="#contact">DESCARGAS</a></li>
<li><a href="#contact">SUBIR</a></li>
<ul>
</ul>
<li style="float:right"><a href="#about">SALIR</a></li>
</ul>
</body>
</html>
#menu_gral {
font-family: verdana, sans sherif;
width: 80%;
margin: 1.5rem auto;
}
#menu_gral ul {
list-style-type: none;
text-align: center;
font-size: 0;
}
#menu_gral > ul li {
display: inline-block;
width: 25%;
position: relative;
background: #4CAF50;
}
#menu_gral li a {
display: block;
text-decoration: none;
font-size: 1rem;
line-height: 2.5rem;
color: #444;
}
#menu_gral li:hover a, #menu_gral li a:focus {
background: #8DA889;
color: #fff;
}
#menu_gral li ul {
position: absolute;
width: 0;
overflow: hidden;
}
#menu_gral li:hover ul, #menu_gral li:focus ul {
width: 100%;
margin: 0 -4rem -4rem -4rem;
padding: 0 4rem 4rem 4rem;
background: #bbb;
z-index: 5;
}
#menu_gral li li {
display: block;
width: 100%;
}
#menu_gral li:hover li a, #menu_gral li:focus li a {
font-family: monospace;
font-size: .9rem;
line-height: 1.7rem;
border-top: 1px solid #e5e5e5;
background: #444;
}
#menu_gral li li a:hover, #menu_gral li li a:focus {
background: #8AA9B8;
}
</body>
El lenguaje JavaScript
Scripts y eventos
Para introducir un script JavaScript se hace dentro de las etiquetas:
<SCRIPT LANGUAGE=“JavaScript”>
código del script
</SCRIPT>
Veamos un ejemplo básico de una página HTML que contiene un script de Javascript:
<HTML>
<BODY>
Esto es HTML
<br>
<SCRIPT LANGUAGE="JavaScript">
document.write("Esto es JavaScript")
</SCRIPT>
<br>
Esto vuelve a ser HTML
</BODY>
</HTML>
Ejercicio 02
Este ejercicio nos ayuda cuando no funciona oh esta desactivado el javascript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 1 - Archivo externo y varios mensajes</title>
<script type="text/javascript" src="codigo.js"></script>
</head>
<body>
<noscript>Esta página <strong>requiere</strong> el uso de JavaScript y parece
que está desactivado</noscript>
<p>Esta página muestra 2 mensajes</p>
</body>
</html>
Ejercicio 03
Este ejercicio nos muestra un mensaje de alerta en la parte superior de la pagina web
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 2 - Mostrar mensajes complejos</title>
<script type="text/javascript">
var mensaje = "Hola Mundo! \n Qué facil es incluir \'comillas simples\' \n y \"comillas dobles\" ";
alert(mensaje);
</script>
</head>
<body>
<p>Esta página muestra un mensaje complejo</p>
</body>
</html>
Ejercicio 04
Este mensaje muestra los doce meces del año en una alerta y con un aceptar
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 3 - Arrays simples</title>
<script type="text/javascript">
// Array que almacena los 12 meses del año
var meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio",
"Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
// Se muestra el nombre de cada mes
alert(meses[0]);
alert(meses[1]);
alert(meses[2]);
alert(meses[3]);
alert(meses[4]);
alert(meses[5]);
alert(meses[6]);
alert(meses[7]);
alert(meses[8]);
alert(meses[9]);
alert(meses[10]);
alert(meses[11]);
</script>
</head>
<body>
<p>Esta página muestra los 12 meses del año</p>
</body>
</html>
Ejercicio 05
Este ejercicio nos muestra el uso básico de los operadores básicos
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 4 - Operadores</title>
<script type="text/javascript">
var valores = [true, 5, false, "hola", "adios", 2];
// Cual de los 2 elementos de texto es mayor
// Si el resultado es true, el primer texto es mayor
var resultado = valores[3] > valores[4];
alert(resultado);
// Combinar valores booleanos
var valor1 = valores[0];
var valor2 = valores[2];
// Obtener un resultado TRUE
var resultado = valor1 || valor2;
alert(resultado);
// Obtener un resultado FALSE
resultado = valor1 && valor2;
alert(resultado);
// Operaciones matemáticas
Ejercicio 07
Esta página calcula la letra del DNI
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 6 - Calculo de la letra del DNI</title>
<script type="text/javascript">
var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N',
'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T'];
var numero = prompt("Introduce tu número de DNI (sin la letra)");
var letra = prompt("Introduce la letra de tu DNI (en mayúsculas)");
letra = letra.toUpperCase();
if(numero < 0 || numero > 99999999) {
alert("El número proporcionado no es válido");
}
else {
var letraCalculada = letras[numero % 23];
if(letraCalculada != letra) {
alert("La letra o el número proporcionados no son correctos");
}
else {
alert("El número de DNI y su letra son correctos");
}
}
</script>
</head>
<body>
<p>Esta página calcula la letra del DNI</p>
</body>
</html>
Ejercicio 08
Introduce un número y se mostrará su factorial
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 7 - Factorial de un número entero</title>
<script type="text/javascript">
var numero = prompt("Introduce un número y se mostrará su factorial");
var resultado = 1;
for(var i=1; i<=numero; i++) {
resultado *= i;
}
alert(resultado);
</script>
</head>
<body>
</body>
</html>
Ejercicio 09
Este ejercicio nos permite verificar si un numero introducido es par
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 8 - Funciones básicas</title>
<script type="text/javascript">
var numero = prompt("Introduce un número entero");
var resultado = parImpar(numero);
alert("El número "+numero+" es "+resultado);
function parImpar(numero) {
if(numero % 2 == 0) {
return "par";
}
else {
return "impar";
}
}
</script>
</head>
<body>
</body>
</html>
Ejercicio 10
Esta pagina nos permite verificar si en un texto existe mayúsculas y minúsculas
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 9 - Información sobre cadenas</title>
<script type="text/javascript">
function info(cadena) {
var resultado = "La cadena \""+cadena+"\" ";
// Comprobar mayúsculas y minúsculas
if(cadena == cadena.toUpperCase()) {
resultado += " está formada sólo por mayúsculas";
}
Ejercicio 12
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 11 - DOM básico</title>
<script type="text/javascript">
window.onload = function() {
var info = document.getElementById("informacion");
// Numero de enlaces de la pagina
var enlaces = document.getElementsByTagName("a");
info.innerHTML = "Numero de enlaces = "+enlaces.length;
// Direccion del penultimo enlace
var mensaje = "El penultimo enlace apunta a: "+enlaces[enlaces.length-2].href;
info.innerHTML = info.innerHTML + "<br/>" + mensaje;
// Numero de enlaces que apuntan a http://prueba
var contador = 0;
for(var i=0; i<enlaces.length; i++) {
// Es necesario comprobar los enlaces http://prueba y
// http://prueba/ por las diferencias entre navegadores
if(enlaces[i].href == "http://prueba" || enlaces[i].href == "http://prueba/") {
contador++;
}
}
info.innerHTML = info.innerHTML + "<br/>" + contador + " enlaces apuntan a http://prueba"
// Numero de enlaces del tercer párrafo
Ejercicio 13
Este ejercicio nos permite mostrar un mensaje y poder seguir leyendo
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 12 - DOM básico y atributos XHTML</title>
<style type="text/css">
.oculto { display: none; }
.visible { display: inline; }
</style>
<script type="text/javascript">
function muestra() {
var elemento = document.getElementById("adicional");
elemento.className = "visible";
var enlace = document.getElementById("enlace");
enlace.className = "oculto";
}
</script>
</head>
<body>
<p id="texto">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed
mattis enim vitae orci. Phasellus libero. Maecenas nisl arcu, consequat congue,
commodo nec, commodo ultricies, turpis. Quisque sapien nunc, posuere vitae,
rutrum et, luctus at, pede. Pellentesque massa ante, ornare id, aliquam vitae,
ultrices porttitor, pede. <span id="adicional" class="oculto">Nullam sit amet
nisl elementum elit convallis malesuada. Phasellus magna sem, semper quis,
faucibus ut, rhoncus non, mi. Duis pellentesque, felis eu adipiscing
ullamcorper, odio urna consequat arcu, at posuere ante quam non dolor. Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Duis scelerisque. Donec
lacus neque, vehicula in, eleifend vitae, venenatis ac, felis. Donec arcu. Nam
sed tortor nec ipsum aliquam ullamcorper. Duis accumsan metus eu urna. Aenean
vitae enim. Integer lacus. Vestibulum venenatis erat eu odio. Praesent id
metus.</span></p>
<a id="enlace" href="#" onclick="muestra(); return false;">Seguir leyendo</a>
</body>
</html>
Ejercicio 14
Este ejercicio nos permite mostrar muchos contenidos
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 13 - DOM básico y atributos XHTML</title>
<script type="text/javascript">
function anade() {
var elemento = document.createElement("li");
var texto = document.createTextNode("Elemento de prueba");
elemento.appendChild(texto);
var lista = document.getElementById("lista");
lista.appendChild(elemento);
var nuevoElemento = "<li>Texto de prueba</li>";
lista.innerHTML = lista.innerHTML + nuevoElemento;
}
</script>
</head>
<body>
<ul id="lista">
<li>Lorem ipsum dolor sit amet</li>
<li>Consectetuer adipiscing elit</li>
<li>Sed mattis enim vitae orci</li>
<li>Phasellus libero</li>
<li>Maecenas nisl arcu</li>
</ul>
<input type="button" value="Añadir elemento" onclick="anade();">
</body>
</html>
Ejercicio 15
Si se utilizan manejadores de eventos como atributos de XHTML, la solución podría ser la
siguiente:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 14 - DOM básico y atributos XHTML</title>
<script type="text/javascript">
function muestraOculta(id) {
var elemento = document.getElementById('contenidos_'+id);
var enlace = document.getElementById('enlace_'+id);
if(elemento.style.display == "" || elemento.style.display == "block") {
elemento.style.display = "none";
enlace.innerHTML = 'Mostrar contenidos';
}
else {
elemento.style.display = "block";
enlace.innerHTML = 'Ocultar contenidos';
}
}
</script>
</head>
<body>
<p id="contenidos_1">[1] Lorem ipsum dolor sit amet, consectetuer adipiscing
elit. Sed mattis enim vitae orci. Phasellus libero. Maecenas nisl arcu,
consequat congue, commodo nec, commodo ultricies, turpis. Quisque sapien nunc,
posuere vitae, rutrum et, luctus at, pede. Pellentesque massa ante, ornare id,
aliquam vitae, ultrices porttitor, pede. Nullam sit amet nisl elementum elit
convallis malesuada. Phasellus magna sem, semper quis, faucibus ut, rhoncus
non, mi. Duis pellentesque, felis eu adipiscing ullamcorper, odio urna
consequat arcu, at posuere ante quam non dolor. Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Duis scelerisque.</p>
<a id="enlace_1" href="#" onclick="muestraOculta('1'); return false;">Ocultar
contenidos</a>
<br/>
<p id="contenidos_2">[2] Lorem ipsum dolor sit amet, consectetuer adipiscing
elit. Sed mattis enim vitae orci. Phasellus libero. Maecenas nisl arcu,
consequat congue, commodo nec, commodo ultricies, turpis. Quisque sapien nunc,
posuere vitae, rutrum et, luctus at, pede. Pellentesque massa ante, ornare id,
aliquam vitae, ultrices porttitor, pede. Nullam sit amet nisl elementum elit
convallis malesuada. Phasellus magna sem, semper quis, faucibus ut, rhoncus
non, mi. Duis pellentesque, felis eu adipiscing ullamcorper, odio urna
consequat arcu, at posuere ante quam non dolor. Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Duis scelerisque.</p>
<a id="enlace_2" href="#" onclick="muestraOculta('2'); return false;">Ocultar
contenidos</a>
<br/>
<p id="contenidos_3">[3] Lorem ipsum dolor sit amet, consectetuer adipiscing
elit. Sed mattis enim vitae orci. Phasellus libero. Maecenas nisl arcu,
consequat congue, commodo nec, commodo ultricies, turpis. Quisque sapien nunc,
posuere vitae, rutrum et, luctus at, pede. Pellentesque massa ante, ornare id,
aliquam vitae, ultrices porttitor, pede. Nullam sit amet nisl elementum elit
convallis malesuada. Phasellus magna sem, semper quis, faucibus ut, rhoncus
non, mi. Duis pellentesque, felis eu adipiscing ullamcorper, odio urna
consequat arcu, at posuere ante quam non dolor. Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Duis scelerisque.</p>
<a id="enlace_3" href="#" onclick="muestraOculta('3'); return false;">Ocultar
contenidos</a>
</body>
</html>
Ejercicio 16
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 15 - Información sobre eventos</title>
<style type="text/css">
body {font-family: arial, helvetica;}
#info {width:160px; border:thin solid silver; padding:.5em; position:fixed;}
#info h1 {margin: 0;}
</style>
<script type="text/javascript">
function informacion(elEvento) {
var evento = elEvento || window.event;
switch(evento.type) {
case 'mousemove':
document.getElementById('info').style.backgroundColor = '#FFFFFF';
var ie = navigator.userAgent.toLowerCase().indexOf('msie')!=-1;
var coordenadaXrelativa, coordenadaYrelativa, coordenadaXabsoluta, coordenadaYabsoluta;
if(ie) {
if(document.documentElement && document.documentElement.scrollTop){
coordenadaXabsoluta = evento.clientX + document.documentElement.scrollLeft;
coordenadaYabsoluta = evento.clientY + document.documentElement.scrollTop;
}
else {
coordenadaXabsoluta = evento.clientX + document.body.scrollLeft;
coordenadaYabsoluta = evento.clientY + document.body.scrollTop;
}
}
else {
coordenadaXabsoluta = evento.pageX;
coordenadaYabsoluta = evento.pageY;
}
coordenadaXrelativa = evento.clientX;
coordenadaYrelativa = evento.clientY;
muestraInformacion(['Ratón', 'Navegador ['+coordenadaXrelativa+', '+coordenadaYrelativa+']',
'Pagina ['+coordenadaXabsoluta+','+coordenadaYabsoluta+']']);
break;
case 'keypress':
document.getElementById('info').style.backgroundColor = '#CCE6FF';
var caracter = evento.charCode || evento.keyCode;
var letra = String.fromCharCode(caracter);
var codigo = letra.charCodeAt(0);
muestraInformacion(['Teclado', 'Carácter ['+letra+']', 'Código['+codigo+']']);
break;
case 'click':
document.getElementById('info').style.backgroundColor = '#FFFFCC';
break;
}
}
function muestraInformacion(mensaje) {
document.getElementById("info").innerHTML = '<h1>'+mensaje[0]+'</h1>';
for(var i=1; i<mensaje.length; i++) {
document.getElementById("info").innerHTML += '<p>'+mensaje[i]+'</p>';
}
}
document.onmousemove = informacion;
document.onkeypress = informacion;
document.onclick = informacion;
</script>
</head>
<body>
<div id="info"></div>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/
><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/
><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/
><br/>
</body>
</html>
Ejercicio 17
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicio 16 - Información sobre eventos</title>
<style type="text/css">
body {font-family: arial, helvetica;}
#info {width:160px; border:thin solid silver; padding:.5em; position:fixed;}
#info h1 {margin: 0;}
</style>
<script type="text/javascript">
function informacion(elEvento) {
var evento = elEvento || window.event;
var coordenadaX = evento.clientX;
var coordenadaY = evento.clientY;
var dimensiones = tamanoVentanaNavegador();
var tamanoX = dimensiones[0];
var tamanoY = dimensiones[1];
var posicionHorizontal = "";
var posicionVertical = "";
if(coordenadaX > tamanoX/2) {
posicionHorizontal = "derecha";
}
else {
posicionHorizontal = "izquierda";
}
if(coordenadaY > tamanoY/2) {
posicionVertical = "abajo";
}
else {
posicionVertical = "arriba";
}
muestraInformacion(['Posicion', posicionHorizontal, posicionVertical]);
}
function muestraInformacion(mensaje) {
document.getElementById("info").innerHTML = '<h1>'+mensaje[0]+'</h1>';
for(var i=1; i<mensaje.length; i++) {
document.getElementById("info").innerHTML += '<p>'+mensaje[i]+'</p>';
}
}
function tamanoVentanaNavegador(){
// Adaptada de http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
var dimensiones = [];
if(typeof(window.innerWidth) == 'number') {
// No es IE
dimensiones = [window.innerWidth, window.innerHeight];
}
else if(document.documentElement && (document.documentElement.clientWidth ||
document.documentElement.clientHeight)) {
//IE 6 en modo estandar (no quirks)
dimensiones =
[document.documentElement.clientWidth,document.documentElement.clientHeight];
} else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
//IE en modo quirks
dimensiones = [document.body.clientWidth, document.body.clientHeight];
}
return dimensiones;
}
document.onclick = informacion;
</script>
</head>
<body>
<div id="info"></div>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/
><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/
><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/
><br/>
</body>
</html>
Esto es HTML
Esto es JavaScript
Esto vuelve a ser HTML
Realmente la funcionalidad del anterior script es nula, ya que para escribir “Esto es
JavaScript” nos basta con usar HTML. La verdadera utilidad de JavaScript es el que los
scripts se ejecuten cuando ocurra algún evento, como sea un click de ratón, que éste
pase por encima de un enlace, que se envíen los datos de un formulario, ... En el
siguiente ejemplo, se ejecuta el script cuando se pasa por encima del enlace con el
ratón:
<HTML>
<HEAD>
<BODY>
<a href="#" onmouseover="window.status='este es el texto que aparece en la barra de
status'; return true">Pasa el ratón n por aquí</a>
</BODY>
</HTML>
En posteriores versiones del lenguaje se han ido añadiendo nuevos eventos (aunque a
Continuando con el ejemplo anterior, igualmente se puede hacer que al pulsar un link,
sin que cargue directamente una nueva página, se ejecute una función javascript, de la
siguiente manera:
<a href=“javascript:funcion(parametros)”>link</a>
Esto es muy útil cuando queremos hacer que al pulsar sobre una imagen se cambie la
misma, pero que no nos lleve a otra parte. También podría servir para abrir otra ventana,
pero sin cambiar el contenido de la antigua.
En un script podemos definir tanto estructuras condicionales como iterativas. Y también
podemos definir funciones. Los scripts que contienen estas funciones suelen estar en el
head del documento, de manera que se carguen cuando se carga el docuemento. Esas
funciones serán llamadas desde el body del documento, cuando ocurra cierto evento.
Veamos un ejemplo:
<html>
<head>
<script language="LiveScript">
function hola() {
alert("Hola");
}
</script>
</head>
<body>
<a href="" onMouseOver="hola()">link</a>
</body>
</html>
En este ejemplo, hemos definido una función, llamada hola. Una función se declara así:
function (parámetros)
/* los parámetros separados por comas, sin escribir su tipo (booleano, numérico, ...) */
{
instrucciones
}
En este caso, lo que hace esta función es llamar a la función de JavaScript alert, que
muestra una ventana con el texto que se le pasa como parámetro.
Y, ¿ cuando se llama a esta función ?. Pues cuando ocurre el evento OnMouseOver del
link, es decir, cuando el ratón pasa por encima del link. Eso viene marcado por la línea
<a href="" onMouseOver="hola()">link</a>
Como vemos, la filosofía de JavaScript es que en el script definimos funciones (en el
head del documento) que serán llamadas cuando ocurran ciertos eventos.
3. Variables, operadores y estructuras de control
{
intrucciones
}
4. Estructura de objetos
JavaScript es un lenguaje de objetos. Un objeto es un ente abstracto que agrupa por un
lado a un conjunto de propiedades que definen al propio objeto y por otro, una serie de
métodos que interactúan sobre él (funciones o procedimientos). Un ejemplo de objeto
en un entorno de gestión de una empresa podría ser un empleado. Este empleado tiene
una serie de propiedades, de datos que lo identifican: nombre y apellidos, sexo, DNI,
número de seguridad social, fecha de nacimiento, estado civil, categoría, ... Por otro
lado, hay una serie de acciones que se pueden hacer con un empleado, como contratar
un nuevo empleado, despedir a un empleado ya existente, pagarle la nómina, subirle de
categoría, ...
En JavaScript, se identifican una serie de objetos sobre los que podremos interactuar,
como las ventanas, las páginas, las imágenes, los formularios, ... Por ejemplo, El objeto
ventana tendrá, entre otras, una propiedad que sea el ancho de la ventana. Un método
(funciones en el caso de JavaScript) asociado a este objeto será la función que abre una
nueva ventana.
En los ejemplos anteriores, document es un objeto que representa a un documento
HTML y write es un método que escribe la cadena que se pasa como parámetro. En el
otro ejemplo, window es un objeto que representa la ventana del navegador, una de
cuyas propiedades es status, que al modificarse, lo que ocurre es que cambia la barra de
status de la ventana. Tanto los métodos como las propiedades siempre se representan de
la siguiente manera:
nombre_objeto.nombre_método(argumentos)
nombre_objeto.nombre_propiedad
donde argumentos son los parámetros que se pasan a la función.
Veamos cómo se referencian las propiedades: tenemos un objeto llamado profesor con
tres propiedades, que son el nombre, el año de nacimiento y el DNI:
profesor.nombre = “Toni Navarrete”
profesor.anyo_nacimiento = 1973
profesor.DNI = “12345678A”
Para crear nuestros propios objetos, lo hacemos siguiendo estos dos pasos:
1. Definir el objeto con una función constructor:
function profesor(nombre,anyo_nacimiento,DNI) {
this.nombre = nombre;
this.anyo_nacimiento = anyo_nacimiento;
this.DNI = DNI;
}
this hace siempre referencia al objeto actual.
Y veamos cómo asignar métodos a un objeto. Para ello le asignamos una función que
calcule los años del profesor. Para hacerla más simple, sólo restará el año actual menos
el año de nacimiento.
function calcula_edad( ) {
var edad = 2007 - this.anyo_nacimiento;
/* las variables se declaran explícitamente,
si bien el tipo se les asigna implícitamente */
document.write(“Su edad es: <b>“ + edad + “</b>)
}
Realmente, la función se podría escribir en una línea, pero así vemos cómo declarar una
variable local.
2. Asignamos la función al objeto, al crear el constructor:
function profesor(nombre,anyo_nacimiento,DNI) {
/* nótese que no incluimos el nombre de la función */
this.nombre = nombre;
this.anyo_nacimiento = anyo_nacimiento;
this.DNI = DNI;
this.calcula_edad = calcula_edad( );
}
function menor30() {
if (this.anyo_nacimiento<1977)
return 1;
else
return 0;
}
function Profesor2() {
}
Profesor2.prototype = new Profesor();
Profesor2.prototype.menor30 = menor30;
function colorfondo(color)
{
document.bgColor=color
}
</script>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<a href="#" onClick=colorfondo("#000000");>Pulsa para cambiar a negro el color de
fondo</a><p>
<a href="#" onClick=colorfondo("#FFFFFF");>Pulsa para cambiar a blanco el color de
fondo</a><p>
<a href="#" onClick=colorfondo("#FF0000");>Pulsa para cambiar a rojo el color de
fondo</a><p>
<a href="#" onClick=colorfondo("#00FF00");>Pulsa para cambiar a verde el color de
fondo</a><p>