ff-multiconverter, multimedia, audio, video, linux, ubuntu ubuntu kylin, china, releases, linux terminal, ubuntu, linux, comandos, shell conky, gadgets, ubuntu, linux SpeedTest-Cli, velocidad, red, consola, terminal tag foto 6 pinta, grafica, linux, ubuntu djl, juegos, yum, synaptic, paquetes ubuntu, releases, canonical psensor, ubuntu, linux, sistema, monitor
Mostrando las entradas con la etiqueta HTML. Mostrar todas las entradas

Guia HTML: validación de la página a través de un enlace, hojas de estilo y propiedades.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Validación de la página a través de un enlace.
La W3C nos permite disponer un ícono como enlace a su validador de páginas HTML:
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-html401"
alt="Valid HTML 4.01 Strict" height="31" width="88"></a>
</p>

Confeccionemos una página y probemos el enlace al validador:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mi primer pagina</title>
</head>
<body>
<p>PHP - Java - JavaScript - C - C++</p>
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-html401"
alt="Valid HTML 4.01 Strict" height="31" width="88"></a>
</p>
</body>
</html>

Solamente agregamos el párrafo que contiene el hipervínculo al sitio que realiza la validación. Gran cantidad de sitios tienen este ícono o alguno similar para indicar que sus páginas cumplen con el HTML Transitional o estrícto.

Conceptos básicos de hojas de estilo.

Creo que este curso de HTML debe finalizar con los conceptos básicos de CSS (Cascade Style Sheet) es decir Hojas de Estilo.

En las primeras versiones de HTML se comenzaron a introducir elementos con la finalidad de mejorar la "presentación" del "contenido" de la página. Así aparecieron elementos para definir las fuentes, tamaños, colores, alineamiento de textos y bloques etc.

Luego se creo otra tecnología que separa el "contenido" de la "presentación", esta es la de Hojas de Estilo. Con esto quedó perfectamente definido el objetivo de HTML (disponemos contenido) y CSS (definimos la presentación de ese contenido).

Durante todos los conceptos anteriores me contuve para emplear algún elemento HTML de presentación que mejorara la página por lo que ahora introduciré conceptos mínimos para aplicar CSS en forma básica.

Veamos la sintaxis para aplicar color de frente y fondo a un elemento HTML mediante CSS:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>título página</title>
</head>
<body>
<h1 style="color:#0000ff">Noticias del día.</h1>
<p style="color:#888888;background-color:#ffffdd">
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
</p>
</body>
</html>

La propiedad que debemos inicializar se llama style y la tienen todos los elementos HTML. En este primer ejemplo inicializamos las propiedades color (define el color del texto) y background-color (define el color de fondo del texto).

Cada vez que inicializamos una propiedad debemos separarla de la siguiente por punto y coma.

