Introduccion A HTML CSS Javascript
Introduccion A HTML CSS Javascript
INTRODUCCIÓN AL HTML 5
En resumen:
¿Que es el DOCTYPE?
Ejemplo:
<HEADER> </HEADER>
<NAV> </NAV>
<SECTION>
<ASIDE> </ASIDE> <ARTICLE> </ARTICLE>
</SECTION>
<FOOTER> </FOOTER>
Donde:
<HEADER> : Se utiliza para contener información tal como, logos, iconos de redes
sociales etc.
<NAV> : Esta etiqueta, está diseñada para colocar la botonera o navegación princi-
pal, se puede colocar cualquier etiqueta, aunque se recomienda el uso de la etiqueta
<ul> con su respectivo <li>.
Ejemplo:
<NAV>
<UL>
<LI> <a href="#"> HOME </a></LI>
<LI> <a href="#"> QUIENES SOMOS </a></LI>
<LI> <a href="#"> PORTAFOLIO </a></LI>
</UL>
</NAV>
<ASIDE> : Esta etiqueta fue creada para contener información no relevante para un
sitio web. Puede contener en cualquier caso desde un reproductor multimedia, hasta
una galeria de imágenes.
Ejemplo:
Formularios en HTML 5.
<INPUT TYPE = text> : Especifica al usuario que debe llenar el campo de texto.
<INPUT TYPE = email> : Especifica al usuario que debe llenar el campo con un
email en formato válido (user@domain)
<INPUT TYPE = url>: Especifica que el usuario debe llenar el campo con un url
válido.
<INPUT TYPE = date> : Especifica que el usuario debe llenar el campo con una fe-
cha.
Ejemplo:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Ejemplo nuevos controles</title>
</head>
<body>
<form action="." oninput="range_control_value.value = range_control.valueAsNumber">
<p>
Nombre: <input type="text" name="name_control" autofocus required />
<br />
Correo Electrónico: <input type="email" name="email_control" required />
<br />
URL: <input type="url" name="url_control" placeholder="Escripe la URL de tu página web
personal" />
<br />
Fecha: <input type="date" name="date_control" />
<br />
Tiempo: <input type="time" name="time_control" />
<br />
Fecha y hora de nacimiento: <input type="datetime" name="datetime_control" />
<br />
Mes: <input type="month" name="month_control" />
<br />
Semana: <input type="week" name="week_control" />
<br />
Número (min -10, max 10): <input type="number" name="number_control" min="-10"
max="10" value="0" />
<br />
Intervalo (min 0, max 10): <input type="range" name="range_control" min="0" max="10" va-
lue="0" /> <output for="range_control" name="range_control_value" >0</output>
<br />
Teléfono: <input type="tel" name="tel_control" />
<br />
Término de búsqueda: <input type="search" name="search_control" />
<br />
Color Favorito: <input type="color" name="color_control" />
<br />
<input type="submit" value="Submit!" />
</p>
</form>
</body>
</html>
El elemento <datalist>
Ejemplo:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>DATA LIST</title>
</head>
<body>
<label> Selecciona un país:
<input list="europa" name="listado"/></label>
<datalist id="europa">
<option value="España">
<option value="Francia">
<option value="Alemania">
<option value="Italia">
<option value="Portugal">
<option value="Holanda">
</datalist>
</body>
</html>
El atributo autofocus.
Ejemplo:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>AUTOFOCUS</title>
</head>
<body>
<FORM ACTION=".">
Nombre: <INPUT TYPE="text" name="fname" ><BR>
Apellido: <INPUT TYPE="text" name="lname" autofocus="autofocus"><BR>
Email: <INPUT TYPE="email" name="email" autofocus="autofocus"><BR>
</FORM>
</body>
</html>
Observe que al cargar esta página, el cursor se ubica sobre el elemento de formulario
marcado como apellido.
El atributo required.
Establece que el usuario está obligado a llenar el campo para continuar, es decir, el
navegador no permitirá que se envíe la forma hasta que no se llenen los <INPUT>.
Ejemplo:
<html>
<head>
<meta charset="utf-8" />
<title>REQUIRED</title>
</head>
<body>
<FORM ACTION=".">
Nombre: <INPUT TYPE="text" name="name" required="required"><BR>
<INPUT TYPE="submit">
</FORM>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>MIN & MAX</title>
</head>
<body>
<FORM ACTION=".">
Cantidad: <INPUT TYPE="number" name="cantidad" required="required" min="1"
max="5"><BR>
<INPUT TYPE="submit">
</FORM>
</body>
</html>
Las listas desordenadas comienzan con la etiquera <UL> (unordered list) y cada ele-
mento empieza con el la etiqueta <li>.
<!DOCTYPE html>
<html>
<body>
<h2>Lista desordenada en HTML</h2>
<ul>
<li>Café</li>
<li>Leche</li>
<li>Azúcar</li>
</ul>
</body>
</html>
Listas ordenadas.
Las listas ordenadas empiezan con la etiqueta <OL> y cada elemento empiezan con
la etiqueta <li>.
Ejemplo:
!DOCTYPE html>
<html>
<body>
<h2>Lista desordenada en HTML</h2>
<ol>
<li>Café</li>
<li>Leche</li>
<li>Azúcar</li>
</ol>
</body>
</html>
Como podrá observar la diferencia entre ambos tipos de listas, es la forma como se
numeran los elementos.
El elemento <div>
Ejemplo:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title> DIV </title>
</head>
<body>
<h1>Tim Berners-Lee</h1>
<div style="color: #00AA00; font-style: italic">
<p>Timothy "Tim" John Berners-Lee es un científico de la computación británico, conocido
por ser el padre de la Web. Estableció la primera comunicación entre un cliente y un servidor usan-
do el protocolo HTTP en noviembre de 1989.</p>
<p>En octubre de 1994 fundó el Consorcio de la World Wide Web (W3C) con sede en el MIT,
para supervisar y estandarizar el desarrollo de las tecnologías sobre las que se fundamenta la Web y
que permiten el funcionamiento de Internet.</p>
</div>
</body>
</html>
Se puede observar en color rojo, que se establece para el bloque de texto dentro de
<div> un color verde para el texto y un estilo de texto en itálica.
INTRODUCCIÓN A LAS HOJAS DE ESTILO CSS3.
Para empezar a demostrar como funciona CSS, se utilizará como documento base el
siguiente código HTML.
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo aplicación CSS </title>
</head>
<body>
</body>
</html>
Se empezará por explorar las características de CSS, el siguiente código muestra có-
mo se puede modificar los estilos de texto utilizando CSS.
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo HTML aprenderaprogramar.com</title>
<meta charset="utf-8">
<style type="text/css">
#negrita{font-weight:bold;}
#italica{font-style:italic;}
#tachado{text-decoration: line-through;}
#verde{color:green;}
</style>
</head>
<body>
<p>Negrita: <span id="negrita">Texto en negrita</span></p>
<p>Italica: <span id="italica">Texto en itálica</span></p>
<p>Tachado: <span id="tachado">Texto tachado</span></p>
<p>Color fuente: <span id="verde">Texto color verde</span></p>
</body>
</html>
HTML define una organización donde todos los elementos están dentro de un ele-
mento matriz (el elemento body) y a su vez cada elemento puede tener otros elemen-
tos dentro de él y así sucesivamente.
A partir del HTML, los navegadores tienen que realizar la interpretación del código y
mostrar en pantalla una página web. Ahora bien, a partir de un documento HTML ha-
bría distintas formas de presentar la información en pantalla. Por ejemplo, podrían
mostrarse los sucesivos elementos de izquierda a derecha, o bien de arriba abajo, o
bien de derecha a izquierda… ¿Qué hacen los navegadores? Los navegadores actúan
según unas reglas predefinidas aceptadas por todos (o casi todos) según la cual cada
elemento HTML se considera que está delimitado por un rectángulo o caja invisible.
De ahí que se hable de “modelo de cajas” para la web.
Cada caja puede ser o bien tipo <<block>> que podríamos considerar como “bloque
a lo ancho” o bien tipo <<inline>> que podríamos considerar como “elemento dentro
de una línea”. Cada caja se coloca dentro de la pantalla de la siguiente manera:
- Una caja debajo de otra, si son elementos block del documento HTML del mismo
rango o nivel en la jerarquía. Muchas de las etiquetas HTML se tratan por defecto co-
mo elementos block. Por ejemplo los elementos <div> … </div> son elementos
block. Igualmente son elementos block los formularios <form> … </form> o las lis-
tas <ul> … </ul>.
- Una caja al lado de otra, de izquierda a derecha de acuerdo con el orden con que
aparezcan en el documento HTML, si son elementos inline del documento HTML del
mismo rango o nivel en la jerarquía. Los elementos se mantienen uno al lado de otro
(excepto en el caso de que ya no haya espacio para ubicarlos, en cuyo caso pasan a la
siguiente línea). Algunas de las etiquetas HTML se tratan por defecto como elemen-
tos inline. Por ejemplo los elementos <img> son elementos inline.
- Una caja dentro de otra, siendo la caja interior la de menor rango o jerarquía. Puede
haber varias cajas dentro de cada caja, según se defina en el documento HTML.
El siguiente esquema reflejaría el modelo de cajas del documento HTML de forma si-
milar a como lo construye un navegador web como pueda ser Internet Explorer, Goo-
gle Chrome o Mozilla Firefox, Safari, etc.
Ejemplo:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo 3</title>
<meta charset="utf-8">
</head>
<body>
<p><a href="." 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 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
fashion" /></p>
<h3>Mejoramos el producto T-MOTION</h3>
<p>Hemos lanzado una nueva versión del producto MOTION</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo 3</title>
<meta charset="utf-8">
</head>
<body>
<p><a href="." 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 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
fashion" /></p>
<h3>Mejoramos el producto MOTION</h3>
<p>Hemos lanzado una nueva versión del producto MOTION</p>
</body>
</html>
Esto nos proporciona una idea de las jerarquias, pero para saber cuales elementos son
inline y cuales de tipo block, habrá que visualizarla.
Estilos en Linea
Una de las formas más simples e intuitivas de dotar de estilos al código HTML es
usando el atributo style que admiten la mayoría de las etiquetas HTML.
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo 4</title>
<meta charset="utf-8">
</head>
<body>
<ul style = "color: red;">
<li><a href="#" >Inicio</a></li>
<li> <a href="libros.html">Libros de programación</a> </li>
<li> <a href="cursos.html">Cursos de programación</a> </li>
<li> <a href="humor.html">Humor informático</a> </li>
</ul>
</body>
</html>
El resultado es el siguiente:
Observe como los elementos que identifican a cada elemento del menú, son de color
rojo.
Tomando el mismo ejemplo, ahora se pretende dejar las viñetas en rojo, Los textos de
menú en color verde y sin subrayado.
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo 5</title>
<meta charset="utf-8">
</head>
<body>
<ul style = "color: red;">
<li><a href="#" style = "color: green; text-decoration: none;">Inicio</a></li>
<li> <a href="libros.html" style = "color: green; text-decoration: none;" >Libros </a> </li>
<li> <a href="cursos.html" style = "color: green; text-decoration: none;" >Cursos</a> </li>
<li> <a href="humor.html" style = "color: green; text-decoration: none;" >Humor </a> </li>
</ul>
</body>
</html>
Se puede observar que se aplica un estilo a cada uno de los elementos, y con ello se
sobre escribe el estilo por defecto.
Ejercicio :
Modifica el código HTML siguiente para cumplir con estos requisitos mediante la
aplicación de estilos en línea:
a) La etiqueta h1 debe mostrar su texto en color rojo.
b) La etiqueta h3 con el texto relativo a FASHION debe mostrar su texto en color ver-
de.
c) La etiqueta h3 con el texto relativo a MOTION debe mostrar su texto en color
azul.
d) Todos los párrafos deben mostrar su texto en color brown (marrón).
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo 3</title>
<meta charset="utf-8">
</head>
<body>
<p><a href="." 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 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
fashion" /></p>
<h3>Mejoramos el producto MOTION</h3>
<p>Hemos lanzado una nueva versión del producto MOTION</p>
</body>
</html>
CSS interno.
Es posible establecer estilos dentro del encabezado <head> usando la siguiente sin-
taxis.
<head>
…
<style type="text/css">
elementoAfectadoPorElEstilo {
propiedad1ParaEseTipoDeElementos:valor;
propiedad2ParaEseTipoDeElementos:valor;
propiedad3ParaEseTipoDeElementos:valor;
…
propiedadnParaEseTipoDeElementos:valor;
}
</style>
</head>
Se puede observar en el código que la sección en color rojo, determina los estilos pa-
ra las etiquetas <ul> y <a>.
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 de-
sarrollo 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 mi-
les 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 do-
tar de estilos a decenas, cientos o miles de archivos html, que únicamente deberán in-
vocar el nombre de archivo utilizando una sintaxis específica. De este modo un cam-
bio en los estilos habrá que hacerlo únicamente en el archivo de estilos correspon-
diente, 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 correspon-
diente.
Para introducir, código JavaScript desde un archivo externo, se debe seguir la si-
guiente sintaxis.
<head>
…
<link rel="stylesheet" type="text/css" href="rutaDelArchivo.css">
</head>
Veamos un ejemplo:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo 7</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="estilos.css">
</head>
<body>
<div>
<h1>Ejemplo 7</h1>
<h2>CSS interno</h2>
</div> <br />
<div>
<div>
<div>Menú
</div> <hr/>
<ul>
<li><a href="#">Inicio</a></li>
<li> <a href="libros.html">Libros</a> </li>
<li> <a href="cursos.html">Cursos</a> </li>
<li> <a href="humor.html">Humor</a> </li>
</ul>
</div>
</html>
ul {color:red;}
a {color:green; text-decoration: none;}
Ejercicio:
Modifica el código HTML mostrado a continuación para cumplir con estos requisitos
mediante la aplicación de estilos internos:
<!DOCTYPE html>
<html>
<head>
<title>Ejercicio</title>
<meta charset="utf-8">
</head>
<body>
<p><a href="." 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 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
fashion" /></p>
<h3>Mejoramos el producto T-MOTION</h3>
<p>Hemos lanzado una nueva versión del producto MOTION</p>
</body>
</html>
Ejercicio:
Modifica el código HTML del ejercicio anterior para cumplir con estos requisitos me-
diante la aplicación de CSS externo definido en un archivo independiente.
La relevancia de JavaScript
Incorporando JavaScript
Al igual que CSS, existen varias técnicas básicas para incorporar JavaScript en hiper-
textos.
En línea:
Ejemplo:
<!DOCTYPE html>
<html lang="es">
<head>
<title> JS1 </title>
</head>
<body>
<div id="principal">
<p onclick="alert('hizo click');"> Pulse Aqui </p>
<p> No puede hacer click aqui </p>
</div>
</body>
</html>
Ejemplo: Utilizando estilos, poner en negritas el texto que dice pulse aqui:
<!DOCTYPE html>
<html lang="es">
<head>
<title> JS1 </title>
<style>
p.negritas {font: italic bold 14px Georgia, Serif;}
</style>
</head>
<body>
<div id="principal">
<p class="negritas" onclick="alert('hizo click');"> Pulse Aqui </p>
<p> No puede hacer click aqui </p>
</div>
</body>
</html>
Embebido:
Para trabajar con códigos mas extensos y funciones personalizadas, debemos agrupar
códigos entre las etiquetas <script> que funcionan de manera similar a las etiquetas
<style> para CSS.
Ejemplo:
<!DOCTYPE html>
<html lang="es">
<head>
<title> JS2 </title>
<style>
p.negritas {font: italic bold 14px Georgia, Serif;
color:red;
border-bottom:2px solid #999999;}
</style>
</head>
<body>
<div id="principal">
<p class="negritas", id="primero"> Pulse Aqui </p>
<p> No puede hacer click aqui </p>
</div>
<script type="text/javascript">
function showalert()
{
alert("Hizo click");
}
function doclick()
{
document.getElementById('primero').onclick=showalert;
}
window.onload=doclick();
</script>
</body>
</html>
Los códigos en JavaScript pueden llegar a crecer tanto que al tratarlos de guardar en
el documento, pudieran incrementar significativamente su tamaño. Para reducir los
tiempos de descarga, incrementar nuestra productividad y poder reusar nuestros códi-
gos en cada documento, se recomienda grabar todos los códigos JavaScript en uno o
mas archivos externos y llamarlos utilizando el atributo src.
Ejemplo:
<!DOCTYPE html>
<html lang="es">
<head>
<title> JS3 </title>
<script src="codigo.js"> </script>
<style>
p.negritas {font: italic bold 14px Georgia, Serif;
color:red;
border-bottom:2px solid #999999;}
</style>
</head>
<body>
<div id="principal">
<p class="negritas", id="primero"> Pulse Aqui </p>
<p> No puede hacer click aqui </p>
</div>
<script type="text/javascript">
window.onload=doclick();
</script>
</body>
</html>
function showalert()
{
alert("Hizo click");
}
function doclick()
{
document.getElementById('primero').onclick=showalert;
}
Selectores
Selector querySelector()
Este método toma el primer elemento que concuerda con el grupo de selectores espe-
cificados. utilizando una sintaxis similar al CSS.
Ejemplo:
Para el último documento HTML editado, modificarlo para que su título sea JS4, y
que llame al archivo codigo2.js.
function doclick()
{
document.querySelector("#principal p:first-child ").onclick=showalert;
}
function showalert()
{
alert("HIZO CLICK");
}
Lo que hace este selector es, buscar dentro de principal, el primer elemento <p> y
asignarle el disparador onclick=showalert;
selector querySelectorAll()
En lugar de uno, querySelectorAll retoma todos los elementos que concuerdan con el
grupo de selectores declarados entre paréntesis.
Ejemplo:
function doclick()
{
var lista=document.querySelectorAll("#principal p");
lista[0].onclick=showalert;
}
function showalert()
{
alert("HIZO CLIC");
}
Observe que en este caso, se selecciona el elemento [0] de la lista que es el primer pá-
rrafo <p> en principal.
Si se deseara que el segundo mienbro de la lista de parrafos <p> en <div id="princi-
pal"> sea quien muestre el mensaje. Deberia en este caso seleccionar el elemento lis-
ta[1] de la lista.
function doclick()
{
var lista=document.querySelectorAll("#principal p");
for(var x=0; x<lista.length; x++)
lista[x].onclick=showalert;
function showalert()
{
alert("DO CLICK");
}
Manejadores de eventos:
En JavaScript, las acciones de los usuarios se llaman eventos. Cuando un usuario rea-
liza una acción, como el click de un ratón o presionar una tecla, un evento específico
para cada acción y cada elemento es disparado.
Este, ya se utilizó en el ejemplo con título JS1, el cuál utiliza los atributos provistos
HTML para registrar un evento para un elemento en particular.
A fin de evitar complicaciones técnicas en línea, se debe registrar un evento desde Ja-
vaScript. De esta forma se referencía los elementos HTML y se les asigna un maneja-
dor de eventos (función).
En el código titulado JS2, se utilizó el manejador de eventos onload y el manejador
de eventos onclick .
Los elementos HTML a los cuales seles asigna un manejador de eventos, se leccio-
nan con la línea:
document.getElementById()
El método addEventListener():
Esteb método recibe 3 argumentos: El nombre del evento, la función a ser ejecutada y
un valor booleano (verdadero o falso ) que inidica cómo un elemento será disparado
en elementos superpuestos.
Ejemplo:
<!DOCTYPE html>
<html lang="es">
<head>
<title> JS6 </title>
<style>
p.negritas {font: italic bold 14px Georgia, Serif;
color:red;
border-bottom:2px solid #999999;}
</style>
<script>
function showalert()
{
alert("Hizo click");
}
function doclick()
{
var elemento=document.getElementById("primero");
elemento.addEventListener('click',showalert,false);
}
</script>
</head>
<body onload='doclick'>
<div id="principal">
<p class="negritas", id="primero"> Pulse Aqui </p>
<p> No puede hacer click aqui </p>
</div>
<script>
window.onload=doclick;
</script>
</body>
</html>
La línea en color rojo, muestra la forma cómo se establece que al hacer clic sobre
"primero".