¿Qué es Html?
HTML, siglas de HyperText Markup Language (Lenguaje de Marcado de Hipertexto), es el lenguaje de marcado predominante para la elaboración de páginas web. Es usado para describir la estructura y el contenido en forma de texto, así como para complementar el texto con objetos tales como imágenes. HTML se escribe en forma de «etiquetas», rodeadas por corchetes angulares (<,>). HTML también puede describir, hasta un cierto punto, la apariencia de un documento, y puede incluir un script (por ejemplo Javascript), el cual puede afectar el comportamiento de navegadores web y otros procesadores de HTML.
HTML también es usado para referirse al contenido del tipo de MIME text/html o todavía más ampliamente como un término genérico para el HTML, ya sea en forma descendida del XML (como XHTML 1.0 y posteriores) o en forma descendida directamente de SGML (como HTML 4.01 y anteriores).
Estructura interna de HTML.
Las instrucciones HTML están encerradas entre los caracteres: < y >.
Muchos elementos HTML requieren una marca de comienzo y otra de finalización. Todo aquello que está fuera de las marcas del lenguaje se imprime en la pantalla (dentro del navegador).
La estructura básica de una página HTML es:
<html>
<head>
</head>
<body>
Cuerpo de la página.
</body>
</html>
Una página HTML es un archivo que generalmente tiene como extensión los caracteres html. Por ejemplo podemos llamar a nuestra primer página con el nombre: pagina1.htmlDurante este curso no necesitará utilizar otra herramienta más que este sitio. Veremos que contamos con una ventana donde tipeará la página y en otra verá los resultados que genera el navegador. No significa que no pueda hacerse una copia de los ejercicios que desarrolla y almacenarlos en su computadora.
Estos son los elementos básicos que toda página HTML debe llevar.
Si observamos toda página comienza con la marca:<html> y finaliza con la marca:</html>
Los fines de marcas tienen el mismo nombre que el comienzo de marca, más el caracter /
Una página HTML tiene dos secciones muy bien definidas que son la cabecera:
La cabecera
<head>
</head>
<body>
Cuerpo de la página.
</body>
Todo el texto que dispongamos dentro del <body> aparece dentro del navegador tal cual lo hayamos escrito.
Todas las páginas tiene como mínimo esta estructura: cabecera y cuerpo.
Otra cosa importante es que el lenguaje HTML no es sensible a mayúsculas y minúsculas, es decir podemos escribirlo como más nos guste, además no requiere que dispongamos cada marca en una línea (podríamos inclusive escribir toda la página en una sola línea! cosa que no conviene ya que somos nosotros quienes tendremos que modificarla en algún momento).
Ahora puede ir a la sección de problema resuelto y ver el ejemplo ejecutándose en el navegador. Podrá ver la pantalla dividida en tres partes: primero se enuncia el problema, la segunda parte es el editor donde tipeamos la solución al problema (en este caso ya está resuelto por lo que aparece automáticamente) y la última sección de la pantalla muestra la página ejecutándose en el navegador.
Por último deberá resolver un problema, es decir confeccionar una página HTML. Recomiendo tipear las marcas HTML para aprenderlas de memoria. No es conveniente copiar y pegar. Cuando recuerde todas las marcas, podrá copiar y pegar trozos de páginas HTML para agilizar el desarrollo.
Contenido de la cabecera de la página <title>
Hasta ahora habíamos dispuesto la cabecera vacía, ya que casi toda la información que disponemos en ella no se visualiza en el navegador. La única excepcion corresponde al elemento title.El elemento title nos permite definir el título que aparecerá en la barra del navegador (es decir en la parte más alta de la ventana)
Siempre debemos buscar un título lo más significativo en cuanto a lo que muestra la página.
Veamos una simple página que muestre un mensaje y contenga un hipervínculo a una segunda página que muestre otro título:
pagina1.html
<html>
<head>
<title>Título de la primer página</title>
</head>
<body>
<h1>Prueba del elemento title</h1>
<a href="pagina2.html">Ir a la segunda página</a>
</body>
</html>
Contenido de la cabecera de la página <meta>
Un elemento que no se visualiza es el meta, que tiene por objetivo especificar información sobre el propio documento.Veamos las dos propiedades fundamentales de la marca meta y los valores más comunes con lo que podemos inicializarlos:
<meta name="nombre de la propiedad" content="valor de la propiedad">
Name almacena el nombre de la propiedad y content el valor de la propiedad.No existe ninguna especificación de la W3C que defina los valores posibles para el atributo name, si bien existen algunos que son estandares de facto (description, keywords, author etc.)
Veamos las propiedades y valores más comunes
<meta name="keywords" content="html, programación, webmaster">
Los buscadores tienen en cuenta los metadatos. Si en la página inicializamos la propiedad name del elemento meta con el valor keywords luego buscará en la propiedad content las distintas palabras claves más representativas para dicha página. Esto es muy útil para posicionar nuestra página según el contenido que provee.Veamos otras inicializaciones del elemento meta:
<meta name="description" content="El objetivo de este tutorial
es presentar los conceptos básicos de HTML. Es objetivo prioritario respetar
los estándares del W3C">
En este caso especificamos una descripción de la página, pudiendo ser del sitio si se trata de la página principal.<meta name="author" content="Diego Rodriguez">
<meta name="copyright" content="Interpolacion inc.">
Comentarios dentro de una página <!-- -->
Un comentario es un texto que solo le interesa a la persona que desarrolló la página, el navegador ignora todo el contenido que se encuentra dentro de esta marca.Los comentarios son muy útiles para el desarrollador de la página. Uno deja anotaciones para facilitar el mantenimiento del sitio.
Además hay que tener en cuenta que puede ser otra persona la que desarrolle en otro momento el mantenimiento de las páginas que desarrollamos nosotros. Lo que para uno puede ser muy obvio a otro desarrollador puede no ser tan obvio.
Otro uso muy habitual cuando estamos desarrollando la página si queremos deshabilitar una parte del código podemos encerrarla entre los caracteres de comentarios.
La sintaxis para definir un comentario es:
<!-- Aquí va el comentario -->
Es obligatorio luego del caracter de menor < disponer el signo de admiración y los dos guiones seguidos. Cerramos el comentario con dos guiones y el signo de mayor >Confeccionaremos un página donde emplearemos comentarios:
<html>
<head>
</head>
<body>
<!-- Corresponden a datos del año 2006. Modificar a principios de 2007-->
<table border="1">
<tr>
<th rowspan="4">Recursos</th><th colspan="4">Facturación
de los últimos tres meses</th>
</tr>
<tr>
<td>Discos Duros</td><td>23000</td><td>27200</td><td>26000</td>
</tr>
<tr>
<td>CPU</td><td>73000</td><td>67300</td><td>51000</td>
</tr>
<tr>
<td>Monitores</td><td>53000</td><td>72000</td><td>88000</td>
</tr>
</table>
</body>
</html>
Un comentario puede abarcar varias líneas:<!--
comentarios - comentarios - comentarios
comentarios - comentarios - comentarios
comentarios - comentarios - comentarios
comentarios - comentarios - comentarios
comentarios - comentarios - comentarios
comentarios - comentarios - comentarios
comentarios - comentarios - comentarios
comentarios - comentarios - comentarios
-->
De todos modos hay que tener en cuenta que cuando un navegador pide la página a un sitio el servidor envía el archivo HTML completo, es decir con los comentarios. Los comentarios consumen ancho de banda del servidor.Sintaxis para caracteres especiales.
Posiblemente hasta ahora no se a preguntado como disponer dentro de una página los caracteres: < y >. Veremos que no los podemos disponer directamente ya que el navegador los confudiría con los caracteres que se utilizan para las marcas HTML.La solución es utilizar otra sintaxis para dichos caracteres, veamos los más utilizados:
< < > > & & " " //Espacio en blanco. © © € €Es decir la sintaxis es disponer un ampersand seguido de un nombre significativo (por lo menos para los que entienden ingles) y finalmente un punto y coma.
Para ver su funcionamiento mostraremos la siguiente ecuación:
10+x*y < 12*z
pagina1.html<html> <head> <title>Título de la primer página</title> </head> <body> <h1> 10+x*y < 12*z </h1> </body> </html>
Etiquetas Html
Cuando aparece la marca <br> el navegador continua con el texto en la línea siguiente. Es uno de los pocos elementos HTML que no tiene marca de cerrado como habíamos visto hasta ahora.
Implementemos una página que muestre los nombres de distintos lenguajes de programación uno por línea:
<html>
<head>
</head>
<body>
PHP<br>
JavaScript<br>
Java<br>
C<br>
C++
</body>
</html>
Como vemos sólo hemos agregado la marca <br> cada vez que queremos comenzar una línea. Tengamos en cuenta que es indistinto si disponemos la marca en la misma línea o en la siguiente:Dentro de un párrafo puede haber saltos de línea <br>.
Veamos con un ejemplo como disponer dos párrafos:
<html>
<head>
</head>
<body>
<p>
SQL, Structure Query Language (Lenguaje de Consulta Estructurado) es un lenguaje
de programacion para trabajar con base de datos relacionales como MySQL, Oracle,
etc.<br>
MySQL es un interpretador de SQL, es un servidor de base de datos.<br>
MySQL permite crear base de datos y tablas, insertar datos, modificarlos, eliminarlos,
ordenarlos, hacer consultas y realizar muchas operaciones, etc., resumiendo: administrar
bases de datos.
</p>
<p>
Este tutorial tiene por objetivo acercar los conceptos iniciales para introducirse
en el mundo de las bases de datos.
</p>
</body>
</html>
Tenemos en esta página HTML dos párrafos, cuando el navegador interpreta esta página, separa los contenidos de los dos párrafos con un espacio horizontal. Además el primer párrafo contiene varios saltos de línea. Normalmente uno agrupa en párrafos para dar más sentido a nuestro escrito.Cuando modificamos la ventana del navegador los párrafos se acomodan automáticamente de acuerdo al ancho de la ventana.
Para recordar el nombre de esta marca HTML:
<h> viene de heading(Titulo)
Otros elementos HTML muy utilizados son para indicar los títulos, para esto contamos con los elementos: <h1><h2><h3><h4><h5><h6> El título de mayor nivel es <h1>, es decir el que tienen una fuente mayor (veremos que es el navegador el responsable de definir el tamaño de la fuente, más adelante podrá ver que uno puede modificar la fuente, tamaño, color etc.) Según la importancia del título utilizaremos alguno de estos elementos HTML. Requiere la marca de cerrado del título con la barra invertida como hemos visto. Confeccionaremos una página que contenga un título de primer nivel <h1> y luego dos títulos de nivel <h2>. Definiremos un párrafo para cada título de segundo nivel. pagina1.html<html> <head> </head> <body> <h1>Tipos de datos en MySQL</h1> <h2>varchar</h2> <p> se usa para almacenar cadenas de caracteres. Una cadena es una secuencia de caracteres. Se coloca entre comillas (simples): 'Hola'.<br> El tipo "varchar" define una cadena de longitud variable en la cual determinamos el máximo de caracteres. Puede guardar hasta 255 caracteres. Para almacenar cadenas de hasta 30 caracteres, definimos un campo de tipo varchar(30). </p> <h2>int</h2> <p> Se usa para guardar valores numéricos enteros, de -2000000000 a 2000000000 aproximadamente.<br> Definimos campos de este tipo cuando queremos representar, por ejemplo, cantidades. </p> </body> </html>Cada título aparece siempre en una línea distinta, no importa si lo tipeamos seguido en el archivo, es decir el resultado será igual si hacemos:<h1>Tipos de datos en MySQL</h1> <h2>varchar</h2>o esto:<h1>Tipos de datos en MySQL</h1><h2>varchar</h2>El navegador dispone cada título en una línea nueva. Recordemos que el HTML no tiene la responsabilidad de indicar el tamaño de las fuentes. El navegador definirá el tamaño de fuente según el nivel de título que indiquemos. La de tamaño más grande es la de nivel 1 <h1>.
<strong> viene de strong (fuerte) <em> viene de empathize que (énfasis)
Enfatizar algo significa realzar la importancia de una cosa, por ejemplo una palabra o conjunto de palabras.
Así como tenemos seis niveles de títulos para enfatizar un bloque contamos con dos elementos que son (<em> <strong>)
El elemento de mayor fuerza de énfasis es strong y le sigue em
Veamos un ejemplo del empleo de estos dos elementos HTML:
<html>
<head>
</head>
<body>
<p><strong>Típos de datos</strong> en MySQL</p>
<p><em>TEXTO</em>: Para almacenar texto usamos cadenas de caracteres.
Las cadenas se colocan entre comillas simples. Podemos almacenar dígitos
con los que no se realizan operaciones matemáticas, por ejemplo, códigos
de identificación, números de documentos, números telefónicos.
Tenemos los siguientes tipos: varchar, char y text.</p>
<p><em>NUMEROS</em>: Existe variedad de tipos numéricos
para representar enteros, negativos, decimales. Para almacenar valores enteros,
por ejemplo, en campos que hacen referencia a cantidades, precios, etc., usamos
el tipo integer. Para almacenar valores con decimales utilizamos: float o decimal.</p>
<p><em>FECHAS Y HORAS</em>: para guardar fechas y horas dispone
de varios tipos: date (fecha), datetime (fecha y hora), time (hora), year (año)
y timestamp.</p>
</body>
</html>
Podemos ver que la sintaxis para el elemento strong es:<strong>Típos de datos</strong>
La mayoría de los navegadores muestran el texto enfatizado con strong con un texto en negrita y para el elemento em utilizan letra itálica (de todos modos esto no es obligatorio, pero seguramente mostrarán los textos enfatizados).
Otra cosa importante que podemos hacer notar es que estos elementos HTML no producen un salto de línea como los de título (h1,h2 etc.)
<a> viene de anchor (Ancla)
El elemento más importante que tiene una página de internet es el hipervínculo, estos nos permiten cargar otra página en el navegador. Esto es lo que hace diferente la página de un libro con la página de un sitio en internet. Normalmente un libro lo recorremos en forma secuencial, pero un sitio de internet podemos disponer estos enlaces entre un conjunto de páginas y luego tener distintas alternativas de recorrido. Normalmente un navegador al encontrar esta marca muestra un texto subrayado, y al hacer clic con el mouse sobre éste el navegador carga la página indicada por dicho hipervínculo. Primero veremos cual es la sintaxis para disponer un hipervínculo a una página que se encuentra en el mismo sitio (es decir otra página que hemos desarrollado nosotros). La marca de hipervínculo a otra página del mismo sitio tiene la siguiente sintaxis:<a href="pagina2.html">Noticias</a>Como vemos, se trata de otro elemento HTML que tiene comienzo de marca y fin de marca. Lo que se encuentra entre el comienzo de marca y el fin de la marca es el texto que aparece en la página (normalmente subrayado). Lo nuevo que aparece en este elemento es el concepto de una propiedad. Una propiedad se incorpora en el comienzo de una marca y tiene un nombre y un valor. El valor de la propiedad debe ir entre comillas dobles. La propiedad href del elemento "a" hace referencia a la página que debe mostrar el navegador si el visitante hace clic sobre el hipervínculo. Implementemos dos páginas que contengan hipervínculos entre si, los nombres de las páginas HTML serán: pagina1.html y pagina2.html pagina1.html<html> <head> </head> <body> <h1>Página principal.</h1> <a href="pagina2.html">Noticias</a> </body> </html>pagina2.html<html> <head> </head> <body> <h1>Noticias.</h1> <a href="pagina1.html">Salir.</a> </body> </html>Como podemos observar lo nuevo en la pagina1.html es el hipervínculo a la pagina2.html:<a href="pagina2.html">Noticias</a>Toda propiedad toma el valor que se encuentra seguidamente del caracter = El valor de la propiedad href en este caso es pagina2.html (es otro archivo HTML que debe encontrarse en nuestro sitio y en el mismo directorio). El segundo archivo pagina2.html tiene un hipervínculo a la primer página:<a href="pagina1.html">Salir.</a><img> viene de image (Imagen)
Para insertar una imagen dentro de una página debemos utilizar el elemento HTML <img>, la misma no tiene una marca de finalización (similar a la marca <br>). Generalmente, la imagen se encuentra en el mismo servidor donde se almacenan nuestras páginas HTML. Los formatos clásicos son los archivos con extensiones gif, jpg y png. La sintaxis de esta marca es:<img src="foto1.jpg" alt="Pintura geométrica">Como mínimo, debemos inicializar las propiedades src y alt de la marca HTML img. En la propiedad src indicamos el nombre del archivo que contiene la imagen (en un servidor Linux es sensible a mayúsculas y minúsculas por lo que recomiendo que siempre utilicen minúsculas para los nombres de archivos). Como la imagen se encuentra en el mismo directorio donde se almacena la página HTML, con indicar el nombre de archivo basta (no es necesario indicar ninguna ruta de carpetas). Otra propiedad obligatoria es alt, donde disponemos un texto que verán los usuarios que visiten el sitio con un navegador que sólo permite texto (o con un navegador que tenga desactivada la opción de descarga de imágenes). El texto debe describir el contenido de la imagen. Confeccionemos una página que muestre una imagen llamada foto1.jpg (La imagen se encuentra almacenada en el servidor en la misma carpeta donde se localiza esta página)<html> <head> </head> <body> <img src="foto1.jpg" alt="Pintura geométrica"> </body> </html>Si la imagen se encuentra en una subcarpeta llamada imagenes, luego la sintaxis para recuperarla será:<img src="imagenes/foto1.jpg" alt="Pintura geométrica">Es decir, antecedemos al nombre de la imagen el nombre de la carpeta y la barra / Si la imagen se encuentra en una carpeta padre de donde se encuentra la página HTML luego la sintaxis será:<img src="../foto1.jpg" alt="Pintura geométrica">Es decir, le antecedemos .. y la barra / al nombre de la imagen Si queremos subir dos carpetas luego escribimos:<img src="../../foto1.jpg" alt="Pintura geométrica">Por último, si queremos acceder a una imagen que se encuentra en una carpeta llamada imagenes pero que está al mismo nivel:<img src="../imagenes/foto1.jpg" alt="Pintura geométrica">Primero le indicamos que subimos al directorio padre mediante los dos puntos .. y seguidamente indicamos el nombre de la carpeta y la imagen a mostrar.src viene de sourcealt viene de alternative<ol> viene de ordened list (Lista Ordenada) <li> viene de list item (Lsita de Items)
Este elemento HTML es útil cuando debemos numerar una serie de objetos.
Veamos con un ejemplo una lista ordenada para conocer su sintaxis. Mostraremos el orden de llegada de tres corredores:
<html>
<head>
</head>
<body>
<ol>
<li>Rodriguez Pablo</li>
<li>Gonzalez Raul</li>
<li>Lopez Hector</li>
</ol>
</body>
</html>
La marca <ol> y su correspondiente marca de cerrado es </ol>
En su interior cada uno de los items se los dispone con el elemento li, que también tiene la marca de comienzo <li> y la marca de fin de item </li>
Luego se encarga el navegador de numerar cada uno de los items contenidos en la lista, tengamos en cuenta que se numeran porque se trata de una lista ordenada.
<ul> viene de unordered list <li> viene de list item
Una lista no ordenada como su nombre lo indica no utiliza un número delante de cada items sino un pequeño símbolo gráfico.
La forma de implementar este tipo de listas es idéntico a las listas ordenadas.
Veamos un ejemplo donde implementamos una lista no ordenada:
<html>
<head>
</head>
<body>
<h2>Lenguajes de programación.</h2>
<ul>
<li>C</li>
<li>C++</li>
<li>Java</li>
<li>C#</li>
</ul>
</body>
</html>
Lista de definiciones <dl>
<dl> viene de definition list
<dt> viene de definition term
<dd> viene de definition description
Como su nombre lo indica se utiliza para asociar un término y la definición del mismo. El navegador se encarga de destacar y separa el término y su definición.Crearemos una lista con la definición de varios lenguajes de programación:
<html>
<head>
</head>
<body>
<dl>
<dt>C++</dt>
<dd>Es un lenguaje de programación, diseñado a mediados de
los años 1980, por Bjarne Stroustrup, como extensión del lenguaje
de programación C.</dd>
<dt>Java</dt>
<dd>Es un lenguaje de programación orientado a objetos desarrollado
por Sun Microsystems a principios de los 90.</dd>
<dt>JavaScript</dt>
<dd>Es un lenguaje interpretado, es decir, que no requiere compilación,
utilizado principalmente en páginas web, con una sintaxis semejante a la
del lenguaje C.</dd>
</dl>
</body>
</html>
Como podemos observar intervienen más marcas que en los otros dos tipos de listas. Las marcas que encierran a la lista son <dl> (Definition List) y </dl>Ahora debemos poner a pares estos dos elementos <dt> (Definition Term) y <dd> (Definition Description)
El navegador se encarga de hacer el sangrado del contenido del elemento dt
Listas anidadas.
El lenguaje HTML nos permite insertar una lista dentro de otra. Se pueden anidar listas de distinto tipo, por ejemplo podemos tener una lista no ordenada y uno de los item puede ser una lista ordenada.Para el anidamiento de listas solo debemos tener cuidado en la correcta apertura y cerrado de las marcas
Implementaremos una página que enumere una serie de paises en una lista ordenada y luego en cada pais dispondremos una lista de hipervínculos de periódicos de dicho pais:
<html>
<head>
</head>
<body>
<ol>
<li>Argentina
<ul>
<li><a href="http://www.lanacion.com.ar">La Nación</a></li>
<li><a href="http://www.clarin.com.ar">Clarín</a></li>
<li><a href="http://www.pagina12.com.ar">Página 12</a></li>
</ul>
</li>
<li>España
<ul>
<li><a href="http://www.elpais.es">El País Digital</a></li>
<li><a href="http://www.abc.es">ABC</a></li>
<li><a href="http://www.elmundo.es">El Mundo</a></li>
</ul>
</li>
<li>México
<ul>
<li><a href="http://www.jornada.unam.mx">La Jornada</a></li>
<li><a href="http://www.el-universal.com.mx">El Universal</a></li>
</ul>
</li>
</ol>
</body>
</html>
Se puede insertar en un elemento li una lista como podemos ver:<li>Argentina
<ul>
<li><a href="http://www.lanacion.com.ar">La Nación</a></li>
<li><a href="http://www.clarin.com.ar">Clarín</a></li>
<li><a href="http://www.pagina12.com.ar">Página 12</a></li>
</ul>
</li>
Tabla <table><tr> table row o Fila de tabla <td> table data o dato de tabla
El objetivo fundamental de las tablas es mostrar una serie de datos en forma ordenada, organizado en filas y columnas.
Algo importante es que no utilizaremos las tablas para organizar la página completa (esto se hace en la actualizad mediante CSS, es decir hojas de estilo.
Para la creación de una tabla intervienen una serie de elementos:
<table> Es la marca de comienzo de la tabla. Este elemento requiere la marca de cierre.
<tr> Es la marca de comienzo de una fila. Esta marca debe estar dentro del elemento table. Este elemento requiere la marca de cierre.
<td> Es la marca de comienzo de una celda. Esta marca debe estar dentro del elemento tr. Este elemento requiere la marca de cierre.
Para recordar el nombre de estos elementos HTML:
<table>
<tr> viene de table row que significa fila de la tabla.
<td> viene de table data que significa dato de la tabla.
La mejor forma de entender y dominar este concepto es implementar tablas y ver su resultado dentro del navegador. Confeccionemos una tabla que muestre los nombre de paises en una columna y su cantidad de habitantes en otra:<html> <head> </head> <body> <table border="1"> <tr> <td>China</td><td>1300 millones</td> </tr> <tr> <td>India</td><td>1080 millones</td> </tr> <tr> <td>Estados Unidos</td><td>295 millones</td> </tr> </table> </body> </html>Lo primero que aparece es la apertura del elemento table, donde inicializamos la propiedad border con el valor 1, con esto el contorno de cada celda será visible (pruebe de asignarle el valor cero y otros valores superiores a 1)
<table border="1">
Seguidamente viene la apertura de la primer fila de la tabla con el elemento tr:<tr>
Continuamos con la apertura de la primer celda de la primer fila de la tabla:<td>
Luego el dato propiamente dicho de la celda:India
Cerramos la celda:</td>
Abrimos la proxima celda:<td>Disponemos el valor de la celda:
1300 millones
Cerramos la celda:</td>
Ahora cerramos la primer fila de la tabla:</tr>
El mecanismos de la siguiente fila es similar a la primera.Tabla con encabezado <th> table header cell o encabezado de tabla
La primer característica que le vamos a agregar a una tabla son las celdas de encabezado. Normalmente la primer fila de una tabla puede representar los títulos para cada columna.Para indicar que se trata de una celda de encabezado utilizamos el elemento <th> en lugar de <td>
El navegador representa distinto las celdas de datos y las celdas de encabezamiento.
Confeccionemos el mismo problema del concepto anterior pero agregando un título a cada columna de la tabla mediante celdas de encabezamiento:
<html>
<head>
</head>
<body>
<table border="1">
<tr>
<th>Paises</th><th>Cantidad de habitantes</th>
</tr>
<tr>
<td>China</td><td>1300 millones</td>
</tr>
<tr>
<td>India</td><td>1080 millones</td>
</tr>
<tr>
<td>Estados Unidos</td><td>295 millones</td>
</tr>
</table>
</body>
</html>
Si observamos el código de la página para indicar que se trata de una celda de tipo encabezado utilizamos el elemento th:<tr>
<th>Paises</th><th>Cantidad de habitantes</th>
</tr>
El elemento th debe estar contenido entre las marcas <tr> y </tr>, es decir pertenecen a una fila.Tabla con título <caption>
Para disponer un título a una tabla debemos incorporar el elemento caption inmediatamente después que abrimos la marca table. El elemento caption requiere la marca de apertura y cierre.Dispongamos un título a nuestra tabla con la población de distintos paises:
<html>
<head>
</head>
<body>
<table border="1">
<caption>Población de los paises con mayor cantidad de habitantes.</caption>
<tr>
<th>Paises</th><th>Cantidad de habitantes</th>
</tr>
<tr>
<td>China</td><td>1300 millones</td>
</tr>
<tr>
<td>India</td><td>1080 millones</td>
</tr>
<tr>
<td>Estados Unidos</td><td>295 millones</td>
</tr>
</table>
</body>
</html>
Como podemos observar la marca caption está inmediatamente después que se abre la marca de comienzo de la tabla:<table border="1">
<caption>Población de los paises con mayor cantidad de habitantes.</caption>
<tr>
Tabla y combinación de celdas.
En algunas situaciones se necesita que una celda ocupe el lugar de dos o más celdas en forma horizonzal o vertical, para estos casos el elemento td o th dispone de dos propiedades llamadas rowspan y colspan.A estas propiedades se les asigna un valor entero a partir de 2.
Si queremos que una celda ocupe tres columnas luego inicializamos la propiedad rowspan con el valor 3:
<td colspan="3">Facturación de los últimos tres
meses</td>
Si por el contrario queremos que una celda se extienda a nivel de filas luego hacemos:<td rowspan="3">Secciones</td>
Veamos un ejemplo empleando el concepto de combinación de celdas:<html> <head> </head> <body> <table border="1"> <tr> <th rowspan="4">Recursos</th><th colspan="4">Facturación de los últimos tres meses</th> </tr> <tr> <td>Discos Duros</td><td>23000</td><td>27200</td><td>26000</td> </tr> <tr> <td>CPU</td><td>73000</td><td>67300</td><td>51000</td> </tr> <tr> <td>Monitores</td><td>53000</td><td>72000</td><td>88000</td> </tr> </table> </body> </html>Veamos como definimos la primer fila de la tabla:
<tr>
<th rowspan="4">Recursos</th><th colspan="4">Facturación
de los últimos tres meses</th>
</tr>
Como podemos observar la primer celda la expandimos hacia abajo 4 casilla y la segunda celda la expandimos hacia la derecha en 4 celdas.Cuando tenemos que disponer las celdas de la segunda fila debemos tener en cuenta que la primera está ocupada. Luego el código es:
<tr>
<td>Discos Duros</td><td>23000</td><td>27200</td><td>26000</td>
</tr>
Formulario <form>
Un formulario permite que el visitante al sitio cargue datos y sean enviados al servidor.Es el medio ideal para registrar comentarios del visitante sobre el sitio, solicitar productos, sacar turnos etc.
De todos modos veremos que el lenguaje HTML solo tiene el objetivo de crear el formulario. El HTML no tiene la responsabilidad de registrar los datos en el servidor, esta actividad está delegada a un lenguaje que se ejecute en el servidor (PHP, ASP, ASP.Net, JSP etc.)
Si recien comienza en el mundo del desarrollo de páginas web es recomendable primero aprender y conocer todos los elementos para la creación de formularios en HTML y en un paso posterior estudiar la registración en el servidor
Veamos la sintaxis básica para crear un formulario donde ingresemos nuestro nombre.
Para crear un formulario debemos utilizar el elemento form, que tiene marca de comienzo y fin. Dentro de la marca form veremos otros elementos para crear botones, editores de línea, cuadros de chequeo, radios de selección etc.
Confeccionaremos un formulario para el ingreso de nuestro nombre y un botón para el envío del dato ingresado al servidor:
<html> <head> <title>Prueba de formulario</title> </head> <body> <form action="/registrardatos.php" method="post"> Ingrese su nombre: <input type="text" name="nombre" size="20"> <br> <input type="submit" value="enviar"> </form> </body> </html>Veamos detenidamente la estructura de un formulario elemental, lo primero la apertura de la marca form donde debemos definir dos propiedades (action y method):
<form action="/registrardatos.php" method="post">
La propiedad action se inicializa con el nombre de la página que procesará los datos en el servidor. Como no conocemos la sintaxis de un lenguaje de servidor almacené en la raiz de este sitio una página codificada en PHP que recibe los datos del formulario y los imprime en una nueva página (recordar que en este curso no se ve como programar en el servidor)Todo los formularios que implemento y los que usted implementará como ejercicios deben llamar a esta página: "/registrardatos.php" más adelante cuando conozca un lenguaje de servidor podrá almacenarlos en una base de datos, consultar otros datos, modificar datos existentes etc.
La segunda propiedad que debemos inicializar es method. Esta propiedad puede almacenar únicamente dos valores (post o get)
Normalmente un formulario se envía mediante post (los datos se envían con el cuerpo del formulario) En caso de utilizar get los datos se envían en la cabecera de la petición de la página, utilizando el método get estamos limitados en la cantidad de datos a enviar, no asi con el método post.
Ahora veamos el cuadro de texto donde se ingresa el nombre:
Ingrese su nombre:
<input type="text" name="nombre" size="20">
<br>
El mensaje "Ingrese su nombre:" es un texto fijo.El elemento input permite definir un cuadro de texto (editor de línea) si asignamos a la propiedad type el valor "text".
Todo cuadro de texto debe inicializar la propiedad name con un nombre para el cuadro de texto. Este es un dato fundamental para poder recuperar el dato ingresado en el servidor (por ejemplo mediante PHP)
Por último inicializamos la propiedad size con el valor 20, esto significa que el cuadro de texto se dimensiona para permitir mostrar 20 caracteres (no se limita la cantidad de caracteres a ingresar por parte del visitante sino la cantidad de caracteres que se pueden visualizar)
Seguidamente:
<input type="submit" value="enviar">
También mediante el elemento input definimos un botón para el envío de datos al servidor. Debemos inicializar la propiedad type con el valor submit, con esto ya tenemos un botón para el envío de datos.La propiedad value almacena la etiqueta que debe mostrar el botón.
Finalmente cerramos el formulario:
</form>
Formulario - input type="text"/ input type="password"
En el concepto anterior vimos como implementar un formulario básico.Veamos ahora con más detenimiento el elemento input. Este elemento hemos visto que nos permite definir cuadros de texto y botón para subir los datos al servidor. Ahora veremos que también podemos definir cuadros para el ingreso de una clave y botones para borrar el contenido de todos los controles del formulario.
Confeccionaremos un formulario que solicite el ingreso del nombre de un usuario y su clave:
<html> <head> <title>Prueba de formulario</title> </head> <body> <form action="/registrardatos.php" method="post"> Ingrese su nombre: <input type="text" name="nombre" size="20"> <br> Ingrese su clave: <input type="password" name="clave" size="12"> <br> <input type="submit" value="enviar"> <input type="reset" value="borrar"> </form> </body> </html>Veamos la sintaxis nueva para definir un cuadro de texto para el ingreso de una clave:
<input type="password" name="clave" size="12">
Utilizamos el mismo elemento input pero inicializamos la propiedad type con el valor "password", con esto logramos que cuando el visitante ingrese la clave se visualicen asteriscos en lugar de los caracteres que tipeamos.Luego para definir un botón que permita borrar todos los datos ingresados hasta el momento lo hacemos mediante:
<input type="reset" value="borrar">
Es decir inicializamos la propiedad type con el valor "reset", con esto sabe el navegador que cuando dicho botón sea presionado debe borrar todos los controles de ingreso de datos de dicho formulario.Otra cosa que hay que tener en cuenta que la propiedad name de cada elemento input debe tener un nombre distinto (esto debido a que en el servidor se lo rescata a partir de este nombre)
Formulario textarea
El elemento de tipo textarea nos permite el ingreso de varias líneas a diferencia del cuadro de texto (input/text)Es muy utilizado cuando queremos ingresar un comentario de una longitud de caracteres grande.
Confeccionemos un formulario para que un visitante pueda ingresar su nombre, su mail y un comentario del sitio, empleando para este último dato a ingresar un elemento de tipo textarea:
<html> <head> <title>Prueba de formulario</title> </head> <body> <form action="/registrardatos.php" method="post"> Ingrese su nombre: <input type="text" name="nombre" size="30"><br> Ingrese su mail: <input type="text" name="mail" size="50"><br> Comentarios:<br> <textarea name="comentarios" rows="5" cols="60"></textarea> <br> <input type="submit" value="Enviar"> </form> </body> </html>La sintaxis para definir un área de texto para el ingreso de múltiples líneas es:
<textarea name="comentarios" rows="5" cols="60"></textarea>Es un elemento que requiere una marca de comienzo y una de finalización.
Además de tener la propiedad name similar a los otros elementos relacionados a formularios tiene dos propiedades llamadas rows y cols. Estas dos propiedades indican la cantidad de filas y columnas que visualiza el área de texto.
Formulario input type="checkbox"
El elemento checkbox es otro control que se puede insertar en un formulario. Un checkbox es una casilla de selección que puede tomar dos valores (seleccionado/no seleccionado)Para ver su funcionamiento implementaremos un formulario que solicite el ingreso del nombre de una persona y 4 elementos de tipo checkbox para que seleccione los lenguajes de programación que conoce:
<html> <head> <title>Prueba de formulario</title> </head> <body> <form action="/registrardatos.php" method="post"> Ingrese su nombre: <input type="text" name="nombre" size="30"><br> Seleccione los lenguajes que conoce: <br> <input type="checkbox" name="java">Java<br> <input type="checkbox" name="cmasmas">C++<br> <input type="checkbox" name="c">C<br> <input type="checkbox" name="csharp">C#<br> <input type="submit" value="Enviar"> </form> </body> </html>Veamos la sintaxis para definir controles de formulario de tipo checkbox:
<input type="checkbox" name="java">Java<br>Como vemos también utilizamos el elemento HTML input, donde inicializamos la propiedad type con el valor checkbox.
Un control checkbox no muestra texto, solo una casilla que el operador puede tildar o destildar.
Si queremos que aparezca un mensaje junto al checkbox solo lo agregamos seguido al elemento input.
Es importante hacer notar que los caracteres permitidos de la propiedad name son los caracteres alfabéticos y los números siempre y cuando no sea el primero.
Formulario input type="radio"
Cuando tenemos un conjunto de opciones pero solo una puede ser seleccionada debemos emplear controles visuales de tipo radio.Para definir controles de tipo radio también utilizamos el elemento input inicializando la propiedad type con el valor "radio"
Veamos un ejemplo del empleo de este control gráfico, supongamos que necesitamos indicar el tipo de estudios que tenemos utilizando controles de tipo radio:
<html> <head> <title>Prueba de formulario</title> </head> <body> <form action="/registrardatos.php" method="post"> Ingrese su nombre: <input type="text" name="nombre" size="30"><br> Seleccione el máximo nivel de estudios que tiene: <br> <input type="radio" name="estudios" value="1">Sin estudios<br> <input type="radio" name="estudios" value="2">Primario<br> <input type="radio" name="estudios" value="3">Secundario<br> <input type="radio" name="estudios" value="4">Universitario<br> <input type="submit" value="Enviar"> </form> </body> </html>Veamos como se definen los controles de tipo radio:
<input type="radio" name="estudios" value="1">Sin estudios<br> <input type="radio" name="estudios" value="2">Primario<br> <input type="radio" name="estudios" value="3">Secundario<br> <input type="radio" name="estudios" value="4">Universitario<br>Como podemos observar todos tienen el mismo valor en la propiedad name, con esto se logra que cuando seleccionamos uno se deseleccione el actual.
El valor que se rescata en el servidor es el dato almacenado en la propiedad value.
Si queremos disponer varios grupos de controles de tipo radio debemos definirles a cada grupo la propiedad name nombres distintos.
Formulario select (selección individual)
El elemento select es un cuadro de selección.Este elemento HTML nos permite seleccionar una opción entre un conjunto. Veremos en el concepto próximo que según como la configuramos podemos seleccionar varias opciones.
Veamos con un ejemplo como crear un control de tipo select. Confeccionemos un formulario que solicite cargar el nombre de una persona y el pais donde vive, este último elemento mediante un control de tipo select permitir seleccionar el pais.
El archivo pagina1.html es:
<html> <head> <title>Prueba de formulario</title> </head> <body> <form action="/registrardatos.php" method="post"> Ingrese su nombre: <input type="text" name="nombre" size="30"><br> Seleccione su pais: <select name="pais"> <option value="1">Argentina</option> <option value="2">España</option> <option value="3">México</option> <option value="4">Guatemala</option> <option value="5">Honduras</option> <option value="7">El Salvador</option> <option value="8">Venezuela</option> <option value="9">Colombia</option> <option value="10">Cuba</option> <option value="11">Bolivia</option> <option value="13">Perú</option> <option value="14">Ecuador</option> <option value="15">Paraguay</option> <option value="16">Uruguay</option> <option value="17">Chile</option> </select> <br> <input type="submit" value="Enviar"> </form> </body> </html>Veamos la sintaxis para crear un cuadro de selección, primero abrimos la marca select la cual tiene definido la propiedad name:
<select name="pais">Luego sin cerrar el select definimos tantos elementos de tipo option como opciones tendrá el cuadro de selección:
<option value="1">Argentina</option> <option value="2">España</option> <option value="3">México</option>El elemento option define el texto a mostrar y en la propiedad value indica el valor a enviar al servidor en caso de estar seleccionada dicha opción.
Luego de definir todas las opciones de nuestro cuadro de selección cerramos la marca select:
</select>Una variante gráfica de este control es inicializar la propiedad size del elemento select con un valor distinto a uno, con esto creamos un cuadro de selección que muestra simultáneamente varios elementos (de todos modos solo uno se puede elegir)
Es decir que con la propiedad size solo logramos un cambio estético del control.
Formulario button
El elemento button es un control visual que se puede utilizar para sustituir los controles:<input type="submit" value="Enviar"> <input type="reset" value="Borrar">Entre otras las ventanjas de este elemento es que podemos agregar imágenes dentro del botón.
La sintaxis de este elemento es la siguiente:
<button type="submit"> Texto a mostrar dentro del botón. </button>Todo lo que está contenido entre las marcas de comienzo y fin del elemento button aparece dentro del botón, como por ejemplo una imagen, un párrafo, enfatizado de una palabra etc.
La propiedad type se puede inicializar con alguno de estos tres valores: "submit", "reset" y "button". Los dos primeros cumplen las funciones que ya conocemos es decir envío de los datos al servidor y borrado del contenido de los controles. En cuanto al tercer valor posible de la propiedad type significará que deberemos codificar una función en javascript para procesar el evento.
Para ver el funcionamiento confeccionaremos un formulario que solicite el ingreso del nombre de una persona y dos elementos button para subir el dato al servidor o borrar el dato cargado:
<html> <head> <title>Prueba de formulario</title> </head> <body> <form action="/htmlya/registrardatos.php" method="post"> Ingrese su nombre: <input type="text" name="nombre" size="20"> <br> <button type="submit">Enviar<img src="/imagenes/enviar.gif" alt="envio"></button> <button type="reset">Borrar<img src="/imagenes/borrar.gif" alt="borrado"></button> </form> </body> </html>Perfectamente podemos definir un texto y cargar una imagen dentro del botón:
<button type="submit">Enviar<img src="/imagenes/enviar.gif" alt="envio"></button>