Para definir un color lo debemos hacer indicando la candidad de rojo,verde y azul (color:#0000ff). Los dos primeros números indican la cantidad de rojo (en este caso cero), luego la cantidad de verde (en este caso 0) y por último la cantidad de azul (en este caso ff). Como podemos observar el valor lo debemos indicar en formato hexadecimal.

Hasta ahora siempre que disponíamos un título aparecía de color negro. El negro es el estilo por defecto que tiene definido todos los elementos de títulos, si queremos variar dicho valor debemos hacerlo mediante CSS.

Las hojas de estilo si son sensibles a mayúsculas y minúsculas, por lo que color no es lo mismo que definir COLOR.

Las propiedades que definimos dentro de style deben ir separadas por punto y coma.

Propiedades relacionadas al texto en CSS.
 
Vimos en la introducción de CSS la propiedad color.

Tenemos otras propiedades relacionadas al texto que paso a enunciarlas:
  • text-align Esta propiedad define el alineamiento del texto y puede tomar alguno de estos cuatro valores: left, right, center,justify

    text-align:center;

    El texto aparecerá centrado. Si queremos justificar a derecha, emplearemos el valor right y si queremos a la izquierda, el valor será left.
  • text-decoration Esta propiedad nos permite entre otras cosas que aparezca subrayado el texto, tachado o una línea en la parte superior, los valores posibles de esta propiedad son: none, underline, overline, line-through
  • letter-spacing Esta propiedad permiten indicar el espacio que debe haber entre los caracteres.
  • word-spacing La propiedad word-spacing permiten indicar el espacio que debe haber entre las palabras.
  • text-indent La propiedad indenta la primera linea de un texto. A partir de la segunda línea, el texto aparece sin indentación. Podemos indicar un valor negativo con lo que la indentación es hacia la izquierda.
  • text-transform la propiedad puede inicializarse con alguno de los siguientes valores: none - capitalize - lowercase - uppercase.

    Cada uno de estos valores transforman el texto como sigue:

    capitalize: Dispone en mayúsculas el primer caracter de cada palabra.

    lowercase: Convierte a minúsculas todas las letras del texto.

    uppercase: Convierte a mayúsculas todas las letras del texto.

    none: No provoca cambios en el texto.
Confeccionaremos el siguiente problema:

Confeccionar una página que contenga un título de nivel 2 (h2) centrado y luego bloques donde muestre un nombre de una persona subrayado y un párrafo con un color de fondo y de las letras. Indentar la primer linea de cada párrafo.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>título página</title>
</head>
<body>
<h2 style="color:#0000ff;text-align:center">Comentarios</h1>
<h3 style="text-decoration:underline">Luis Barrionuevo</h3>
<p style="color:#888888;background-color:#ffffdd;text-indent:20px">
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
<h3 style="text-decoration:underline">Ana Rodriguez</h3>
<p style="color:#888888;background-color:#ffffdd;text-indent:20px">
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
</body>
</html>

El título general aparece centrado y de color azul:

<h2 style="color:#0000ff;text-align:center">Comentarios</h1>

El título donde se define el nombre:

<h3 style="text-decoration:underline">Luis Barrionuevo</h3>

aparece subrayado.

Por último los párrafos:

<p style="color:#888888;background-color:#ffffdd;text-indent:20px">

aparecen de color gris oscuro la letra sobre fondo amarillo claro y la primer línea tiene una indentación de 20 píxeles.
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: propiedades relacionadas al texto y a las fuentes en CSS.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Propiedades relacionadas al texto en CSS.
Vimos en la introducción de CSS la propiedad color.
Tenemos otras propiedades relacionadas al texto que paso a enunciarlas:
  • text-align Esta propiedad define el alineamiento del texto y puede tomar alguno de estos cuatro valores: left, right, center,justify
    text-align:center;

    El texto aparecerá centrado. Si queremos justificar a derecha, emplearemos el valor right y si queremos a la izquierda, el valor será left.
  • text-decoration Esta propiedad nos permite entre otras cosas que aparezca subrayado el texto, tachado o una línea en la parte superior, los valores posibles de esta propiedad son: none, underline, overline, line-through
  • letter-spacing Esta propiedad permiten indicar el espacio que debe haber entre los caracteres.
  • word-spacing La propiedad word-spacing permiten indicar el espacio que debe haber entre las palabras.
  • text-indent La propiedad indenta la primera linea de un texto. A partir de la segunda línea, el texto aparece sin indentación. Podemos indicar un valor negativo con lo que la indentación es hacia la izquierda.
  • text-transform la propiedad puede inicializarse con alguno de los siguientes valores: none - capitalize - lowercase - uppercase.

    Cada uno de estos valores transforman el texto como sigue:

    capitalize: Dispone en mayúsculas el primer caracter de cada palabra.

    lowercase: Convierte a minúsculas todas las letras del texto.

    uppercase: Convierte a mayúsculas todas las letras del texto.

    none: No provoca cambios en el texto.
Confeccionaremos el siguiente problema:

Confeccionar una página que contenga un título de nivel 2 (h2) centrado y luego bloques donde muestre un nombre de una persona subrayado y un párrafo con un color de fondo y de las letras. Indentar la primer linea de cada párrafo.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>título página</title>
</head>
<body>
<h2 style="color:#0000ff;text-align:center">Comentarios</h1>
<h3 style="text-decoration:underline">Luis Barrionuevo</h3>
<p style="color:#888888;background-color:#ffffdd;text-indent:20px">
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
<h3 style="text-decoration:underline">Ana Rodriguez</h3>
<p style="color:#888888;background-color:#ffffdd;text-indent:20px">
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
</body>
</html>

El título general aparece centrado y de color azul:

<h2 style="color:#0000ff;text-align:center">Comentarios</h1>

El título donde se define el nombre:

<h3 style="text-decoration:underline">Luis Barrionuevo</h3>

aparece subrayado.

Por último los párrafos:

<p style="color:#888888;background-color:#ffffdd;text-indent:20px">

aparecen de color gris oscuro la letra sobre fondo amarillo claro y la primer línea tiene una indentación de 20 píxeles.

Elementos HTML <div> y <span>

ejé estos dos elementos HTML para luego de haber presentado los conceptos de CSS. Estas marcas se utilizan en conjunción con las hojas de estilo. Sin estas tiene poco sentido el empleo de estos elementos HTML.

Estos elementos "div" y "span" nos permiten agrupar un conjunto de elementos y aplicar reglas de estilo.

La diferencia entre estos dos elementos es que cuando utilizamos el elemento div produce un salto de línea previo y uno al final, es decir es una marca de bloque como lo son h1,h2,p etc. En cambio el elemento span no produce un salto de línea porque se trata de un elemento en línea como lo son a,em,strong,input etc.

Veamos un ejemplo creando una división (div) y la aplicación de algunas reglas de estilo, como así un elemento span.

Listar una serie de nombres y un bloque de comentarios para cada nombre. Indentar la primer linea de cada párrafo. Hacer que algunas palabras del párrafo aparezcan resaltadas en otro color. Disponer todos los comentarios con un color gris de fondo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>título página</title>
</head>
<body>
<div style="background-color:#eeeeee">
<h3>Luis Barrionuevo</h3>
<p style="color:#888888;text-indent:20px">
Aquí <span style="background-color:#eeee00">comentarios.</span> 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
<h3>Ana Rodriguez</h3>
<p style="color:#888888;text-indent:20px">
<span style="background-color:#eeee00">Aquí comentarios.</span> 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
</div>
</body>
</html>

Veamos como definimos los elementos span:

<span style="background-color:#eeee00">comentarios.</span>

Como podemos ver luego en el resultado de la página el texto "comentarios" aparece con un color amarillo de fondo. El resto del párrafo continúa inmediatamente a la derecha, es decir el elemento span no produce salto de línea. Para ver la diferencia con el elemento div pruebe de remplazar la palabra span por div y vea los resultados (recuerde cambiar tanto la marca de apertura como la de cerrado del span) Como verá el texto aparece en un bloque independiente.

El div agrupa todos los títulos y párrafos y define la propiedad background-color que es heredado por todos los elementos contendidos por el div:

<div style="background-color:#eeeeee">
<h3>Luis Barrionuevo</h3>
<p style="color:#888888;text-indent:20px">
Aquí <span style="background-color:#eeee00">comentarios.</span> 
Aquí comentarios. 
.
.
.
.
Aquí comentarios. 
Aquí comentarios. 
</p>
</div>

Propiedades relacionadas a las fuentes en CSS.

Las propiedades relacionadas a las fuentes más importantes en CSS son:

  • font-family Define la fuente que se aplicará al elemento HTML. La fuentes más comunes presentes en los navegadores son: Arial, Arial Black, Courier New, Georgia, Impact, Tahoma, Times New Roman, Verdana
  • font-size Define el tamaño de la fuente. Entre otras medias podemos indicarla en píxeles.
  • font-style Podemos indicar alguno de los siguientes valores: normal, italic, oblique
  • font-weight Entre otros podemos indicar los siguientes valores: normal, bold, bolder,lighter
Para probar algunas de estas propiedades confeccionaremos una página que contenga un título de nivel 2 con fuente Arial, un párrafo con fuente de tipo Times New Roman de 14 píxeles en negrita y una serie de párrafos agrupados en un div con tamaño de fuente de 12 píxeles de tipo Verdana:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>título página</title>
</head>
<body>
<h2 style="font-family:Arial">Título principal</h2>
<p style="font-family:Times New Roman;font-size:14px;font-weight:bolder">
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
</p>
<div style="font-family:Verdana;font-size:12px">
<p>
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
</p>
<p>
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
</p>
</div>
</body>
</html> 

Para el título se debe definer una fuente Arial

<h2 style="font-family:Arial">Título principal</h2>

Para el primer párrofo seguido al título se debe definir una fuente de tipo Times New Roman de 14 píxeles en negrita

<p style="font-family:Times New Roman;font-size:14px;font-weight:bolder">

Para el resto de los párrafos agruparlos en un div con tamaño de fuente de 12 píxeles de tipo Verdana

<div style="font-family:Verdana;font-size:12px">

Solo se a visto los conceptos iniciales de CSS con el objetivo de no tentarse a utilizar los elementos HTML antiguos para asignación de fuentes y colores. Para un estudio ordenado y sitemático puede desarrollar el curso CSS Ya y ver por si mismo las ventajas enormes que presentan las hojas de estilo.

Elementos y propiedades de HTML que no se deben usar.
 
Nombraremos los elementos y propiedades de HTML que no se deben usar, ya que sus objetivos actualmente se resuelven utilizando CSS (Hojas de estilo), de todos modos se las encontrará en muchas páginas antiguas y otras no tanto:
Elementos
  • u Muestra un texto subrayado.
  • s Muestra un texto tachado.
  • strike Muestra un texto tachado.
  • center Muestra un texto centrado.
  • menu Crea una lista
  • dir Define una lista multicolumna
  • layer (solo Netscape) Agrupa un bloque de elementos HTML (utilizar div)
  • blink Resalta un texto
  • marquee Muestra un texto desplazandose de izquierda a derecha o viceversa. Tiene muchas propiedades para definir fuente, color, velocidad de avance etc.
  • font Permite definir mediante una serie de propiedades el tipo de fuente, tamaño y color
  • b Muestra el texto en negrita.
  • i Muestra el texto en itálica.
  • big Muestra el texto con fuente grande.
  • small Muestra el texto con fuente pequeña.
  • hr Muestra una línea horizontal.
  • basefont Establece el tamaño base de fuente.
  • isindex Crea un control de entrada de una línea.
Propiedades.
  • text Fija el color de texto para la página si se aplica al elemento body.
  • bgcolor Fija el color del fondo de texto si se aplica al elemento body.
  • background Fija una imagen de fondo a la página. Propiedad del elemento body.
  • link Fija el color de los enlaces no visitados. Se aplica al body.
  • alink Fija el color del enlace activo. Se aplica al body.
  • vlink Fija el color de los enlaces ya visitados. Se aplica al body.
  • align Se lo utiliza para alinear texto a izquierda, derecha, centro etc.
No daremos ejemplo del empleo de estos elementos y propiedades para evitar cualquier posibilidad de internalizar su funcionamiento y empleo.
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: declaración DOCTYPE, HTML transitional y estricto.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Declaración DOCTYPE.
Hasta ahora no hemos hablado de un concepto de vital importancia que es la utilización de elementos HTML estándares. De todos modos no hemos introducido elementos HTML propietarios o desaprobados (ej. font, center etc.)

La organización que define los estándares para la web es W3C.
Utilizar en lo posible las directivas de este comite de estándares nos traerá como ventanja que nuestras páginas en un futuro sigan viendose correctamente en las nuevas versiones de navegadores.

Ahora introduciremos una nueva sección de nuestra página que es la declaración del tipo de documento (DTD Document Type Declaration), esta sección se ubica en la primera línea del archivo HTML, es decir antes de la marca html.

Declaración transitoria:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

Declaración estrícta:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

Veamos la sintaxis para definir la sección del DOCTYPE, la primera diferencia con cualquier otro elemento HTML es que el caracter siguiente del < es el signo de admiración (!), luego debe ir la palabra DOCTYPE indicando que se trata de un archivo HTML. Más adelante debemos indicar la versión de HTML y si se trata de HTML transitorio o estricto:

Si es HTML transitorio disponemos:

"-//W3C//DTD HTML 4.01 Transitional//EN"

Si es HTML estrícto

"-//W3C//DTD HTML 4.01//EN"

Es decir que cuando es HTML estricto no disponemos la palabra Transitional

Por último se define la dirección de internet donde se encuentra un archivo que enuncia los elemento y propiedades permitidos en el HTML 4.01, discriminando entre HTML estricto y transitorio.

Porqué utilizar HTML transitional, si lo más correcto sería utilizar HTML estricto?

Puede ser que tengamos muchas páginas desarrolladas en el pasado y nos lleve un tiempo hacerlas compatible con el HTML estricto.

Para ver si una página cumple el estandar específico podemos acceder a un programa validador que se encuentra en validator.w3.org

Pruebe de copiar la siguiente página y verifique si se valida correctamente en la dirección indicada en la línea anterior (copie al textarea de esta página este documento HTML y presione el botón check):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Enlaces a periódicos</title>
</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>

Pruebe de borrar el elemento title, tanto su contenido como las marcas de comienzo y final. Valide nuevamente.

Pruebe de borrar la marca <ol> y valide.

Declaración DOCTYPE. HTML Transitional.

Cuando indicamos que una página utiliza HTML Transitional podemos hacer uso de algunos elementos HTML de presentacion (fuentes, alineamiento, colores), además la ubicación y anidamiento de elementos es más elástico.

Veamos si nuestra primer página que desarrollamos pasa la validación HTML Transitional (Agregandole la sección del DOCTYPE):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Como veras después que lo valides dará un error indicando que faltan datos en la marca head. Como mínimo deberemos agregar el elemento title.

Luego la página queda:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>Mi primer pagina</title>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Ahora prácticamente valida correctamente, solo le falta un meta con la descripción de codificación:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mi primer pagina</title>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Ahora si está totalmente correcta.

Declaración DOCTYPE. HTML Estricto.
 
En el DTD Estricto de HTML 4.01 se excluye los elementos y atributos de presentación que el W3C espera que dejen de utilizarse a medida que se extienda por parte de todos los navegadores el soporte de las hojas de estilo.

Los webmaster deben usar el DTD Estricto siempre que sea posible, pero pueden usar el DTD Transicional si es necesario el soporte de elementos y atributos de presentación.

Prácticamente todas las páginas que hemos desarrollado debemos hacerle algunos retoques para que cumplan con la validación de HTML estrícta.

Veremos varias de las páginas desarrolladas y los cambios que debemos hacer para que pasen la validación:

Problema 1:Confeccionar una página que muestre los nombres de 5 lenguajes de programación separados por un guión:

<html>
<head>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Página de prueba del DTD</title>
</head>
<body>
<p>PHP - Java - JavaScript - C - C++</p>
</body>
</html>

Que modificaciones hemos hecho?
  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos el texto de la página dentro de un párrafo (no puede un texto depender directamente del body):

    <p>PHP - Java - JavaScript - C - C++</p>

Todos estos cambios son obligatorios para que valide como HTML 4.01 estricto.

Problema 2:Confeccionar una página principal que tenga un hipervínculo a otra página secundaria.

<html>
<head>
</head>
<body>
<h1>Página principal.</h1>
<a href="pagina2.html">Noticias</a>
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de prueba del DTD</title>
</head>
<body>
<h1>Página principal.</h1>
<p><a href="pagina2.html">Noticias</a></p>
</body>
</html>

Que modificaciones hemos hecho?
  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos el hipervínculo de la página dentro de un párrafo (no puede un hipervínculo depender directamente del body):

    <p><a href="pagina2.html">Noticias</a></p>
Problema 3:Confeccionar un formulario que solicite el ingreso del nombre de un usuario y su clave. Mostrar asteriscos donde se ingresa la clave. Disponer dos botones, uno para el envío de datos al servidor y otro para borrar el contenido de todos los controles (editores de texto) que contiene el formulario.

<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>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de prueba del DTD</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
<p>
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">
</p>
</form>
</body>
</html>

  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos todos el contenido del form dentro de un párrafo. No se puede disponer texto o controles de formulario que dependan directamente del elemento form.:

    <p> Ingrese su nombre: <input type="text" name="nombre" size="20"
Declaración DOCTYPE. para Frames.

Cuando empleamos frames debemos utilizar una declaración distinta para el elemento DOCTYPE.

Luego la sección del DOCTYPE para una página que implementa frames debe ser:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

Es decir se incorpora la palabra Frameset donde disponíamos la palabra Transitional o estaba vacía si validamos HTML estrícto.

Confeccionar una ventana que contenga dos frames verticales. Dispondremos dos hipervínculos en el frame de la izquierda que al ser presionados actualicen el archivo a mostrar por el frame de la derecha.

pagina1.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<frameset cols="20%,80%">
<frame src="pagina2.html">
<frame src="pagina3.html" name="ventanadinamica">
<noframes>
<p>El navegador no soporta frames</p>
</noframes>
</frameset>
</html>

pagina2.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h2>Enlaces.</h2>
<ul>
<li><a href="pagina3.html" target="ventanadinamica">Enlace 
1</a></li>
<li><a href="pagina4.html" target="ventanadinamica">Enlace 
2</a></li>
</ul>
</body>
</html>

Es importante notar que hemos definido la página HTML Transitional, esto se debe a que la propiedad target del elemento "a" no está permitida. Es decir si utilizamos frames deberemos trabajar con HTML Transitional.

pagina3.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1>
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>

pagina4.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1>
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: declaración DOCTYPE.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Declaración DOCTYPE.

Hasta ahora no hemos hablado de un concepto de vital importancia que es la utilización de elementos HTML estándares. De todos modos no hemos introducido elementos HTML propietarios o desaprobados (ej. font, center etc.)

La organización que define los estándares para la web es W3C.
Utilizar en lo posible las directivas de este comite de estándares nos traerá como ventanja que nuestras páginas en un futuro sigan viendose correctamente en las nuevas versiones de navegadores.

Ahora introduciremos una nueva sección de nuestra página que es la declaración del tipo de documento (DTD Document Type Declaration), esta sección se ubica en la primera línea del archivo HTML, es decir antes de la marca html.
Según el rigor de HTML  utilizado podemos declararla como:
Declaración transitoria:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

Declaración estrícta:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

Veamos la sintaxis para definir la sección del DOCTYPE, la primera diferencia con cualquier otro elemento HTML es que el caracter siguiente del < es el signo de admiración (!), luego debe ir la palabra DOCTYPE indicando que se trata de un archivo HTML. Más adelante debemos indicar la versión de HTML y si se trata de HTML transitorio o estricto:

Si es HTML transitorio disponemos:

"-//W3C//DTD HTML 4.01 Transitional//EN"

Si es HTML estrícto

"-//W3C//DTD HTML 4.01//EN"

Es decir que cuando es HTML estricto no disponemos la palabra Transitional

Por último se define la dirección de internet donde se encuentra un archivo que enuncia los elemento y propiedades permitidos en el HTML 4.01, discriminando entre HTML estricto y transitorio.

Porqué utilizar HTML transitional, si lo más correcto sería utilizar HTML estricto?

Puede ser que tengamos muchas páginas desarrolladas en el pasado y nos lleve un tiempo hacerlas compatible con el HTML estricto.

Para ver si una página cumple el estandar específico podemos acceder a un programa validador que se encuentra en validator.w3.org

Pruebe de copiar la siguiente página y verifique si se valida correctamente en la dirección indicada en la línea anterior (copie al textarea de esta página este documento HTML y presione el botón check):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Enlaces a periódicos</title>
</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>

Pruebe de borrar el elemento title, tanto su contenido como las marcas de comienzo y final. Valide nuevamente.

Pruebe de borrar la marca <ol> y valide.

Declaración DOCTYPE. HTML Transitional.

Cuando indicamos que una página utiliza HTML Transitional podemos hacer uso de algunos elementos HTML de presentacion (fuentes, alineamiento, colores), además la ubicación y anidamiento de elementos es más elástico.

Veamos si nuestra primer página que desarrollamos pasa la validación HTML Transitional (Agregandole la sección del DOCTYPE):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Como veras después que lo valides dará un error indicando que faltan datos en la marca head. Como mínimo deberemos agregar el elemento title.

Luego la página queda:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>Mi primer pagina</title>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Ahora prácticamente valida correctamente, solo le falta un meta con la descripción de codificación:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mi primer pagina</title>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Ahora si está totalmente correcta.

Declaración DOCTYPE. HTML Estricto.

En el DTD Estricto de HTML 4.01 se excluye los elementos y atributos de presentación que el W3C espera que dejen de utilizarse a medida que se extienda por parte de todos los navegadores el soporte de las hojas de estilo.

Los webmaster deben usar el DTD Estricto siempre que sea posible, pero pueden usar el DTD Transicional si es necesario el soporte de elementos y atributos de presentación.

Prácticamente todas las páginas que hemos desarrollado debemos hacerle algunos retoques para que cumplan con la validación de HTML estrícta.

Veremos varias de las páginas desarrolladas y los cambios que debemos hacer para que pasen la validación:

Problema 1:Confeccionar una página que muestre los nombres de 5 lenguajes de programación separados por un guión:

<html>
<head>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Página de prueba del DTD</title>
</head>
<body>
<p>PHP - Java - JavaScript - C - C++</p>
</body>
</html>

Que modificaciones hemos hecho?
  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos el texto de la página dentro de un párrafo (no puede un texto depender directamente del body):

    <p>PHP - Java - JavaScript - C - C++</p>

Todos estos cambios son obligatorios para que valide como HTML 4.01 estricto.

Problema 2:Confeccionar una página principal que tenga un hipervínculo a otra página secundaria.

<html>
<head>
</head>
<body>
<h1>Página principal.</h1>
<a href="pagina2.html">Noticias</a>
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de prueba del DTD</title>
</head>
<body>
<h1>Página principal.</h1>
<p><a href="pagina2.html">Noticias</a></p>
</body>
</html>

Que modificaciones hemos hecho?
  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos el hipervínculo de la página dentro de un párrafo (no puede un hipervínculo depender directamente del body):

    <p><a href="pagina2.html">Noticias</a></p>

Problema 3:Confeccionar un formulario que solicite el ingreso del nombre de un usuario y su clave. Mostrar asteriscos donde se ingresa la clave. Disponer dos botones, uno para el envío de datos al servidor y otro para borrar el contenido de todos los controles (editores de texto) que contiene el formulario.

<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>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de prueba del DTD</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
<p>
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">
</p>
</form>
</body>
</html>


  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos todos el contenido del form dentro de un párrafo. No se puede disponer texto o controles de formulario que dependan directamente del elemento form.:

    <p> 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"> </p>

Todos estos cambios son obligatorios para que valide como HTML 4.01 estricto.

Declaración DOCTYPE. para Frames.
 
Cuando empleamos frames debemos utilizar una declaración distinta para el elemento DOCTYPE.

Luego la sección del DOCTYPE para una página que implementa frames debe ser:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

Es decir se incorpora la palabra Frameset donde disponíamos la palabra Transitional o estaba vacía si validamos HTML estrícto.

Confeccionar una ventana que contenga dos frames verticales. Dispondremos dos hipervínculos en el frame de la izquierda que al ser presionados actualicen el archivo a mostrar por el frame de la derecha.

pagina1.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<frameset cols="20%,80%">
<frame src="pagina2.html">
<frame src="pagina3.html" name="ventanadinamica">
<noframes>
<p>El navegador no soporta frames</p>
</noframes>
</frameset>
</html>

pagina2.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h2>Enlaces.</h2>
<ul>
<li><a href="pagina3.html" target="ventanadinamica">Enlace 
1</a></li>
<li><a href="pagina4.html" target="ventanadinamica">Enlace 
2</a></li>
</ul>
</body>
</html>

Es importante notar que hemos definido la página HTML Transitional, esto se debe a que la propiedad target del elemento "a" no está permitida. Es decir si utilizamos frames deberemos trabajar con HTML Transitional.

pagina3.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1>
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>

pagina4.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1>
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: formularios de etiquetas y frames.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Formulario - label
Una última etiqueta relacionada con los formularios es la label.
Hasta este momento siempre que queríamos disponer un mensaje antes o después de un control de formulario lo escribiamos sin más.
Existe en HTML un elemento que permite asociar un texto con un control de formulario. Esto será muy útil si se accede desde un navegador no gráfico o una persona ciega que utiliza un programa que lee en voz alta el contenido de la página.
Veamos como lo hacíamos hasta ahora:
Ingrese su nombre:
<input type="text" name="nombre" size="20">

Utilizando el elemento label podemos hacer una referencia entre el texto y el control de entrada de datos:

<label for="nombre">Ingrese su nombre:</label>
<input type="text" name="nombre" size="20" id="nombre">

Veamos que hemos agregado:

  • Hemos definido la propiedad id a la marca input.
  • El elemento label tiene su marca de comienzo y fin, entre medio se dispone el texto a mostrar.
  • Para vincular esta label con el elemento input debemos inicializar la propiedad for con el nombre asignado a la propiedad id del elemento input. Más adelante veremos que la propiedad id la pueden tener todos los elementos HTML y es de vital importancia para CSS (Hojas de Estilo) y JavaScript
Confeccionemos un ejemplo completo:

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
<fieldset>
<legend>Formulario de comentarios.</legend>
<label for="nombre">Ingrese su nombre:</label>
<input type="text" name="nombre" size="30" id="nombre"><br>
<label for="mail">Ingrese su mail:</label>
<input type="text" name="mail" size="50" id="mail"><br>
<label for="comentarios">Comentarios:</label><br>
<textarea name="comentarios" rows="5" cols="60" 
id="comentarios"></textarea> 
<br>
<input type="submit" value="Enviar">
</fieldset>
</form>
</body>
</html>

Como podemos ver asociamos cada etiqueta con el correspondiente control de entrada de datos:
  • <label for="nombre">Ingrese su nombre:</label>
    <input type="text" name="nombre" size="30" id="nombre"><br>

  • <label for="mail">Ingrese su mail:</label>
    <input type="text" name="mail" size="50" id="mail"><br>

  • <label for="comentarios">Comentarios:</label><br>
    <textarea name="comentarios" rows="5" cols="60" 
    id="comentarios"></textarea> 
Normalmente las propiedades id y name de los controles de entrada de datos (input, textarea etc.) se les asigna el mismo nombre, de todos modos no es obligatorio.

La propiedad for de la label hace referencia al id del control y no al name, esto es importante si inicializamos con valores distintos el id y name de los controles.

Frames.
 
Con los frames se pueden mostrar más de un archivo HTML en la misma ventana del navegador.

Podemos hacer que los frames interactuen, por ejemplo al presionar un enlace en un frame podemos cargar una página en otro frame.

Solo se aconseja emplear frames cuando la situación lo amerita, hay que tener en cuenta que el uso de frame hace menos accesible el sitio y es mucho más dificil imprimir su contenido.

Veamos un ejemplo de implementar dos frames:

<html>
<head>
<title>prueba de frames</title>
</head>
<frameset cols="20%,80%">
<frame src="pagina2.html">
<frame src="pagina3.html">
<noframes>
<p>El navegador no soporta frames</p>
</noframes>
</frameset>
</html>

Esta página es la que define la ubicación de los frames dentro del navegador.

La cabecera tiene una sintaxis similar a todas las páginas que hemos visto, pero no existe el body, en su lugar encontramos el elemento frameset.

En este ejemplo dividimos la ventana del navegador en dos secciones que mostrarán una página HTML cada una, mediante la propiedad cols indicamos cuanto ocupará cada ventana en porcentaje:

<frameset cols="20%,80%">

En el interior del elemento frameset definimos las dos páginas HTML que deben mostrarse mediante el elemento frame.

El elemento frame tiene una propiedad llamada src (source que significa fuente) que la inicializamos con el nombre de la página a mostrar. Así definimos las dos páginas:

<frame src="pagina2.html">
<frame src="pagina3.html">

Otra elemento importante es el noframes donde indicamos un mensaje en el caso que el navegador no cuente con la capacidad de mostrar frames (podemos disponer enlaces a las páginas en forma individual)

<noframes>
<p>El navegador no soporta frames</p>
</noframes>

Finalmente cerramos el elemento frame y la página:

</frameset>
</html>

Las otras dos páginas son iguales a las que hemos venido haciendo:

<html>
<head>
<title>prueba de frames</title>
</head>
<body>
<h2>Frame 1</h2>
</body>
</html>

<html>
<head>
<title>prueba de frames</title>
</head>
<body>
<h2>Frame 2</h2>
</body>
</html>

Frames - Actualización de un frame a partir del enlace de otro frame.

Una actividad habitual con frames es disponer hipervínculos en uno de los frame y actualizar el contenido de otro frame.

Veamos con un ejemplo la sintaxis para actualizar un frame a partir del enlace de otro:

pagina1.html

<html>
<head>
<title>prueba de frames</title>
</head>
<frameset cols="20%,80%">
<frame src="pagina2.html">
<frame src="pagina3.html" name="ventanadinamica">
<noframes>
<p>El navegador no soporta frames</p>
</noframes>
</frameset>
</html>

Podemos observar que para el frame que queremos acceder posteriormente para modificar su contenido debemos inicializar la propiedad name:

<frame src="pagina3.html" name="ventanadinamica">

pagina2.html

<html>
<head>
<title>prueba de frames</title>
</head>
<body>
<h2>Enlaces.</h2>
<ul>
<li><a href="pagina3.html" target="ventanadinamica">Enlace 
1</a></li>
<li><a href="pagina4.html" target="ventanadinamica">Enlace 
2</a></li>
</ul>
</body>
</html>

Este archivo es el frame de la izquierda, que contiene los hipervínculos a dos páginas. Para indicar que frame debe mostrar las páginas de estos hipervínculos agregamos la propiedad target inicializándola con el valor del name definido para el frame (en nuestro caso es "ventanadinamica")

Tengamos en cuenta que el frame de la derecha comienza mostrando el archivo pagina3.html y luego según que hipervínculo se seleccione mostrará el archivo: pagina3.html o pagina4.html

Los contenidos de los dos archivos pagina3.html y pagina4.html no tienen nada nuevo:

pagina3.html

<html>
<head>
<title>prueba de frames</title>
</head>
<body>
<h1>Página A</h1> 
<h2>Este es el contenido de página del archivo:pagina3.html</h2>
</body>
</html> 

pagina4.html

<html>
<head>
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1> 
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: formularios de texto y password.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Formulario - text/password y maxlength
Los controles de tipo text y password pueden limitar la cantidad de caracteres que puede ingresar el usuario a partir de la propiedad maxlength.

Debemos asignarle un valor entero que indica hasta cuantos caracteres está permitido ingresar.

No hay que confundir el objetivo de la propiedad size con maxlength. Con la propiedad size solo indicamos la cantidad máxima de caracteres a mostrar dentro del control antes de hacer scroll de los datos.

Confeccionaremos un formulario que solicite el nombre de usuario y su clave y solo permitiremos ingresar nombres de usuarios de hasta 20 caracteres y claves de hasta 12.
<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
Ingrese su nombre: 
<input type="text" name="nombre" maxlength="20" 
size="20">
<br>
Ingrese su clave: 
<input type="password" name="clave" maxlength="12" 
size="12">
<br>
<input type="submit" value="enviar">
</form>
</body>
</html>

Cuando ejecute esta página no podremos cargar un nombre de usuario de más de 20 caracteres, el teclado se inhabilita cuando se han ingresado 20 caracteres en el primer control.

Formulario - text/password/textarea y readonly.

Otra propiedad que podemos asignarle a los controles que creamos con el elemento input y también el elemento textarea es readonly.

Si definimos la propiedad readonly a un control el mismo es de solo lectura y no podemos modificar su contenido. Esta propiedad tiene uso cuando mediante un lenguaje de script (generalmente javascript) modificamos el control cambiandolo de estado ante ciertos eventos.

Cuando un control tiene la propiedad readonly el control toma foco pero no se puede cambiar su contenido. La diferencia con la propiedad disabled es que con esta no toma foco el control y generalmente aparece con un color que indica que el control está deshabilitado.

Confeccionemos un formulario que aparezca el nombre de una empresa en un text y el texto de un contrato en un textarea, ambos de solo lectura.

<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="30" value="Interpolacion" 
readonly><br>
Contrato:<br>
<textarea name="comentarios" rows="5" cols="60" readonly>
Por la presente ..............................
</textarea> 
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Formulario - Envío de datos mediante mail.
 
Hasta ahora siempre configuramos la propiedad action de la marca <form> con el nombre de un archivo que procesa los datos en el servidor:

<form action="/registrardatos.php" method="post"> 

Para poder resolver esto debemos conocer el lenguaje PHP o algún otro lenguaje de servidor.

Conociendo solo HTML la solución es enviar los datos mediante el programa cliente de mail que esté configurado en la computadora. Para esto inicializamos la propiedad action de la siguiente forma:

<form action="mailto:pizzasya@htmlya.com" method="post" 
enctype="text/plain"> 

Es decir inicializamos la propiedad action con el texto mailto seguido de dos puntos y la dirección de mail a la que queremos enviar los datos del formulario, recordemos siempre que utilizamos mailto el emisor del mail depende como esté configurado nuestro software de mail en nuestra computadora.

Además inicializamos la propiedad enctype con el valor "text/plain" con lo que le indicamos que se trata de un archivo de texto plano. Tengamos en cuenta que no podemos enviar archivos adjuntos.

Para probar esta funcionalidad confeccionaremos una página que permita hacer un reclamo de reparaciones y se envíen los datos a una dirección de correo.

Se debe poder ingresar el nombre, dirección y un comentario del problema.

La página HTML es:

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<h2>Reclamos</h2>
<form action="mailto:reclamos@gmail.com" method="post" 
enctype="text/plain">
Ingrese su nombre: 
<input type="text" name="nombre" size="20">
<br>
Ingrese su dirección: 
<input type="text" name="dirección" size="30">
<br>
Informe del problema:
<br>
<textarea rows="5" cols="40" name="problema"></textarea>
<br>
<input type="submit" value="enviar">
</form>
</body>
</html>

Debe llegar a la casilla de correos reclamos@gmail.com un mail con el contenido de los datos cargados en el formulario. El mail contiene el nombre del control y el contenido ingresado por el operador.

Si queremos que el correo llegue con un título debemos inicializar subject:

<form action="mailto:reclamos@gmail.com?subject=pedido de reparación" 
method="post" enctype="text/plain">

Con esto logramos ubicar perfectamente todos los mail que llegan a nuestra casilla de correos reclamos@gmail.com

La desventaja del envío de datos mediante mail es que la persona no puede hacer el envío del formulario desde una máquina ubicada en un ciberbar donde muy posiblemente no nos dejen configurar un cliente de mail.
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: formularios de controles con valores iniciales, focos de controles e inhabilitaciòn.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Formulario - controles con valores iniciales.
Un control puede aparecer cargado con un valor por defecto. Veamos como inicializar con valores por defecto para cada uno de los controles que hemos visto.

Para inicializar un control de tipo text debemos dar un valor a la propiedad value:

<input type="text" value="aqui su nombre" name="nombre" 
size="20"> 

El control aparece cargado con la cadena "aqui su nombre".

Para inicializar un control de tipo textarea debemos indicar el dato entre el comienzo y el fin de la marca:

<textarea rows="10" cols="40" name="curriculum">Ingrese 
aqui su curriculum</textarea>

El control textarea se inicializa con la cadena "Ingrese aqui su curriculum"

Para inicializar un control de tipo checkbox debemos disponer la propiedad checked sin asignar valor:

<input type="checkbox" name="java" checked>Opcion 1<br>

Con esto logramos que el checkbox aparezca tildado apenas aparece el formulario.

Para inicializar un control de tipo radio debemos definir la propiedad checked sin valor, igual que un checkbox, con la salvedad que solo un un control de tipo radio puede tener definida esta propiedad:

<input type="radio" name="estudios" value="1" 
checked>Opción 1<br>

Para inicializar un control de tipo select con selección individual debemos definir la propiedad selected de los elementos option:

<select name="pais">
<option value="1">Argentina</option>
<option value="2" selected>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>

En este caso aparece seleccionado España, más alla que sea el segundo option en la lista.

Para inicializar un control de tipo select con selección múltiple debemos definir la propiedad selected de varios elementos option:

<select name="colores[]" size="4" multiple="multiple">
<option value="1" selected>Rojo</option>
<option value="2">Verde</option>
<option value="3" selected>Azul</option>
<option value="4">Amarillo</option>
<option value="5" selected>Blanco</option>
<option value="6">Negro</option>
<option value="7">Naranja</option>
<option value="8">Violeta</option>
</select>

En este ejemplo los items Rojo,Azul y Blanco aparecen seleccionados desde un comienzo.

Confeccionaremos como ejemplo un formulario que solicite el ingreso del nombre de una persona. Luego que seleccione si es mayor de edad o no (por defecto inicializar en si),seguidamente el teléfono (cargar por defecto 453-) y por último en un textarea solicitar que ingrese comentarios.

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
Apellido y nombre:
<input type="text" name="nombre" size="30"><br>
Es mayor de edad?:<br>
<input type="radio" name="radio1" checked 
value="si">Si<br>
<input type="radio" name="radio1" value="no">No<br>
Telefono:
<input type="text" value="453-" name="telefono" 
size="15"><br>
<textarea name="comentarios" rows="5" cols="40">Ingrese 
aqui sus comentarios</textarea><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Formulario - orden de foco de controles.
 
Todos los controles de formulario pueden definir una propiedad llamada tabindex que es un valor entero entre 0 y 32767. Este número indica el orden en que los controles toman foco. Cuando se presiona la tecla tab el navegador pasa el foco al siguiente control.

Para probar el funcionamiento implementaremos un formulario que contenga una matriz de tres filas y tres columnas de elementos de tipo text. Haremos que el foco sea por columna, es decir primero tomará foco el text de la primer fila y primer columna, luego del text de la segunda fila y primer columna etc (si no definimos la propiedad tabindex la carga de datos se efectua por fila):

<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
<input type="text" name="text1" size="5" tabindex="1">
<input type="text" name="text2" size="5" tabindex="4">
<input type="text" name="text3" size="5" tabindex="7">
<br>
<input type="text" name="text4" size="5" tabindex="2">
<input type="text" name="text5" size="5" tabindex="5">
<input type="text" name="text6" size="5" tabindex="8">
<br>
<input type="text" name="text7" size="5" tabindex="3">
<input type="text" name="text8" size="5" tabindex="6">
<input type="text" name="text9" size="5" tabindex="9">
<br>
<input type="submit" value="enviar" tabindex="10">
</form>
</body>
</html>

Como podemos observar los valores definidos para la propiedad tabindex para la primer fila de controles text es:

<input type="text" name="text1" size="5" tabindex="1">
<input type="text" name="text2" size="5" tabindex="4">
<input type="text" name="text3" size="5" tabindex="7">

Podemos observar que la propiedad tabindex no tiene valores consecutivos. Pero si vemos los text por columna podremos observar que si van en forma secuencial.

Todos los controles de formularios pueden definir la propiedad tabindex para indicar el orden de activación o foco del control.

Formulario - Inhabilitar controles.

Todos los controles que hemos visto podemos hacer que aparezcan inhabilitados.

Supongamos que disponemos 3 controles de tipo radio para indicar que sección del sitio deseamos ingresar. Nosotros queremos mostrar que tiene 3 secciones pero una no está disponible. Esto lo resolvemos deshabilitando un radio:

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
Seleccione la sección donde desea ingresar:
<br>
<input type="radio" name="seccion" value="1" 
disabled>Niños<br>
<input type="radio" name="seccion" value="2">Adolescentes<br>
<input type="radio" name="seccion" value="3">Mayores<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Para deshabilitar el primer radio añadimos la propiedad disabled sin asignarle valor:

<input type="radio" name="seccion" value="1" disabled>Niños

Los siguientes elementos pueden inhabilitarse:

button, input, optgroup, option, select y textarea.

Esta propiedad tiene mucha aplicación si se aplica javascript en la página. Mediante javascript podemos luego de haber sido cargado el documento modificar el estado de los controles, habilitando y deshabilitando de acuerdo a los datos que carga el visitante al sitio.

Búsqueda personalizada

Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: formularios de input y agrupamiento de controles.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

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>

Formulario - input type="file".

El control de tipo file nos permite enviar un archivo al servidor. Nuevamente el HTML solo indica al navegador que debe enviar el archivo al servidor pero debe haber en el servidor un programa que lo almacene en una carpeta del servidor.

Veamos la sintaxis para disponer un control de tipo file:

<input type="file" name="archi"> 

Nuevamente utilizamos el elemento HTML input para definir este tipo de control. En la propiedad type inicializamos con el valor file. Inicializar la propiedad name también es importante ya que mediante este nombre se lo recupera en el servidor.

Otra cosa muy importante a tener en cuenta cuando hacemos upload de archivos al servidor es inicializar la propiedad enctype del elemento form:

<form method="post" action="/registrardatos.php" enctype="multipart/form-data">

Con esto indicamos al navegador que el formulario almacena uno o más archivos que deben ser enviados al servidor.

Confeccionemos una página que solicite el ingreso de un nombre y la foto de la persona:

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post" enctype="multipart/form-data">
Ingrese su nombre:
<input type="text" name="nombre" size="30"><br>
Seleccione la foto:
<input type="file" name="foto">
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Recordemos siempre inicializar la propiedad enctype del elemento form:

<form action="/registrardatos.php" method="post" enctype="multipart/form-data">

Tenga en cuenta que si no se hace nigún programa en el servidor el archivo no se almacena.
-->

Formulario - input type="hidden.

Un campo hidden se lo denomina campo oculto. Este tipo de control no visualiza nada dentro del formulario.

Su utilidad se presenta cuando desde el servidor se genera una página dinámica por ejemplo mediante PHP y se almacena en un campo oculto un valor que se rescatará al subir el formulario al servidor.

Su utilidad real solo podrá ser comprendida cuando estudie un lenguaje de servidor, pero veamos y conozcamos su sintaxis con un ejemplo.

Confeccionar un formulario que solicite ingresar el nombre de una persona y en un campo oculto almacene una hora cualquiera:

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
<input type="hidden" value="10:20" name="hora">
Ingrese su nombre:
<input type="text" name="nombre" size="30">
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Como vemos la sintaxis para definir un campo oculto es:

<input type="hidden" value="10:20" name="hora">

En el atributo value almacenamos el valor (este valor no se puede modificar desde el formulario)

Podemos imaginar una utilidad, supongamos que queremos que un visitante reenvíe un formulario cargado con todos los datos en un tiempo limitado, podríamos almacenar en el campo oculto la primera vez que solicita la página que contiene el formulario donde se resgistrará dicha hora. Luego al subir el formulario ya cargado al servidor controlaremos mediante un lenguaje de servidor si la hora actual y la hora de pedido del formulario no hacen invalidar los datos.

Formulario - agrupamiento de controles.

El HTML dispone de un elemento llamado fieldset que solo tiene el objetivo de recuadrar y agrupar un conjunto de controles de un formulario.

Debemos encerrar todos los controles a agrupar entre las marcas <fieldset> y </fieldset>. Además para agregar un título a este recuadro debemos agregar otro elemento HTML llamado legend.

Confeccionemos un formulario que solicite los datos personales de una persona y los datos del lugar donde trabaja, cada grupo de datos los dispondremos en un fieldset:

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
<fieldset>
<legend>Datos personales</legend>
Apellido y nombre:
<input type="text" name="nombre" size="30"><br>
Documento de identidad:
<input type="text" name="dni" size="8"><br>
Fecha de nacimiento:
<input type="text" name="fechanacimiento" size="12"><br>
Dirección:
<input type="text" name="direccionpersona" size="30"><br>
</fieldset>
<fieldset>
<legend>Datos Laborales</legend>
Nombre de la empresa:
<input type="text" name="nombreempresa" size="30"><br>
Actividad:
<input type="text" name="actividad" size="50"><br>
Dirección:
<input type="text" name="direccionempresa" size="30"><br>
</fieldset>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Podemos ver que cada grupo de controles está encerrado con el elemento fieldset:

<fieldset>
<legend>Datos personales</legend>
Apellido y nombre:
<input type="text" name="nombre" size="30"><br>
Documento de identidad:
<input type="text" name="dni" size="8"><br>
Fecha de nacimiento:
<input type="text" name="fechanacimiento" size="12"><br>
Dirección:
<input type="text" name="direccionpersona" size="30"><br>
</fieldset>

Luego el título de cada fieldset lo disponemos con:

<legend>Datos personales</legend>

Búsqueda personalizada

Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: formularios de selección múltiple y agrupamiento de opciones.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Formulario - select (cuadro de selección múltiple).

Una variante del cuadro de selección que vimos en el concepto anterior es permitir que el visitante del sitio pueda seleccionar varias opciones.

Supongamos que tenemos un cuadro de selección con una lista de colores y queremos que el visitante pueda elegir varios y no uno solo.

La página que resuelve este problema es:
<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
Seleccione uno o varios colores (Presione Ctrl para seleccionar varios colores)<br>
<select name="colores[]" size="4" multiple>
<option value="1">Rojo</option>
<option value="2">Verde</option>
<option value="3">Azul</option>
<option value="4">Amarillo</option>
<option value="5">Blanco</option>
<option value="6">Negro</option>
<option value="7">Naranja</option>
<option value="8">Violeta</option>
</select>
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Podemos observar la sintaxis para la definición de un cuadro de selección múltiple:

<select name="colores[]" size="4" multiple>

Definimos una propiedad llamada multiple y no le asignamos valor, por otro lado al nombre definido en la propiedad name le agregamos al final los caracteres [] para que desde el servidor podamos identificar que el control retorna posiblemente muchos valores.

Es también común inicializar la propiedad size con un valor mayor a 1 para que sea más fácil la selección.

La mayoría de los navegadores permiten seleccionar opciones que no se encuentran juntas mediante el mouse y presionando simultáneamente la tecla Ctrl.

Formulario - select (agrupamiento de opciones).

Hemos visto que podemos crear cuadros de selección individual o de selección múltiple. Ahora veamos que podemos agrupar las opciones que tiene el cuadro de selección, esto tiene sentido si el cuadro de selección tiene muchos items.

Se cuenta con un nuevo elemento llamado optgroup que agrupa un conjunto de elementos option.

Veamos un ejemplo de agrupar una serie de opciones, agruparemos una serie de frutas y verduras:

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
Seleccione una fruta o verdura:
<select name="articulo">
<optgroup label="Frutas">
<option value="1">Naranjas</option>
<option value="2">Manzanas</option>
<option value="3>Sandia</option>
<option value="4">Frutilla</option>
<option value="5">Durazno</option>
<option value="6">Ciruela</option>
</optgroup>
<optgroup label="Verduras">
<option value="7">Lechuga</option>
<option value="8">Acelga</option>
<option value="9">Zapallo</option>
<option value="10">Papas</option>
<option value="11">Batatas</option>
<option value="13">Zanahorias</option>
<option value="14">Rabanitos</option>
<option value="15">Calabaza</option>
</optgroup>
</select>
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Como podemos observar para agrupar una serie de opciones dentro de un select debemos encerrarlas con el elemento optgroup:

<optgroup label="Frutas"> <option value="1">Naranjas</option> <option value="2">Manzanas</option> <option value="3>Sandia</option> <option value="4">Frutilla</option> <option value="5">Durazno</option> <option value="6">Ciruela</option> </optgroup>

La propiedad label del elemento optgroup aparece dentro del control select pero no se puede seleccionar, es un título.
 
La propiedad label del elemento optgroup es el texto que se debe mostrar dentro del select.

Se puede hacer agrupamiento de opciones y permitir selecciones múltiples.

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>
 

Búsqueda personalizada

Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog: