Saltar a contenido

UT2. Utilización de Lenguajes de Marcas en Entornos Web. HTML

¿Qué es HTML?

De forma sencilla, HTML (HyperText Markup Language) es el lenguaje que se utiliza para crear páginas web. Estas páginas son ejecutadas por los navegadores (Chrome, Firefox…)

El lenguaje HTML es un estándar reconocido en todo el mundo y cuyas normas define un organismo sin ánimo de lucro llamado World Wide Web Consortium, más conocido como W3C. Como se trata de un estándar reconocido por todas las empresas relacionadas con el mundo de Internet, una misma página HTML se visualiza de forma muy similar en cualquier navegador de cualquier sistema operativo.

El propio W3C define el lenguaje HTML como "un lenguaje reconocido universalmente y que permite publicar información de forma global".

Breve historia de HTML

La historia completa de HTML es tan interesante como larga, por lo que a continuación se muestra su historia resumida a partir de la información que se puede encontrar en la Wikipedia. El origen de HTML se remonta a 1980, cuando el físico Tim Berners-Lee, trabajador del CERN (Organización Europea para la Investigación Nuclear) propuso un nuevo sistema de "hipertexto" para compartir documentos.

El primer documento formal con la descripción de HTML se publicó en 1991 bajo el nombre HTML Tags (Etiquetas HTML) y todavía hoy puede ser consultado online a modo de reliquia informática.

A partir de ese momento van apareciendo diferentes versiones de HTML, siendo el W3C (World Wide Web Consortium) el encargado de publicar estos estándares. HTML 4.0 se publicó el 24 de abril de 1998 y supone un gran salto desde las versiones anteriores. Entre sus novedades más destacadas se encuentran las hojas de estilos CSS, la posibilidad de incluir pequeños programas o scripts en las páginas web, tablas complejas y mejoras en los formularios.

Poco después, apareció HTML 4.01 con pocas novedades significativas.

Desde la publicación de HTML 4.01, no apareció nada nuevo hasta 2009 que aparece HTML 5.

HTML y XHTML

El lenguaje XHTML es muy similar al lenguaje HTML. De hecho, XHTML no es más que una adaptación de HTML al lenguaje XML. Técnicamente, HTML es descendiente directo del lenguaje SGML, mientras que XHTML lo es del XML (que, a su vez, también es descendiente de SGML).

Relación entre HTML y XHTML.
Relación entre HTML y XHTML.

Editores de HTML

Nuestra herramienta principal para crear una página web es el editor de HTML. Tenemos varias opciones:

  • Sublime Text: este editor no es gratuito, pero tiene una licencia de prueba indefinida.
  • NotePad ++: es un editor gratuito que soporta muchos lenguajes y tiene soporte para plugins.
  • Brackets: es un editor de Adobe, también es gratuito.
  • Atom: es gratuito y es de los creadores de GitHub.
  • Visual Studio Code: es un editor de código fuente desarrollado por Microsoft para Windows, Linux, macOS y Web. Incluye soporte para la depuración, control integrado de Git, resaltado de sintaxis y finalización inteligente de código.

Edición básica en HTML

Un documento HTML contiene texto y etiquetas.

Etiquetas

Las etiquetas sirven para delimitar elementos de la página. Por ejemplo, un párrafo es un elemento de la página, una tabla también. Incluso hay elementos que contienen otros elementos (las tablas constan de filas y las filas de celdas…).

Las etiquetas aparecen entre los signos de menor y mayor (< >). Cuando un navegador se encuentra un texto dentro de estos dos signos, interpreta que lo que hay dentro es un elemento.

Ejemplo

<p>Este es un párrafo</p>

La mayoría de las etiquetas afectan a un determinado texto, que estará delimitado por una etiqueta de apertura y otra de cierre. Se interpretará como el inicio y fin de un determinado elemento de la página.

El cierre de una etiqueta se marca poniendo el símbolo /. En el ejemplo anterior, la etiqueta <p> indica el inicio de un párrafo y la etiqueta </p> indica el final del párrafo.

Ya se ha comentado que un elemento puede contener dentro más elementos, por lo que entre la apertura y el cierre de una etiqueta puede haber más etiquetas.

Importante

Una norma importante es que siempre debemos cerrar primero las etiquetas abiertas más tarde.

El siguiente ejemplo es incorrecto:

Ejemplo incorrecto

<p>Este es un párrafo <b>con una palabra en negrita</p></b>

Se está cerrando primero la etiqueta <b> y luego la etiqueta <p>, cuando debería ser al revés. Lo correcto sería:

Ejemplo correcto

<p>Este es un párrafo <b>con una palabra en negrita</b></p>

Nota

Algunas etiquetas no tienen contenido, por lo que no necesitan una etiqueta de cierre. Por ejemplo <meta>, <br> o <hr>.

Atributos

Algunas etiquetas tienen atributos. Los atributos son propiedades de cada elemento a las que podemos asignar un valor, de modo que dicho valor varía el comportamiento del elemento. Por ejemplo, puede cambiar el color o el tamaño.

La sintaxis de un atributo es la siguiente:

<etiqueta atributo1=”valor1” atributo2=”valor2”...> Texto </etiqueta>

Ejemplo

<p id="parrafo1" class="texto-grande">Este es un párrafo azul y grande</p>

Estructura de un documento HTML

HTML, como ya hemos comentado, es un lenguaje de etiquetas (también llamado lenguaje de marcado) y las páginas web habituales están formadas por cientos o miles de etiquetas.

La principal ventaja de los lenguajes de etiquetas es que son muy sencillos de leer y escribir por parte de las personas. La principal desventaja es que pueden aumentar mucho el tamaño del documento, por lo que en general se utilizan etiquetas con nombres muy cortos.

Un documento HTML se divide en dos partes principales: la cabecera y el cuerpo.

  • La cabecera incluye información sobre la propia página, como por ejemplo su título y su idioma.
  • El cuerpo de la página incluye todos sus contenidos, como párrafos de texto, imágenes, tablas y demás elementos.
    Estructura de un documento HTML.
    Estructura de un documento HTML.
    El cuerpo (llamado body) contiene todo lo que el usuario ve en su pantalla y la cabecera (llamada head) contiene todo lo que no se ve (con la única excepción del título de la página, que los navegadores muestran como título de sus ventanas).

Estructura básica de una página en HTML5

El siguiente código muestra la estructura básica de una página web en HTML5:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Título de la página</title>
</head>
<body>
    <h1>Encabezado principal</h1>
    <p>Este es un párrafo de texto en la página.</p>
</body>
</html>
  • La primera etiqueta es <!DOCTYPE> Esta etiqueta indica que versión de HTML se utiliza en el documento para que los navegadores puedan aplicar la gramática y sintaxis correspondiente al documento. En nuestro ejemplo le estamos indicando que vamos a usar HTML 5.
  • Seguidamente se encuentra la etiqueta <html lang="es">: html indica el comienzo y el final de un documento (</html>). En el interior de la etiqueta <html> se definen la cabecera y el cuerpo del documento. !!! warning "Importante" Ninguna etiqueta o contenido puede colocarse antes de la etiqueta <html> ni después de la etiqueta </html> (con la excepción del tipo).
  • El atributo lang puede ser utilizado por los navegadores y otras aplicaciones para aportar a los usuarios la información más adecuada o para presentar información a los usuarios de la manera más correcta. También es útil para los lectores de pantalla.
  • <head>: delimita la parte de la cabecera del documento. Los elementos contenidos en ella sirven para indicar información al navegador web y a los buscadores. En ella se pone información del propio documento HTML, como por ejemplo su título y el idioma de la página.
    • Los contenidos indicados en la cabecera no son visibles para el usuario, con la excepción de la etiqueta <title>, que se utiliza para indicar el título del documento y que los navegadores lo visualizan en la pestaña de la ventana del navegador.
    • También tenemos la etiqueta <meta charset="utf-8"> que se utiliza para especificar la codificación de caracteres que se va a utilizar para visualizar la página. Esto permite al navegador reconocer caracteres propios de nuestro idioma, como las tildes o el carácter ñ.
  • <body>: delimita el cuerpo del documento HTML. El cuerpo encierra todos los contenidos que se muestran al usuario (párrafos de texto, imágenes, tablas). En general, el <body> de un documento contiene cientos de etiquetas HTML, mientras que el <head> no contiene más que unas pocas.
    Estructura de un documento HTML y etiquetas.
    Estructura de un documento HTML y etiquetas.

