Saltar la navegación

HTML 5

La versión más actual de HTML es la versión 5. HTML5 incorpora nuevas etiquetas valiosas para, por ejemplo:

  • estructurar semánticamente el cuerpo de la página web,
  • implementar nuevos controles validables de formulario que integran código javascript transparente para el desarrollador, y
  • poderosas APIs del navegador.

Para definir una página en HTML5, la siguiente sentencia debe estar en la cabecera del documento. 

<!DOCTYPE html>

Esta sentencia es una versión simplificada de la larga cabecera que se tenía en versiones anteriores a la versión 5.

Estructura semántica

HTML 5 trae nuevas etiquetas para brindar semántica al código del contenido de la página (el código entre las etiquetas <body>). Estas etiquetas son:

  • <header> : Etiqueta para indicar que el contenido en ella corresponde a la cabecera de la página. No confundir con la etiqueta <head> que corresponde a la cabecera de una página.
  • <nav>: indica que el contenido en ella corresponde a la navegación
  • <section>: indica una sección de información principal de la página. Generalmente utilizado para contener la información más relevante del documento.
  • <aside>: barra lateral de una página
  • <footer>: pie de página

La figura 1 indica algunas de estas etiquetas (header, nav, section, aside, footer) y su localización respecto a las partes de una página normal.

Figura 1. Etiquetas HTML5


Sectores HTML5

NOTA: El contenido dentro de la etiqueta <section> es información principal de la página, pero ésta a su vez puede estar dividida en subseccciones. Estas subsecciones pueden ser indicadas/estructuradas mediante una etiqueta denominada <article>.

El siguiente código muestra un ejemplo de la estructura del contenido de la página aplicando las etiquetas semánticas. Apuesto a que ahora si te puedes dar cuenta de cada una de las secciones que conforman la página. Lo importante de este código es que puedas observar el uso de las etiquetas:

<!DOCTYPE html>
<html lang="es">

<head>
    <meta charset="iso-8859-1">
    <meta name="description" content="Ejemplo de HTML5">
    <meta name="keywords" content="HTML5, CSS3, JavaScript">
    <title>Este texto es el título del documento</title>
    <link rel="stylesheet" href="misestilos.css">
</head>

<body>
    <header>
        <h1>Este es el título principal del sitio web</h1>
    </header>
    <nav>
        <ul>
            <li>principal</li>
            <li>fotos</li>
            <li>videos</li>
            <li>contacto</li>
        </ul>
    </nav>
    <section>
    </section>
    <aside>
        <blockquote>Mensaje número uno</blockquote>
        <blockquote>Mensaje número dos</blockquote>
    </aside>
    <footer>
        Derechos Reservados &copy; 2010-2011
    </footer>
</body>

</html>

Validaciones básicas de formulario

Una de las grandes preocupaciones al crear formularios es la validación de cada uno de los controles que lo contienen. Por ejemplo, una caja de texto en la que el usuario debe ingresar un número de teléfono, tiene que ser validada para verificar que la información ingresada por el usuario sean números y no letras, que el número tenga una sintaxis como tal de número telefónico.

En las versiones de HTML, la validación se realizaba a través de código Javascript. Era una tarea tediosa escribir código Javascript para validar cada control de formulario, más aún cuando cada control tenía su propia restricción en cuanto al ingreso de información.

 HTML 5 provee varios controles de formulario que se auto-validan. Es decir, controlan que la entrada de datos sea la adecuada. En otras palabras, HTML 5 incluye código Javascript de validación en los controles y este código es transparente para ti como desarrollador, ya no debes preocuparte por escribir extensas líneas de código para validar el ingreso del usuario.

Algunos de los controles HTML5 se listan a continuación:

Controles de HTML 5
Control Descripción
placeholder

Proporciona sugerencias o ejemplo del contenido a ingresar por el usuario

<input type="text" placeholder="Ingrese su nombre">

required

Entrada de usuario obligatoria

<input type="text" id="username" name="username" required>

Nota: required o required="required" son correspondientes

autofocus

Enfocar en el control al cargar la página

<input name="q" autofocus />

form

Si por un lado se tiene formulario y por otro un control button o submit fuera del formulario. El atributo form es aplicado al control para indicar que al pulsar, se envíe el formulario (aun cuando el control no está dentro del formulario) [1].

<form id="myForm">
Add your telephone: <input type="tel" name="phone" required /><br />
</form>

<input type="submit" form="myForm" />

autocomplete

Permite especificar si el agente (browser) tiene permiso para permitir el autollenado de los valores de los campos de formulario. Aplicable a controles: input (con entrada numérica o texto), textarea, select, form

<input name="lastName" id="lastName" type="text" autocomplete="family-name" />

En este contexto, también es factible utilizar un control data-list para conectar valores a un control input [2]

<label for="browser">Choose your browser from the list:</label>
<input list="browsers" name="browser" id="browser">

<datalist id="browsers">
  <option value="Edge">
  <option value="Firefox">
  <option value="Chrome">
  <option value="Opera">
  <option value="Safari">
</datalist>

pattern

Permite indicar la expresión regular que validará la entrada del usuario.

Introduce tu TELEFONO con los 9 dígitos: <input type="tel" name="telefono" pattern="[0-9]{9}" title="El número ingresado no cumple con el formato">

 

min, max

Permite establecer un rango de valores permitidos. Se puede aplicar en controles tipo number, range, date, datetime-local, month, time y week [3]

<input type="number" id="quantity" name="quantity" min="1" max="5">

type="date"

Provee un control que permite al usuario ingresar una fecha. Soporta año, mes y día, mas no el tiempo. El tiempo es soportado por controles cuyo valor del atributo type es time y datatime-local [4]. Otros controles relacionados a fecha y tiempo son: month y week

<input type="date" id="start" name="trip-start" value="2018-07-22" min="2018-01-01" max="2018-12-31" />

type="range"

Permite al usuario indicar un número dentro de un rango especificado [5].

<input type="range" id="volume" name="volume" min="0" max="11" step="1" value="3"/>

type="color"

Permite al usuario especificar un color utilizando un selector de colores.

<input type="color" id="head" name="head" value="#e66465" />

<progress>

Etiqueta de HTML 5 que provee una barra de progreso [6]

<progress id="file" value="32" max="100"> 32% </progress>

Referencias

  1. Cravens, J., & Burtoft, J. (2012). HTML5 Hacks: Tips & Tools for Creating Interactive Web Applications. " O'Reilly Media, Inc.".
  2. https://www.w3schools.com/tags/tag_datalist.asp
  3. https://www.w3schools.com/tags/att_input_min.asp
  4. https://developer.mozilla.org/es/docs/Web/HTML/Element/input/date
  5. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range
  6. https://www.w3schools.com/tags/tag_progress.asp

Actividad de Descubrimiento

Lee el siguiente blog sobre validación de controles de formulario con HTML5.

Crea una página Web con un formulario que contenga los componentes HTML5 que se menciona en el artículo. Comprueba que las validaciones funcionan.