Etiquetas obsoletas de HTML

De todas las etiquetas disponibles en HTML, las siguientes se consideran obsoletas y no se deben utilizar: <applet>, <basefont>, <center>, <dir>, <menú>, <marquee>, <strike>, <acronym>.

Comentarios en HTML

Los comentarios sólo se aparecen en el código fuente, no se muestran cuando el navegador procesa la página. No son etiquetas. Un comentario comienza con <!-- y se cierra con -->.

<!-- Este es mi primer comentario -->

Etiquetas básicas

Párrafo simple <p>

En una página web todo el texto está dentro de alguna etiqueta. Aunque en HTML 5 se permite escribir texto que no esté dentro de una etiqueta, no es una buena práctica, ya que no podríamos indicar más adelante el formato del texto (alineaciones, márgenes…).

Por ello, no se debe poner texto directamente dentro de la etiqueta <body>, tiene que haber algún contenedor (etiqueta) para ese texto.

El elemento más sencillo es la etiqueta <p> que indica un elemento de párrafo normal.

<p>Primer párrafo.</p>
<p>Segundo párrafo.</p>

Resultado

Primer párrafo.

Segundo párrafo.

Por defecto los párrafos <p> hacen un salto de línea y dejan espacio arriba y abajo. Dentro de un párrafo, no podemos indicar otro párrafo. Pero si podemos tener otras etiquetas de texto simple: <em> o <span>.

Si ponemos más de un espacio en un texto es ignorado por el navegador, para ello tenemos caracteres especiales &nbsp;

Salto de línea <br>

A veces es necesario dentro del texto contenido en un párrafo hacer un salto de línea. La etiqueta que se usa para esto es <br>.

<p>Primera línea <br> Segunda línea.</p>

Resultado

Primera línea
Segunda línea.

Línea horizontal <hr>

La etiqueta <hr> se utiliza para poner una línea horizontal que ocupa toda la pantalla. Automáticamente se inserta un espacio antes y después de la línea.

<p>Primer párrafo.</p>
<hr>
<p>Segundo párrafo.</p>

Resultado

Primer párrafo.


Segundo párrafo.

Títulos o encabezados <hx>

Los títulos son encabezados similares a los de los artículos de periódicos, nos permiten dar diferente importancia a los contenidos de la página. Para ello tenemos seis etiquetas que comienzan con la letra h a la que le sigue un número del 1 al 6. El elemento h1 marcará títulos de primer nivel, h2 de segundo nivel, … y así hasta h6 (sexto nivel).

<h1>Encabezado 1.</h1>
<h2>Encabezado 2.</h2>
<h3>Encabezado 3.</h3>
<h4>Encabezado 4.</h4>
<h5>Encabezado 5.</h5>
<h6>Encabezado 6.</h6>

Resultado

Encabezado 1.

Encabezado 2.

Encabezado 3.

Encabezado 4.

Encabezado 5.
Encabezado 6.

La etiqueta <h1> sirve para indicar a los buscadores las palabras clave para posicionar nuestros contenidos. En una página web es aconsejable que haya un solo titular (h1), en caso de haber más de uno, los buscadores penalizan y ponen la página en posiciones inferiores.

Elementos de texto

En este caso, detallaremos los elementos que se emplean para señalar texto interior a un párrafo.

Texto en negrita <strong>

En HTML 5 el texto importante (negrita) se indica con la etiqueta <strong>. En general todos los navegadores marcan el texto <strong> en negrita (letra más gruesa).

Nota

En versiones anteriores se utilizaba la etiqueta <b>, actualmente no está recomendada, aunque es empleada para llamar la atención y no para dar importancia a un texto o palabra como si lo hace <strong>.

<p>Hola <strong>mundo!</strong></p>

Resultado

Hola mundo!

Texto enfatizado o cursiva <em>

La etiqueta <em> marca texto enfatizado. El resultado visual en los navegadores es el texto en cursiva. Antes se utilizaba <i>, actualmente no está recomendada.

<p>Hola <em>mundo!</em></p>

Resultado

Hola mundo!

Texto resaltado <mark>

Para resaltar texto tenemos la etiqueta <mark>. En este caso, el efecto visual es un color de fondo amarillo que simula un marcador.

<p>Yo soy texto normal. <mark>Y yo estoy marcado.</mark></p>

Resultado

Yo soy texto normal. Y yo estoy marcado.

Este elemento no es tan antiguo como los anteriores porque apareció con HTML5 (los navegadores antiguos no lo reconocen). La idea semántica es marcar texto que queremos resaltar de forma muy llamativa indicando texto a recordar o sobre el que profundizar.

Texto tachado <del>

En la versión de HTML 4 la etiqueta <s> quedó obsoleta, no se recomendaba su uso. Con HTML 5 se ha redefinido su uso para tachar texto con la etiqueta <del>. En el navegador se muestra con efecto de tachado.

<p>La capital de Alemania en <del>Bee</del> Berlín.</p>

Resultado

La capital de Alemania en Bee Berlín.

Texto subrayado <u> <ins>

Para el texto subrayado se utiliza la etiqueta <u>. En HTML5 también existe la etiqueta <ins> para obtener el mismo efecto visual, pero con un significado semántico diferente (texto insertado).

<p><u>Este texto está subrayado.</u></p>
<p><ins>Este texto está subrayado.</ins></p>

Resultado

Este texto está subrayado.

Este texto está subrayado.

<u> vs <ins>

La etiqueta <u> se utiliza para subrayar texto que no tiene un significado especial, mientras que la etiqueta <ins> se utiliza para indicar que el texto ha sido insertado en un documento. El uso de <ins> puede ser útil en contextos donde se desea resaltar cambios o adiciones en un texto, como en revisiones de documentos o ediciones colaborativas. Es el opuesto a la etiqueta <del>, que indica texto eliminado.

Texto subíndice <sub>

Permite que el texto aparezca por debajo de la línea base y en un tamaño más pequeño. Se utiliza la etiqueta <sub>.

<p>Texto<sub>subíndice</sub></p>

Resultado

Textosubíndice

Texto superíndice <sup>

Parecida al anterior, pero ahora el texto por encima de la línea base y también en pequeño. La etiqueta es <sup>.

<p>Texto<sup>superíndice</sup></p>

Resultado

Textosuperíndice

Texto pequeño <small>

La etiqueta <small> se utiliza para escribir texto con letra pequeña. Se usa, por ejemplo, en textos que marquen copyright, derechos de uso, comentarios, notas anexas y letra pequeña en general. El efecto visual es que el texto sale con un tamaño más pequeño. Es posible incluso anidar un elemento <small> dentro de otro, de modo que cada vez sale más pequeño el texto.

<p>Texto normal. <small>Texto pequeño. <small>Texto aún más pequeño.</small></small></p>

Resultado

Texto normal. Texto pequeño. Texto aún más pequeño.

Abreviatura <abbr>

La etiqueta <abbr> se utiliza para texto que indica una abreviatura o un acrónimo. Su uso requiere utilizar el atributo title para indicar el significado de la abreviatura. En general, los navegadores no muestran ningún resultado, pero sí un cartel con el contenido de title cuando se acerca el ratón.

<p>Se ha coronado a <abbr title="Su Alteza Real">SAR</abbr> El Rey Juan Pepe.</p>

Resultado

Se ha coronado a SAR El Rey Juan Pepe.

Definiciones <dfn>

La etiqueta <dfn> sirve para indicar definiciones para un término o palabra. También necesita el atributo title para indicar el significado del término.

<p>Un dispositivo <dfn title="Componentes físicos de un sistema informático">Hardware.</dfn></p>

Resultado

Un dispositivo Hardware.

Los navegadores suelen mostrar el contenido del elemento en cursiva y al posicionar el ratón sobre la palabra muestran el contenido del atributo title en un “tooltips”.

Escritura de código y texto informático

Escritura de código <code>

HTML proporciona una etiqueta llamada <code> que se utiliza cuando en un documento deseamos escribir ejemplos de código escritos en un lenguaje de programación.

<p>Este es un ejemplo de código JavaScript:</p>
<code>
      window.onload=function(){
        alert("Hola");
      }
</code>

Resultado

Este es un ejemplo de código JavaScript:

window.onload=function(){ alert("Hola"); }

Se puede observar cómo los navegadores modifican el tipo de letra (utilizan un tipo de letra monoespaciada) pero no respetan los espacios y tabuladores utilizados para indicar el código.

Texto preformateado <pre>

Como es muy normal querer respetar los espacios y tabuladores cuando se escriben ejemplos de código, lo habitual es combinar con la etiqueta <pre>.

La etiqueta <pre> representa un bloque de texto preformateado donde, los espacios continuos y los saltos de línea son respetados.

<p>Este es un ejemplo de código JavaScript:</p>
<pre>
    <code>
    window.onload=function(){
        alert("Hola");
    }
    </code>
</pre>

Resultado

Este es un ejemplo de código JavaScript:

    
    window.onload=function(){
        alert("Hola");
    }
    

Resultados de operaciones en un ordenador <samp>

El elemento HTML Sample <samp> se utiliza para incluir texto en línea que representa una muestra (o cita) de la salida de un programa de ordenador. El contenido de esta etiqueta es renderizado generalmente usando la tipografía monoespaciada por defecto del navegador.

<p>Estaba tratando de arrancar mi computadora, pero recibí este divertido mensaje:</p>
<p><samp>Teclado no encontrado <br>Presione F1 para continuar</samp></p>

Resultado

Estaba tratando de arrancar mi computadora, pero recibí este divertido mensaje:

Teclado no encontrado
Presione F1 para continuar

Citas

Una cita es cuando se extraen fragmentos o ideas textuales de un texto. Existen varias formas de marcar citas en HTML.

Cita en bloque <blockquote>

<blockquote> crea citas en bloque, marca las citas a otros autores o documentos. Es decir, indica párrafos completos que son citas procedentes de fuentes externas al documento. Se le puede incluir el atributo cite para indicar una URL a la fuente de la cita.

  • NO genera automáticamente comillas alrededor del contenido.
  • Incluye un margen izquierdo cuando se visualiza.
<p>Esto es un ejemplo de cita en bloque.</p>
<blockquote cite='https://www.w3.org/TR/2011/WD-html5-author-20110809/the-blockquote-element.html'>
    <p>The blockquote element represents a section that is quoted from another source.</p>
</blockquote>

Resultado

Esto es un ejemplo de cita en bloque.

The blockquote element represents a section that is quoted from another source.

Puede utilizar el atributo cite (como se observa en el ejemplo), para indicar la URL que se ha utilizado como fuente de la cita pero no se muestra al usuario. Los navegadores no hacen nada con el contenido de este enlace.

Cita corta en línea <q>

<q> indica que el texto adjunto es una cita corta en línea. La mayoría de los navegadores modernos implementan esto rodeando el texto entre comillas. Este elemento está destinado a citas breves en la misma línea; para citas de bloque independiente, utiliza el elemento <blockquote>.

<p>Conforme al sitio web de Mozilla,
<q cite="https://www.mozilla.org/en-US/about/history/details/">Firefox 1.0 fue lanzado en 2004 y se convirtió en un gran éxito. </q></p>

Resultado

Conforme al sitio web de Mozilla, Firefox 1.0 fue lanzado en 2004 y se convirtió en un gran éxito.

No es obligatorio utilizar el atributo cite pero se puede usar para indicar la fuente de la cita.

Cita de trabajo creativo <cite>

<cite> es uno de los pocos identificadores de HTML que se emplea tanto como etiqueta como atributo. Como etiqueta, <cite> se emplea para referenciar un trabajo creativo como un libro, una película, un programa de televisión o una canción. Por defecto, los navegadores suelen mostrar el contenido de esta etiqueta en cursiva.

<p>Yo llegué en el momento justo, interesado, cuando el hipertexto e Internet habían visto ya la luz. La tarea que me correspondía era hacer que casaran.<br>Tim Berners-Lee, <cite>Tejiendo la Web</cite>.</p>

Resultado

Yo llegué en el momento justo, interesado, cuando el hipertexto e Internet habían visto ya la luz. La tarea que me correspondía era hacer que casaran.
Tim Berners-Lee, Tejiendo la Web.

Otras etiquetas

Existen otras muchas etiquetas de las cuales podemos destacar:

Etiqueta de direcciones <address>

La etiqueta <address> se utiliza para indicar información de contacto, como una dirección postal, una dirección de correo electrónico, un número telefónico, una ciudad, un país, un código postal, etc. Los navegadores suelen mostrar este tipo de párrafos en cursiva, y aunque el elemento representa el texto con el mismo estilo que el elemento <em>, es más apropiado utilizarlo cuando se trata información de contacto, ya que transmite información semántica adicional a los buscadores.

<address>
IES Castelar <br>
Av. Santiago Ramón y Cajal, 2 <br>
06001 <br>
Badajoz <br>
España <br>
</address>

Resultado

IES Castelar
Av. Santiago Ramón y Cajal, 2
06001
Badajoz
España

Listas

Las listas permiten crear datos agrupados y alineados mediante símbolos como viñetas o números para facilitar la lectura y organización de la información.

Listas NO ordenadas (viñetas) <ul><li>

Las listas con viñetas se deben englobar dentro de una etiqueta <ul> (acrónimo de unordered list, lista no ordenada), después cada ítem de la lista estará dentro de elementos de tipo <li> (de list item, elemento de lista).

<h3>Lista de la compra</h3>
<ul>
    <li>Agua</li>
    <li>Pan</li>
    <li>Huevos</li>
    <li>Leche</li>
</ul>

Resultado

Lista de la compra

  • Agua
  • Pan
  • Huevos
  • Leche

Atributo Valor Descripción
type Uno de los siguientes: 'disc', 'square', o 'circle'. Por defecto: depende del anidamiento, lo fija el navegador. Indica el estilo de los ítems de la lista.
compact Solo puede ser: 'compact'. Por defecto: lo fija el navegador. Indica que la lista debe mostrarse compactada.

Nota

Se recomienda no usar el atributo type, se debe emplear CSS. Si se usa, no se valida el documento. Lo usaremos temporalmente para visualizar su efecto en las listas.

Listas ordenadas (numéricas) <ol><li>

Las listas numéricas aparecen dentro del elemento <ol> (de ordered list, lista ordenada), después cada ítem de la lista estará dentro de elementos de tipo <li>, al igual que las anteriores. La diferencia ahora es que cada párrafo con <li>, aparece con un número y no con una viñeta.

<h3>Lista de la compra</h3>
<ol>
    <li>Agua</li>
    <li>Pan</li>
    <li>Huevos</li>
    <li>Leche</li>
</ol>

Resultado

Lista de la compra

  1. Agua
  2. Pan
  3. Huevos
  4. Leche

Atributo Valor Descripción
type (1|a|A|i|I) Indica el estilo de los ítems de la lista.
start 'un número' Número inicial de la secuencia.
compact Solo puede ser: 'compact'. Por defecto: lo fija el navegador. Indica que la lista debe mostrarse compactada.
reversed reversed Invierte el orden de la lista.

Listas anidadas

Es posible meter una lista dentro de otra, por ejemplo:

<h3>Lista de la compra</h3>
<ul>   
    <li>Bebidas
        <ul>
            <li>Agua</li>
        </ul>
    </li>
    <li>Otros
        <ul>
            <li>Pan</li>
            <li>Huevos</li>
            <li>Leche</li>
        </ul>
    </li>
</ul>

Resultado

Lista de la compra


  • Bebidas
    • Agua
  • Otros
    • Pan
    • Huevos
    • Leche

También es posible anidar mezclando tipos de listas:

<h3>Lista de la compra</h3>
<ol>   
    <li>Bebidas
        <ul>
            <li>Agua</li>
        </ul>
    </li>
    <li>Otros
        <ul>
            <li>Pan</li>
            <li>Huevos</li>
            <li>Leche</li>
        </ul>
    </li>
</ol>

Resultado

Lista de la compra


  1. Bebidas
    • Agua
  2. Otros
    • Pan
    • Huevos
    • Leche

Listas de términos <dl> <dt> <dd>

Permite crear una lista de definiciones de términos. En ellas se indica el término a definir y su significado. Para ello usamos las etiquetas <dl> <dt> y <dd>

<h3>Lista de vehículos</h3>
<dl>
  <dt>Coche:</dt>
  <dd>Vehículo de cuatro ruedas.</dd>

  <dt>Moto:</dt>
  <dd>Vehículo de dos ruedas.</dd>  
</dl>

Resultado

Lista de vehículos

Coche:
Vehículo de cuatro ruedas.

Moto:
Vehículo de dos ruedas.

Enlaces <a>

Una URL (Uniform Resource Location) es la dirección única y específica a un recurso en Internet (una página web, una imagen, un vídeo, un directorio…). Un enlace o hipervínculo, es un texto o imagen en el que el usuario puede pulsar para ir a otro contenido. Su función es permitirnos navegar por las diferentes páginas que tengamos. La etiqueta que permite realizar enlaces es la etiqueta <a>.

Atributo Valor Descripción
href URL o enlace a recurso. URL o dirección hacia un recurso.
target _self: Carga el recurso en la misma pestaña de navegación que el actual. Este es el comportamiento por defecto.
_blank: Carga el recurso en una nueva pestaña del navegador.
Especifica en dónde abrir el recurso enlazado.
title Texto. Proporciona información adicional sobre el enlace.

Enlaces globales

Son los enlaces que saltan a otros sitios web. En este caso se debe indicar la URL completa del recurso al que se desea saltar. La URL completa incluye el protocolo (http, https, ftp…), el servidor (www.tuelectronica.es) y la ruta del recurso (/pagina1.html).

<p>Visita mi web <a href="https://tuelectronica.es" target="_blank">TuElectronica.es</a>.</p>

Resultado

Visita mi web TuElectronica.es.

Enlaces locales

Muchos enlaces de un sitio web en Internet no saltan a otros sitios, sino que son saltos a recursos del mismo servidor web.

En ese caso no se indica una URL global tal cual se explicó anteriormente, sino que se indica un salto local relativo. Es decir, un salto a un recurso en nuestro propio servidor web que toma como punto de partida el directorio en el que se encuentra la página web que realiza el salto. Para ello se usarán rutas locales.

  <ul>
    <!-- Abrimos el recurso pagina1.html que está en el directorio -->
    <li><a href="pagina1.html" target="_blank">Pagina 1</a></li>
    <!-- Abrimos el recurso pagina2.html que está en la carpeta "carpeta" del 
    directorio de este HTML -->
    <li><a href="carpeta/pagina2.html" target="_blank">Pagina 2</a></li>
  </ul>

Enlaces internos

Hay un tipo de enlace que permite posicionarnos en un lugar concreto del documento. Este tipo de enlace se denomina interno, ya que salta dentro del propio documento.

Este salto requiere primero marcar la posición a la que deseamos saltar. Para realizar esto se utiliza el atributo id. Después se crea un enlace a esa posición.

El id es un atributo presente en cualquier elemento de la página web. Sirve para identificar a dicho elemento dentro de la página, por ello no podemos repetir valor. Por ejemplo, al hacer clic en el enlace que se indica, el navegador hará un scroll hasta llegar al id (en este caso el título H1) que se ha referenciado en el enlace mediante el uso de #.

Enlace interno
Enlace interno.

URLs absolutas

Además de los links internos y externos, la otra característica que diferencia a los enlaces (y, por tanto, también a las URL) es si el enlace es absoluto o relativo.

Las URL absolutas incluyen todas las partes de la URL (protocolo, servidor y ruta) por lo que no se necesita más información para obtener el recurso enlazado.

URLs relativas

Las URL relativas prescinden de algunas partes de las URL para hacerlas más breves. Como se trata de URL incompletas, es necesario disponer de información adicional para obtener el recurso enlazado.

En concreto, para que una URL relativa sea útil es imprescindible conocer la URL del origen del enlace (la página web en la que se encuentra el enlace). De este modo, el navegador puede completar la URL relativa con la información que falta.

Si queremos indicarle al navegador que el recurso está en un nivel superior, se incluyen dos puntos y una barra ../ en la ruta del recurso enlazado.

Nota

En general, es recomendable utilizar URL relativas para los enlaces a recursos dentro de nuestro propio sitio web. Esto facilita la gestión del sitio y permite moverlo a un dominio diferente sin necesidad de actualizar todos los enlaces internos.

Elemento Valor
Página origen https://www.dominio.com/curso/seo/introduccion/curso_SEO_parte_1.html
Página enlazada Página web llamada examen_1.html y que se encuentra en el directorio superior llamado /seo
URL absoluta https://www.dominio.com/curso/seo/examen_1.html
URL relativa ../examen_1.html

Si el destino se encuentra un par de niveles por encima debemos incluir ../../ dos veces seguidas:

Elemento Valor
Página origen https://www.dominio.com/curso/seo/introduccion/curso_SEO_parte_1.html
Página enlazada Página web llamada inscripcion_curso_SEO.html y que se encuentra en el directorio superior llamado /curso
URL absoluta https://www.dominio.com/curso/inscripcion_curso_SEO.html
URL relativa ../../inscripcion_curso_SEO.html

Además de que se pueden subir niveles, también se puede entrar en otros directorios diferentes para obtener los propios recursos:

Elemento Valor
Página origen https://www.dominio.com/curso/seo/introduccion/curso_SEO_parte_1.html
Página enlazada Página web llamada curso_wordpress.html y que se encuentra en un directorio llamado /wordpress que se encuentra en la raíz del servidor
URL absoluta https://www.dominio.com/wordpress/curso_wordpress.html
URL relativa ../../../wordpress/curso_wordpress.html

Rutas relativas a un origen

En ocasiones, es necesario utilizar rutas relativas a un origen específico en lugar de rutas relativas al documento actual. Esto es especialmente útil cuando se trabaja con estructuras de directorios complejas o cuando se desea mantener la coherencia en los enlaces dentro de un sitio web.

Elemento Valor
Página origen https://www.dominio.com/curso/seo/introduccion/curso_SEO_parte_1.html
Página enlazada Página web llamada recursos.html y que se encuentra en el directorio raíz del servidor
URL absoluta https://www.dominio.com/recursos.html
URL relativa ../../../recursos.html
URL relativa al origen /recursos.html

Cuando utilizamos en primera instancia un / para acceder a un recurso, se está indicando que el origen es la raíz del sistema de datos, por ejemplo C: o D: si abrimos de forma local el documento. Si el recurso se solicita desde un servidor web, el origen no es la raíz del sistema, sino la raíz de los recursos públicos del servidor.

Imagenes <img>

Las imágenes son fundamentales para que una página web sea más atractiva. Son el primer contenido no textual que se planteó poder incorporar al estándar HTML. Prácticamente no hay páginas sin imágenes.

Los navegadores tienen capacidad de mostrar imágenes, pero sólo las que pertenecen a tipos concretos. Los tipos de imágenes más usados y reconocidos por la mayoría de los navegadores son:

  • Formato jpg. Son imágenes que ocupan muy poco espacio gracias a su alta compresión. No admiten animaciones ni zonas marcadas con transparencia. Son el formato habitual de la imagen digital en una página web.
  • Formato gif. Imágenes con hasta 256 colores, por lo que son buenas para dibujos y logotipos, pero no para fotografías. Pueden incluso contener animaciones (uno de sus usos habituales).
  • Formato png. Imágenes fotográficas comprimidas al estilo de jpg pero con más calidad (ocupan más espacio, normalmente) y transparencia alfa.
  • Formato webp. Formato de imagen desarrollado por Google para conseguir mejorar a PNG y JPG haciendo que ocupen menos sin pérdida de calidad respecto a estos formatos. Sin embargo, no todos los navegadores son capaces de interpretarlas.

Las imágenes se colocan mediante la etiqueta <img>. El atributo src indica la ruta de la imagen y es obligatorio. De igual forma, el atributo alt es necesario para validar el documento. Este atributo permite mostrar un texto alternativo si la imagen no puede cargarse.

<img src="pajaro.png" alt="Descripción de la imagen">

Resultado

Pájaro

Atributo Valor Descripción
alt Obligatorio. Texto Indica un texto alternativo. Ese texto aparece cuando la imagen no se ha podido cargar.
width Números enteros no negativos. Pixels Anchura de la imagen.
height Números enteros no negativos. Pixels Altura de la imagen.
<img src="pajaro.jpg" alt="Pájaro">
<img src="pajaro.jpg" alt="Pájaro" width="200" height="200">
<img src="pajaro.jpg" alt="Pájaro" width="100" height="100">

Resultado

Pájaro Pájaro Pájaro

Tablas <table> <tr> <td>

Las tablas son uno de los elementos fundamentales de HTML para mejorar la puesta visual de las páginas web. Una tabla es un conjunto de datos presentados en forma de filas y columnas. Una tabla típica podría ser esta:

Company Contact Country
Alfreds Futterkiste Maria Anders Germany
Centro comercial Moctezuma Francisco Chang Mexico
Ernst Handel Roland Mendel Austria
Island Trading Helen Bennett UK
Laughing Bacchus Winecellars Yoshi Tannamuri Canada
Magazzini Alimentari Riuniti Giovanni Rovelli Italy

En HTML las tablas tienen muchas posibilidades, lo que ha permitido, tradicionalmente, ser utilizadas como elemento de maquetación de páginas complejas, hoy en día, ya no se usan para maquetación. Para este fin se utilizan las etiquetas <div> junto con CSS que veremos más adelante.

Creación de tablas simples

En HTML una tabla se crea con la etiqueta <table>, dentro de este elemento se indican las filas mediante el elemento <tr> y dentro de cada fila se indican las celdas mediante elementos <td>.

<table border="1">
    <tr>
      <td></td>
      <td>Lunes</td>
      <td>Martes</td>
      <td>Miércoles</td>
    </tr>
    <tr>
      <td>10:30</td>
      <td>Seguridad informática</td>
      <td>Hacking ético</td>
      <td>Gestión de incidentes</td>
    </tr>
    <tr>
      <td>11:30</td>
      <td>Lenguaje de marcas</td>
      <td>Hacking ético</td>
      <td>Base de datos</td>
    </tr>
  </table>
Resultado

Lunes Martes Miércoles
10:30 Seguridad informática Hacking ético Gestión de incidentes
11:30 Lenguaje de marcas Hacking ético Base de datos

Nota

En el ejemplo se ha añadido el atributo border a la tabla para que se vea el borde de las celdas. Este atributo está obsoleto y no se debe usar en HTML5, pero se ha incluido para facilitar la visualización del ejemplo. De igual forma, los atributos width y height que se explican a continuación también están obsoletos.

Atributo Valor Descripción
border Longitud de píxeles. Permite poner un borde a la tabla.
width Longitud de píxeles o un porcentaje. Permite poner un ancho a la tabla.
height Longitud de píxeles o un porcentaje. Permite poner un alto a la tabla.

Encabezados de tabla <th>

Es muy habitual que las tablas muestren datos y que estos tengan celdas que sirvan de título. Esas celdas se consideran encabezados y se crean con <th>. El navegador muestra su contenido en negrita y centrado en la celda.

<table border="1px">
    <tr>
      <th></th>
      <th>Lunes</th>
      <th>Martes</th>
      <th>Miércoles</th>
    </tr>
    <tr>
      <td>10:30</td>
      <td>Seguridad informática</td>
      <td>Hacking ético</td>
      <td>Gestión de incidentes</td>
    </tr>
    <tr>
      <td>11:30</td>
      <td>Lenguaje de marcas</td>
      <td>Hacking ético</td>
      <td>Base de datos</td>
    </tr>
  </table>
Resultado

Lunes Martes Miércoles
10:30 Seguridad informática Hacking ético Gestión de incidentes
11:30 Lenguaje de marcas Hacking ético Base de datos

Títulos de las tablas <caption>

A las tablas se les puede poner un título con la etiqueta <caption>.

  <table border="1px">
    <caption>Horario</caption>
    <tr>
      <th></th>
      <th>Lunes</th>
      <th>Martes</th>
      <th>Miércoles</th>
    </tr>
    <tr>
      <td>10:30</td>
      <td>Seguridad informática</td>
      <td>Hacking ético</td>
      <td>Gestión de incidentes</td>
    </tr>
    <tr>
      <td>11:30</td>
      <td>Lenguaje de marcas</td>
      <td>Hacking ético</td>
      <td>Base de datos</td>
    </tr>
  </table>
Resultado

Horario
Lunes Martes Miércoles
10:30 Seguridad informática Hacking ético Gestión de incidentes
11:30 Lenguaje de marcas Hacking ético Base de datos

Agrupación de filas <thead> <tfoot> <tbody>

Hay tres elementos HTML que sirven para diferenciar las tres partes principales de una tabla. Son los siguientes:

  • <thead>. Sirve para indicar las filas que forman la cabecera de la tabla.
  • <tfoot>. Indica el pie de la tabla.
  • <tbody>. Indica el cuerpo de la tabla.

El uso de estos elementos permite dar diferente formato a cada parte mediante CSS.

  <table border="1px">
    <thead>
      <tr>
        <th></th>
        <th>Lunes</th>
        <th>Martes</th>
        <th>Miércoles</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>10:30</td>
        <td>Seguridad informática</td>
        <td>Hacking ético</td>
        <td>Gestión de incidentes</td>
      </tr>
      <tr>
        <td>11:30</td>
        <td>Lenguaje de marcas</td>
        <td>Hacking ético</td>
        <td>Base de datos</td>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <td>Total</td>
        <td>2</td>
        <td>1</td>
        <td>2</td>
      </tr>
    </tfoot>
  </table>
Resultado

Lunes Martes Miércoles
10:30 Seguridad informática Hacking ético Gestión de incidentes
11:30 Lenguaje de marcas Hacking ético Base de datos
Total 2 1 2

Combinar celdas

Es posible unir celdas. Las etiquetas de columna (td y th) son las que poseen los atributos que permiten esta operación. En concreto son los atributos:

Atributo Valor Descripción
colspan Por ejemplo, colspan="3". Une esta celda con las dos que tiene a su derecha, formando una combinación de tres celdas en horizontal Combina la celda actual con el número de celdas a la derecha que se indique.
rowspan Por ejemplo, rowspan="2". Une esta celda con la de abajo, formando una combinación de dos celdas en vertical. Combina la celda actual con el número de celdas hacia abajo que se indique.

Celdas combinadas horizontalmente:

<h1>Celdas combinadas horizontal</h1>
  <table border="1px" width="250px">
    <tr>
      <td colspan="3">A</td>
      <td>B</td>
    </tr>
    <tr>
      <td>C</td>
      <td colspan="2">D</td>
      <td>E</td>
    </tr>
    <tr>
      <td colspan="4">F</td>
    </tr>
    <tr>
      <td>G</td>
      <td>H</td>
      <td>I</td>
      <td>J</td>
    </tr>
  </table>
Resultado

Celdas combinadas horizontal

A B
C D E
F
G H I J

Celdas combinadas verticalmente:

<h1>Celdas combinadas vertical</h1>
  <table border="1px" width="250px">
    <tr>
      <td>A</td>
      <td>B</td>
      <td rowspan="3">C</td>
      <td>D</td>
    </tr>
    <tr>
      <td rowspan="2">E</td>
      <td>F</td>
      <td rowspan="3">G</td>
    </tr>
    <tr>
      <td>H</td>
    </tr>
    <tr>
      <td>l</td>
      <td>J</td>
      <td>K</td>
    </tr>
  </table>
Resultado

Celdas combinadas vertical

A B C D
E F G
H
l J K

Celdas combinadas horizontal y verticalmente:

<h1>Celdas combinadas horizontal y verticalmente</h1>
  <table border="1px" width="250px">
    <tr>
      <td rowspan="2" colspan="2">A</td>
      <td>B</td>
      <td>C</td>
    </tr>
    <tr>
      <td colspan="2">D</td>
    </tr>
    <tr>
      <td>E</td>
      <td>F</td>
      <td>G</td>
      <td>H</td>
    </tr>
  </table>
Resultado

Celdas combinadas horizontal y verticalmente

A B C
D
E F G H

Tablas dentro de tablas

Para generar tablas aún más complejas, se pueden meter elementos <table>, dentro de otras tablas. Lo que se hace es meter una etiqueta <table> con todos sus elementos de fila y columna dentro de un elemento <td> o <th>, NUNCA dentro de un <tr>.

<h1>Tabla dentro de tabla</h1>
  <table border="1px" width="500px">
    <tr>
      <td>A</td>
      <td>B</td>
      <td rowspan="3">C</td>
      <td>D</td>
    </tr>
    <tr>
      <td rowspan="2">E</td>
      <td>F</td>
      <td rowspan="3">

        <table border="1px" width="100%">
          <tr>
            <td colspan="3">A</td>
            <td>B</td>
          </tr>
          <tr>
            <td>C</td>
            <td colspan="2">D</td>
            <td>E</td>
          </tr>
          <tr>
            <td colspan="4">F</td>
          </tr>
          <tr>
            <td>G</td>
            <td>H</td>
            <td>I</td>
            <td>J</td>
          </tr>
        </table>

      </td>
    </tr>
    <tr>
      <td>H</td>
    </tr>
    <tr>
      <td>l</td>
      <td>J</td>
      <td>K</td>
    </tr>
  </table>
Resultado

Tabla dentro de tabla

A B C D
E F
A B
C D E
F
G H I J
H
l J K

Formularios

Los formularios son elementos fundamentales en las páginas web modernas. Permiten a los usuarios interactuar con la página, enviar datos y realizar diversas acciones. Un formulario se define mediante la etiqueta <form> y puede contener varios tipos de campos de entrada, como cuadros de texto, botones, casillas de verificación, menús desplegables, entre otros.

HTML5 ha introducido nuevos tipos de campos y atributos para mejorar la funcionalidad y la usabilidad de los formularios. La página Wufoo muestra una lista completa de los nuevos tipos de campos y atributos disponibles en HTML5.

Métodos de paso de datos

Los formularios pueden enviar datos al servidor utilizando dos métodos principales: GET y POST. La elección del método depende del tipo de datos que se envían y de la seguridad requerida.

  • GET: Este método envía los datos del formulario como parte de la URL. Es adecuado para formularios que no contienen información sensible y cuando se desea que los datos sean visibles en la URL. Sin embargo, tiene limitaciones en la cantidad de datos que se pueden enviar. Por ejemplo: /procesa_formulario?nombre=Juan&edad=30
  • POST: Este método envía los datos del formulario en el cuerpo de la solicitud HTTP. Es más seguro que GET y es adecuado para formularios que contienen información sensible o cuando se envían grandes cantidades de datos.

Elemento formulario <form>

Todo formulario HTML comienza con una etiqueta

, dentro de ella se colocan todos los controles del formulario encargados de recabar los datos del usuario.

<form action="procesa_formulario.php" method="post">
  <!-- Controles del formulario -->
</form>
Atributo Valor Descripción
action URL. Se trata de la URL de la página o programa al que se enviarán los datos para su procesamiento.
method get o post. Método utilizado para el envío de datos.

Se puede utilizar la siguiente URL para probar el envío de datos: https://jkorpela.fi/cgi-bin/echo.cgi Los formularios tienen otros atributos específicos que vale la pena mencionar.

Atributo Valor Descripción
autocomplete Booleano. Si se activa, el navegador automáticamente completará los datos del formulario basándose en los valores que el usuario haya rellenado en otros formularios.
novalidate Booleano Los navegadores compatibles con HTML5 tienen la capacidad de validar algunos datos (por ejemplo, en los cuadros numéricos valida que el usuario realmente ha escrito un número).
target self: Carga el procesamiento del formulario en la misma pestaña de navegación que el actual. Este es el comportamiento por defecto.

blank: Carga el procesamiento del formulario en una nueva pestaña del navegador.
Especifica en dónde abrir el procesamiento del formulario.

Elemento input <input>

El elemento <input> es uno de los más versátiles y utilizados en los formularios HTML. Permite crear una amplia variedad de controles de entrada, desde cuadros de texto hasta botones y casillas de verificación. El atributo type del elemento <input> determina el tipo de control que se crea.

Atributo Valor Descripción
placeholder Texto. Texto que aparece dentro del cuadro de texto cuando está vacío, proporcionando una pista al usuario sobre qué información debe ingresar.
type Varios tipos. Determina el tipo de control de entrada que se crea (por ejemplo, text, password, checkbox, radio, submit, etc.).
name Texto. Nombre del control de entrada. Este nombre se utiliza para identificar el valor del control cuando se envían los datos del formulario al servidor.
size Número entero positivo. Define el número de caracteres visibles en un cuadro de texto.
maxlength Número entero positivo. Establece la longitud máxima de caracteres que el usuario puede ingresar en un cuadro de texto.
value Texto/número Valor predeterminado del control de entrada. Este valor se envía al servidor si el usuario no lo modifica.
disabled Booleano. Si se establece, el control de entrada estará deshabilitado. El contenido del control no se enviará al servidor.
readonly Booleano. Si se establece, el control de entrada será de solo lectura. El usuario no podrá modificar su contenido, pero sí se enviará al servidor.
required Booleano. Si se establece, el control de entrada debe ser completado antes de enviar el formulario.
autocomplete on/off. Indica si el navegador debe activar o desactivar la función de autocompletar para este control de entrada.
id Texto. Identificador único del control de entrada dentro del formulario. Se utiliza para asociar etiquetas <label> con controles específicos.
<form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post" target="_blank">
    <label for="fname">Nombre:</label><br>
    <input type="text" id="fname" name="fname"><br>
    <label for="lname">Apellidos:</label><br>
    <input type="text" id="lname" name="lname">
</form>
Resultado




Campo de texto type="text"

El campo de texto es uno de los controles de entrada más comunes en los formularios HTML. Permite a los usuarios ingresar una línea de texto. Se puede personalizar utilizando varios atributos para mejorar la experiencia del usuario. Además, podemos usar los atributos comunes a los elementos comentados anteriormente.

<form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
    <label for="nombre">Nombre:</label><br>
    <input type="text" id="nombre" name="nombre" size="50" maxlength="5" required><br>
    <label for="codigo">Código:</label><br>
    <input type="text" id="codigo" name="codigo" value="1234" readonly><br><br>
    <input type="submit" value="Enviar">
</form>
Resultado






Campos de contraseñas type="password"

Funcionan como los cuadros de texto, solo que el texto que se introduce se oculta, mostrando solo puntos o asteriscos. Se usan, lógicamente, para introducir contraseñas. Usa los mismos atributos que los cuadros de texto.

<form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
    <label for="pwd">Contraseña:</label><br>
    <input type="password" id="pwd" name="pwd" size="20" maxlength="10" required><br><br>
    <input type="submit" value="Enviar">
</form>
Resultado




Advertencia

Si usamos método GET, la contraseña es visible en la parte superior del navegador.

Botones

Los botones son controles del formulario en los que no se puede escribir, sino que, simplemente, reciben un clic de ratón para hacer algo como enviar datos o borrar datos.

  • Botón de envío: Sirve para llevar a cabo la comunicación entre el formulario y la página que recoge sus datos. En cuanto se pulsa este botón, los datos del resto de controles se envían a la página receptora del formulario.

    <input type="submit" value="Enviar">
    
  • Botón de restablecer: Este tipo de botón lo que hace es borrar los datos que se han introducidos en los controles del formulario. Deja todos los controles en su estado inicial. La sintaxis básica es:

    <input type="reset" value="Limpiar">
    

Resultado






Opción única type="radio"

Se trata de un control fácil de usar que permite elegir una de entre varias opciones. Todas las opciones deben de tener el mismo nombre y solo cambia el valor (ese valor es el que se manda). El atributo checked hace que el botón en el que se usa aparezca chequeado por defecto.

<form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
  <input type="radio" id="html" name="fav_language" value="HTML" checked>
  <label for="html">HTML</label><br>
  <input type="radio" id="css" name="fav_language" value="CSS">
  <label for="css">CSS</label><br>
  <input type="radio" id="javascript" name="fav_language" value="JavaScript">
  <label for="javascript">JavaScript</label><br><br>
  <input type="submit" value="Enviar">
</form>
Resultado





Campos numéricos type="number"

Sirven para introducir números (decimales o no). Los navegadores que reconocen este tipo de control presentan un cuadro de texto con botones para subir y bajar el valor del número (el incremento o decremento que hacen depende del atributo step) y además no permiten introducir datos no numéricos (salvo que se use el atributo novalidate). Hay una serie de atributos reservados a este tipo de cuadros:

Atributo Valor Descripción
min Número (entero o decimal). Valor mínimo que se puede introducir.
max Número (entero o decimal). Valor máximo que se puede introducir.
step Número (entero o decimal). Incremento o decremento que se aplica al valor.
<form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
  <label for="edad">¿Cuál es tu edad?</label><br>
  <input type="number" id="edad" name="edad" value="20" max="99" min="18"><br><br>
  <input type="submit" value="Enviar">
</form>
Resultado




Si se establece un valor fuera del rango de min o max no se permite el envío:

Campo de fecha type="date"

Permite seleccionar una fecha. Los navegadores que reconocen este tipo de control permiten pulsar en un botón que invoca a un calendario para elegir cómodamente la fecha.

Tip

En algunos navegadores, como Firefox, el calendario no se muestra de forma nativa, sino que es necesario instalar una extensión para que funcione. También admite min, max y step. El formato para el atributo value, min o max es año-mes-dia

<form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
  <label for="cumple">Cumpleaños:</label>
  <input type="date" id="cumple" name="cumple" value="1987-02-02">
  <input type="submit" value="Enviar">
</form>
Resultado

Campo de hora type="time"

Permite seleccionar una hora, minutos y segundos.

Tip

También admite los atributos min, max y step (segundos).

<form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
  <label for="appt">Selecciona una hora:</label>
  <input type="time" id="appt" name="appt">
  <input type="submit" value="Enviar">
</form>
Resultado

Casillas de verificación type="checkbox"

Se usan igual que los botones de radio, pero en este caso están pensadas para ser independientes unas de otras. Es decir, se pueden activar varias a la vez. El atributo checked de los botones de radio se puede usar en las casillas de verificación con la misma finalidad, para que inicialmente la casilla aparezca marcada.

<form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
  <input type="checkbox" id="html" name="fav_language" value="HTML" checked>
  <label for="html">HTML</label><br>
  <input type="checkbox" id="css" name="fav_language" value="CSS">
  <label for="css">CSS</label><br>
  <input type="checkbox" id="javascript" name="fav_language" value="JavaScript">
  <label for="javascript">JavaScript</label><br><br>
  <input type="submit" value="Enviar">
</form>
Resultado





Campo de email type="email"

Funcionan como los cuadros de texto, solo que el texto que se introduce se es verificado por el navegador.

  <form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
    <label for="email">Email:</label>
    <input type="email" id="email" name="email">
    <input type="submit" value="Enviar">
  </form>
Resultado

Si el texto introducido no tiene un formato de email (abcd@dominio.com), no se permite el envío del formulario.

Campo oculto type="hidden"

Permite ocultar al usuario el contenido de un input. Es muy empleado para enviar información de sesión al servidor para prevenir problemas de seguridad. Funcionan como los campos de texto. Debido a que la información se oculta al usuario, no se acompaña con un

  <form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
    <input type="hidden" id="token" name="token" value="1234567890">
    <input type="submit" value="Enviar">
  </form>

Resultado

Si enviamos el formulario, el valor del campo oculto se envía al servidor.

Otros campos

Existen una multitud de tipos de inputs más específicos que se pueden consultar en la siguiente URL: https://developer.mozilla.org/es/docs/Web/HTML/Element/input

Cuadro de texto multilínea <textarea>

Permite colocar un cuadro de texto de varias líneas para que el usuario pueda introducir un texto largo.

Atributo Valor Descripción
rows Número entero positivo. Número de líneas visibles en el cuadro de texto.
cols Número entero positivo. Número de caracteres visibles por línea en el cuadro de texto
  <form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
    <textarea name="textarea" rows="10" cols="50">¡Escribe tu texto aquí!</textarea>
    <br>
    <input type="submit" value="Enviar">
  </form>
Resultado


Listas de opciones <select> <option>

Permite mostrar una lista de opciones. Comienza con la etiqueta <select> que es la encargada de dar nombre (name) al control. Dentro cada opción del cuadro se indica con la etiqueta <option> a la que se da valor mediante el atributo value. Dentro de la etiqueta <option> se coloca el texto que verá el usuario.

  <form action="https://jkorpela.fi/cgi-bin/echo.cgi" method="post">
    <label for="eleccion"></label>
    <select id="eleccion" name="eleccion">
      <option value="value1">Value 1</option>
      <option value="value2" selected>Value 2</option>
      <option value="value3">Value 3</option>
    </select>
    <input type="submit" value="Enviar">
  </form>
Resultado

Atributos específicos del elemento <select>:

Atributo Valor Descripción
multiple Booleano. Permite seleccionar varias opciones a la vez.

Atributos específicos del elemento <option>:

Atributo Valor Descripción
selected Booleano. Indica que esta opción aparece seleccionada por defecto cuando se carga la página.

Insertar audios <audio>

El elemento <audio> se utiliza para incrustar contenido de audio en una página web. Permite a los usuarios reproducir archivos de audio directamente desde el navegador sin necesidad de utilizar un reproductor externo.

Atributo Valor Descripción
src URL del archivo de audio. Especifica la ubicación del archivo de audio que se desea reproducir.
controls Booleano. Si se establece, el navegador mostrará controles de reproducción (como play, pause, volumen, etc.) para que el usuario pueda interactuar con el audio.
autoplay Booleano. Si se establece, el audio comenzará a reproducirse automáticamente cuando la página se cargue.
loop Booleano. Si se establece, el audio se reproducirá en bucle, es decir, volverá a empezar automáticamente cuando termine.
<audio controls src="https://upload.wikimedia.org/wikipedia/commons/f/f2/Median_test.ogg" >
</audio>
Resultado

Los tipos de archivo de audio más comunes son:

  • audio/mpeg (MP3)
  • audio/ogg (OGG)
  • audio/wav (WAV)

Podemos incluir varias fuentes de audio dentro del mismo elemento <audio> para asegurar la compatibilidad con diferentes navegadores:

<audio controls>
  <source src="audiofile.mp3" type="audio/mpeg">
  <source src="audiofile.ogg" type="audio/ogg">
</audio>

Insertar vídeos <video>

El elemento <video> se utiliza para incrustar contenido de vídeo en una página web. Permite a los usuarios reproducir archivos de vídeo directamente desde el navegador sin necesidad de utilizar un reproductor externo.

Atributo Valor Descripción
src URL del archivo de vídeo. Especifica la ubicación del archivo de vídeo que se desea reproducir.
controls Booleano. Si se establece, el navegador mostrará controles de reproducción (como play, pause, volumen, etc.) para que el usuario pueda interactuar con el vídeo.
autoplay Booleano. Si se establece, el vídeo comenzará a reproducirse automáticamente cuando la página se cargue.
loop Booleano. Si se establece, el vídeo se reproducirá en bucle, es decir, volverá a empezar automáticamente cuando termine.
poster URL de la imagen. Especifica una imagen que se mostrará antes de que el vídeo comience a reproducirse.
width Número entero positivo. Define el ancho del reproductor de vídeo en píxeles.
height Número entero positivo. Define la altura del reproductor de vídeo en píxeles.
muted Booleano. Si se establece, el vídeo se reproducirá sin sonido.
<video width="320" height="240" controls src="https://www.w3schools.com/html/mov_bbb.mp4"></video>
Resultado

Los tipos de archivo de vídeo más comunes son:

  • video/mp4 (MP4)
  • video/ogg (OGG)
  • video/webm (WebM)

Podemos incluir varias fuentes de vídeo dentro del mismo elemento <video> para asegurar la compatibilidad con diferentes navegadores:

<video width="320" height="240" controls>
  <source src="videofile.mp4" type="video/mp4">
  <source src="videofile.ogg" type="video/ogg">
</video>

Insertar videos de YouTube

Para insertar vídeos de YouTube en una página web, se utiliza el elemento <iframe>, que permite incrustar contenido de otras fuentes. YouTube proporciona un código de inserción que se puede copiar directamente desde la página del vídeo. Para obtener el código de inserción, solo hay que hacer clic en el botón "Compartir" debajo del vídeo, luego seleccionar "Insertar" y copiar el código HTML proporcionado.

<iframe width="560" height="315" src="https://www.youtube.com/embed/emIha4hlDd8?si=PN2LO40lZyYgmB39" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
Resultado

Otros elementos

Existen otros elementos HTML que son útiles para estructurar y dar formato al contenido de una página web. A continuación, se describen algunos de los más comunes.

Elemento <div>

El elemento <div> es un contenedor de bloque que se utiliza para agrupar otros elementos HTML y aplicarles estilos o scripts en conjunto. Es una herramienta fundamental para la estructuración y el diseño de páginas web, ya que permite organizar el contenido en secciones lógicas. El <div> no tiene un significado semántico específico, por lo que su uso debe ser complementado con clases o identificadores para mejorar la accesibilidad y la comprensión del código.

<div class="contenedor">
  <h2>Encabezado dentro de un div</h2>
  <p>Este es un párrafo dentro de un contenedor div.</p>
</div>

Elemento <span>

El elemento <span> es un contenedor en línea que se utiliza para aplicar estilos o identificar partes específicas de texto dentro de un bloque más grande. A diferencia del elemento <div>, que es un contenedor de bloque, <span> no crea un salto de línea antes o después de su contenido. Es útil para aplicar estilos CSS o para manipular partes específicas del texto mediante JavaScript.

<p>Este es un párrafo con una <span class="resaltado">palabra resaltada</span> dentro del texto.</p>
Contenedor en bloque y en línea.
Contenedor en bloque y en línea.

Elementos semánticos

HTML5 introdujo varios elementos semánticos que proporcionan significado al contenido de una página web. Estos elementos ayudan a mejorar la accesibilidad, la SEO y la comprensión del código tanto para los desarrolladores como para los motores de búsqueda. Algunos de los elementos semánticos más comunes incluyen:

  • <header>: Define el encabezado de una sección o página.
  • <nav>: Representa una sección de navegación que contiene enlaces a otras partes del sitio
  • <main>: Indica el contenido principal de la página.
  • <section>: Define una sección genérica de contenido.
  • <article>: Representa un contenido independiente y autocontenido, como un artículo de blog o una noticia.
  • <aside>: Define contenido relacionado pero separado del contenido principal, como barras laterales o
  • <footer>: Representa el pie de página de una sección o página.
Elementos semánticos.
Elementos semánticos.

Actividades

A2.1 Corrige los errores

  • Corrige los errores de sintaxis y de estructura del documento HTML adjunto.
  • Valida el documento en https://validator.w3.org

Descargar contenido

A2.2 Encabezados HTML

Dado el texto del archivo encabezados.txt adjunto:

  • Identifica los encabezados del texto y el nivel apropiado que debe tener.
  • Crea un documento en Word/Writer aplicando el estilo de título adecuado a los encabezados.
  • Finalmente, crea un documento HTML valido para que mantenga la misma jerarquía de niveles en los encabezados.
  • Valida el documento en https://validator.w3.org

Descargar contenido

A2.3 Caracteres y símbolos HTML

Dados los siguientes caracteres a continuación escribe su equivalente mediante el nombre HTML y el número HTML:

Carácter Nombre HTML Número HTML
&
<
>
"
'
©
®
°
±
µ
ñ
~
½

A2.4 Escapar caracteres

Escribe en un documento HTML bien formado y validado con el texto de la imagen. Ten en cuenta que se usan los encabezados h1 a h6.

Escapar caracteres

A2.5 Espaciar

Escribe en un documento HTML bien formado y validado con el texto de la imagen. Los elementos empleados son encabezados H2.

Espaciar

A2.6 Etiquetas de texto

Realiza un documento HTML que mantenga el mismo formato que se muestra en la imagen.

Las etiquetas empleadas en este ejercicio son: <p>, <strong>, <em>, <blockquote>, <hr>, <br>, <h1>, <h2>, <h3>.

Valida el documento en https://validator.w3.org.

Contenido | Imagen

A2.7 Etiquetas de texto menos comunes

Realiza un documento HTML que mantenga el mismo formato que se muestra en la imagen.

Las etiquetas empleadas en este ejercicio son: <p>, <strong>, <em>, <blockquote>, <hr>, <br>, <h1>, <h2>, <h3> y además: <abbr>, <cite>, <del>, <ins>, <code>, <pre>, <q>.

Valida el documento en https://validator.w3.org.

Contenido | Imagen

A2.8 Listas

Escribe en un documento HTML bien formado y validado con el texto de la imagen:

Imagen

A2.9 Listas anidadas

Escribe en un documento HTML bien formado y validado con el texto de la imagen.

Imagen

A2.10 Enlaces internos

Escribe en un documento HTML bien formado y validado con el texto de la imagen. Los enlaces hacen referencia a cada título.

Contenido | Imagen

A2.11 Enlaces externos

Escribe en un documento HTML bien formado y validado con el texto de la imagen. Los enlaces hacen referencia a cada sitio web y se deben abrir en una nueva pestaña.

Enlaces externos

A2.12 Rutas relativas

Árbol de directorios

Dado un árbol de directorios y archivos HTML, crea los enlaces correspondientes mediante rutas relativas para cumplir los siguientes criterios:

Archivo Enlaza
d.html a.html, h.htm, 3.html
h.html h.html, a.html
3.html a.html, h.html

Los enlaces se deben crear en una lista no ordenada dentro de los documentos HTML.

Contenido

A2.13 Imágenes con enlaces

Realiza un documento HTML que mantenga el mismo formato que se muestra en la imagen y las siguientes indicaciones:

  • Cada imagen es un enlace a una página web diferente.
  • Los enlaces se deben abrir en una nueva pestaña.
  • Las imágenes deben tener un ancho de 150 píxeles y ser enlazadas de forma global desde Internet. (No importa que las imágenes sean diferentes).
  • Se debe incluir un texto alternativo en cada imagen.

Imagen

A2.14 Tablas y combinación de celdas

Escribe en un documento HTML bien formado y validado con el texto de la imagen. Las tablas tienen el atributo de border a 1px y width a 500px. Recuerda que estos atributos no van a validar el documento, no se tendrá en cuenta.

Imagen

A2.15 Formulario de contacto

Escribe en un documento HTML bien formado y validado con el contenido de la imagen. El formulario debe cumplir las siguientes especificaciones:

  • Los datos del formulario se deben enviar mediante post al programa https://jkorpela.fi/cgi-bin/echo.cgi
  • Nombre. El campo debe aceptar un máximo de 30 caracteres. El tipo debe ser adecuado al contenido previsto.
  • Apellidos. El campo debe aceptar un máximo de 30 caracteres. El tipo debe ser adecuado al contenido previsto.
  • Email. Campo requerido. El tipo debe ser adecuado al contenido previsto.
  • Asunto. A elegir una única opción.
  • ¿Cómo nos ha conocido? A elegir una o más opciones.
  • Mensaje. Debe tener una longitud máxima de 300 caracteres
  • Aviso legal. Se requiere la selección antes de enviar el formulario.
  • URL de Aviso legal. Apunta a la URL del formulario.

Imagen