Módulo I - Visión General de HTML
Módulo I - Visión General de HTML
Con el tiempo, HTML ha evolucionado para adaptarse a diferentes tipos de documentos y necesidades web. Hoy en
día, permite estructurar todo tipo de contenidos visibles en la web, como texto, listas, imágenes, tablas, formularios y
otros componentes interactivos.
Los elementos HTML son las unidades fundamentales de una página HTML. Estos se representan mediante
etiquetas, las cuales se asignan a distintos tipos de contenido. Algunos ejemplos comunes incluyen:
Es importante notar que los navegadores web no muestran estas etiquetas directamente. En su lugar, las utilizan para
interpretar y renderizar adecuadamente el contenido en pantalla.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Sample Page</title>
</head>
<body>
<p>Example paragraph</>
<!-- this is a comment -->
</body>
<html/>
Desde entonces, ambas organizaciones han contribuido en paralelo al mantenimiento y mejora del estándar, con
publicaciones tanto en el sitio del W3C (bajo sus derechos de autor) como en el sitio del WHATWG (con una licencia
Definir un único lenguaje de marcado, llamado LAN, que pueda ser escrito tanto en sintaxis HTML como en XML.
Establecer un modelo de procesamiento claro que sea compatible con versiones anteriores de HTML,
asegurando la interoperabilidad entre implementaciones antiguas y modernas.
Mejorar el marcado de documentos, permitiendo una estructuración más semántica y significativa del contenido.
Aunque en muchos contextos los términos HTML y HTML5 se utilizan indistintamente, es importante hacer la
distinción cuando se discuten características específicas introducidas con HTML5. A lo largo de este curso, el
término “HTML” se referirá por defecto a HTML5, salvo que se indique lo contrario.
Características de HTML
HTML5 es la versión más reciente del lenguaje de marcado que se utiliza para estructurar el contenido en la web.
Esta versión no solo extiende las capacidades del HTML tradicional, sino que introduce nuevas herramientas
diseñadas para facilitar el desarrollo de aplicaciones modernas, ricas e interactivas, tanto para navegadores de
escritorio como para dispositivos móviles. Gracias a sus avances, HTML5 se convierte en un entorno ideal para crear
experiencias de usuario fluidas, integradas y accesibles desde múltiples plataformas.
Este tipo de documentos debe tener como tipo de medio text/html . Cuando se transmite un documento con este
tipo de contenido, los navegadores web lo interpretan automáticamente como HTML.
La primera línea suele incluir una declaración de tipo de documento, escrita como <!DOCTYPE html> . Esta línea no es
obligatoria, pero se recomienda como la primera instrucción del documento. No se trata de una etiqueta HTML
propiamente dicha, sino de una indicación al navegador sobre la versión del lenguaje utilizada.
El elemento <html> es el elemento raíz del documento. A partir de este nodo se organizan jerárquicamente todos
los demás elementos del contenido.
Dentro del <html> , normalmente encontramos dos secciones principales: <head> y <body> .
La sección <head> puede contener varios elementos de inicialización y configuración del documento, entre ellos:
<style> : Incluye reglas CSS para definir el aspecto visual del contenido.
compatibilidad.
Por su parte, la sección <body> contiene todo el contenido visible de la página web: textos, imágenes, botones,
formularios, tablas, entre otros.
El DOM es una estructura jerárquica en forma de árbol, donde cada nodo representa una parte del documento. Esta
representación permite que los lenguajes de programación, como JavaScript, puedan acceder, modificar o eliminar
elementos del documento en tiempo real.
Los árboles DOM están formados por varios tipos de nodos:
Nodos de elementos, como encabezados ( <h1> ), párrafos ( <p> ), listas ( <ul> ), etc.
Esta estructura es fundamental para que el contenido sea interactivo y dinámico, ya que permite manipular el
contenido de forma programática y eficiente.
La decisión entre utilizar HTML o XHTML depende principalmente de cómo se planea utilizar la aplicación. Por
ejemplo, si se tiene la intención de usar tecnologías como XSLT (Extensible Stylesheet Language Transformations)
para generar documentos o recursos a partir del contenido, XHTML podría ser una mejor opción.
Aunque HTML y XHTML comparten las mismas etiquetas y estructura semántica, existen diferencias importantes en
cuanto a las reglas de sintaxis:
En XHTML, todas las etiquetas deben estar en minúsculas. En HTML, el uso de mayúsculas o minúsculas es
indistinto.
XHTML exige que todos los elementos estén bien formados. Esto significa que:
Los valores de los atributos deben estar encerrados entre comillas (simples o dobles).
Si el analizador XML encuentra un error de sintaxis (por ejemplo, una etiqueta sin cerrar), el procesamiento se
detiene completamente.
Por el contrario, HTML permite una mayor flexibilidad. Es común encontrar etiquetas sin cerrar, comillas omitidas o
incluso una mezcla de mayúsculas y minúsculas, y el navegador hará su mejor esfuerzo por interpretar el contenido
de forma correcta.
¿Qué es JSFiddle?
JSFiddle es un espacio de pruebas tanto para desarrolladores web novatos como experimentados. Es una aplicación
web en línea que permite a cualquiera experimentar con HTML, CSS y JavaScript. A medida que realizas cambios,
puedes ver el impacto de esos cambios en tiempo real.
Necesitas conocer algunas cosas antes de utilizar JSFiddle de manera efectiva.
Consulta la captura de pantalla a continuación.
3. El área de JavaScript es el lugar donde escribes el código JavaScript para hacer que tu página web sea
interactiva.
4. El área de vista previa es el lugar donde se mostraría tu página web tal como lo haría en un navegador web.
5. El más importante para ti es el botón de “Run”. Siempre que realices cambios en cualquier área, debes hacer clic
en el botón “Run” para actualizar el área de vista previa.
6. Y lo mejor de JSFiddle es que, no importa lo que hagas, ¡no puedes romper nada aquí!
8. Abre una nueva pestaña del navegador. Copia la URL que se muestra a continuación en la barra de direcciones de
la nueva pestaña, presiona Enter o return para abrirla y sigue el resto de las instrucciones.
https://jsfiddle.net/u7oxzgmj/13/
2. La línea número 13 define un párrafo utilizando la etiqueta <p> . La línea número 14 tiene el texto que se muestra
dentro del párrafo.
3. La línea número 16 define una división utilizando la etiqueta <div> . Las líneas número 17 y 18 tienen el texto que se
muestra dentro del div.
d. Azul, rojo, verde, azul claro y amarillo son todos colores válidos. Juega con ellos.
2. La línea número 6 controla la fuente utilizada para mostrar el texto en el elemento ( <p> ).
Nota: Si la alerta no aparece, por favor permite las ventanas emergentes para este sitio web
cambiando la configuración de tu navegador.
1. En el área de JavaScript, la línea número 2 define el mensaje que se muestra cada vez que se hace clic en el
botón “Deseo”.
e. Prueba con "Hola, como estas". Por cierto, eso es “Hello, how are you doing” en español.
2. La línea número 5 tiene una función llamada showtime. Muestra la hora actual.
a. En el área de HTML, la línea número 21 tiene la palabra 'Deseo'. Reemplázala con 'Mostrar Hora'.
Próximos Pasos
Además, HTML5 distingue entre dos tipos de requisitos de conformidad: los de los agentes de usuario (navegadores)
y los de los autores (desarrolladores web). Para los agentes de usuario, HTML5 incluye soporte para muchos
elementos y atributos ya existentes en especificaciones previas. Para los autores, sin embargo, se ha optado por
simplificar el lenguaje mediante la eliminación de algunos de estos elementos y atributos obsoletos, favoreciendo una
escritura más limpia y moderna del código.
Compatibilidad con múltiples dispositivos: La mayoría de los dispositivos actuales cuentan con navegadores
que admiten funciones de HTML5, facilitando el desarrollo multiplataforma.
Mejor experiencia de usuario mediante APIs: HTML5 incluye APIs para elementos avanzados como
animaciones, gráficos, audio y video, que enriquecen la interacción con el usuario.
Rendimiento optimizado: La combinación eficiente de HTML5 con CSS puede reducir la cantidad de imágenes
necesarias para la interfaz, resultando en una carga más rápida de las páginas web.
Optimización para motores de búsqueda (SEO): HTML5 permite una mejor indexación de contenido gracias al
uso de atributos y metaetiquetas, que ofrecen información clave a los buscadores sobre el contenido de la
página.
Audio y Video: Facilitan la inclusión y control de medios sin necesidad de complementos externos.
Nuevos tipos de entrada en formularios: Se introducen tipos como email , date , number , que permiten una
validación automática por parte del navegador, eliminando la necesidad de scripts personalizados.
Web Storage (Almacenamiento Web): Permite guardar datos directamente en el navegador, mejorando la
experiencia offline.
Web Workers: Permiten realizar tareas complejas en segundo plano sin interferir con la interacción principal del
usuario con la página, optimizando el rendimiento.
Scripting HTML
Manipulación de imágenes, por ejemplo, cambiarlas al pasar el cursor o mediante botones de navegación.
Estas funciones hacen posible la creación de aplicaciones web más reactivas y atractivas.
Además, HTML5 introduce un tipo de medio llamado "sandbox" que impone restricciones adicionales al contenido,
especialmente cuando se trata de contenido no confiable incrustado desde fuentes externas.
Cuando se incluye un objeto incrustado (como un iframe), si no se especifica el atributo sandbox , dicho contenido
adquiere los mismos permisos que el resto de la página. Esto puede otorgar permisos innecesarios a proveedores
externos, como los responsables de anuncios publicitarios. Para evitar esto, se recomienda siempre usar el atributo
sandbox en las etiquetas que contengan contenido incrustado.
document.images : Devuelve una colección de todos los elementos <img> del documento.
Estos métodos permiten trabajar de forma eficiente con los elementos del DOM, permitiendo modificar contenido,
estilos y atributos según sea necesario.
document.getElementById(id) : Devuelve el elemento que tiene el atributo id especificado. Es útil cuando se conoce el
identificador único de un elemento específico.
document.getElementsByTagName(nombreEtiqueta) : Devuelve una lista de nodos con todos los elementos que coincidan con el
nombre de etiqueta proporcionado. Por ejemplo, se puede utilizar para obtener todos los elementos <p> de una
página.
Estos métodos son fundamentales para implementar funcionalidades basadas en la interacción del usuario con los
elementos de la interfaz.
Un ejemplo práctico del uso de scripts consiste en una función que se ejecuta al hacer clic en un botón de envío. En
este caso:
Este comportamiento permite validar datos en el cliente antes de enviarlos al servidor, mejorando la eficiencia del
proceso.
Uno de los navegadores que ofrece un soporte más completo y actualizado para HTML5 es Google Chrome. Elegir un
navegador como este puede simplificar la implementación de tecnologías web modernas.
Google Chrome: muestra un calendario emergente que facilita al usuario la selección de fechas.
Microsoft Edge: utiliza controles de tipo spinner (cuadros giratorios) para la selección de fecha.
Mozilla Firefox: presenta un campo de texto simple, sin controles interactivos, lo que implica que el usuario debe
introducir la fecha manualmente, aumentando la posibilidad de errores de formato.
Estas diferencias también afectan el formato en que se presenta la fecha. Algunos navegadores usan el formato AAAA-
type="date" :
Olive: Soporte parcial. La función puede estar disponible, pero con limitaciones.
Estas tablas son dinámicas, ya que el nivel de soporte cambia conforme se lanzan nuevas versiones de navegadores.
Por lo tanto, es recomendable verificar periódicamente las fuentes de compatibilidad.
Si el navegador no admite completamente ese elemento HTML5, el objeto creado carecerá de propiedades
específicas. Como resultado, se puede asumir que no existe soporte completo.
En este ejemplo, el script crea un elemento de entrada y le asigna el atributo type="date" . Luego verifica si el atributo se
mantiene como "date" . Si no es así, es porque el navegador no reconoce ese tipo y lo ha degradado a un campo de
texto genérico.
<!DOCTYPE html>
<html>
<head>
<!-- Metadata goes here -->
</head>
<body>
<!-- Content goes here -->
</body>
</html>
Puedes definir el título del navegador utilizando la etiqueta <title> , que se coloca dentro de la sección <head> de tu
marcado HTML de la siguiente manera:
<head>
<title>Sample Page Title</title>
</head>
Encabezados de Página
Puedes separar tu información en diferentes secciones utilizando encabezados, como se puede ver en esta lectura.
HTML define seis tamaños de fuente diferentes para los encabezados. Cada encabezado representa un nivel
diferente de importancia y tamaño de texto.
Los encabezados HTML se definen con las siguientes etiquetas: <h1> , <h2> , <h3> , <h4> , <h5> , y <h6> . El número en
estas etiquetas especifica la importancia, siendo <h1> el encabezado más grande y <h6> el encabezado más
pequeño.
Dado que este elemento define el contenido dentro de una página web, debe colocarse en la sección <body> de tu
marcado de la siguiente manera:
<body>
<h1>Most Important (and Largest) Heading</h1>
<h6>Least Important (and Smallest) Heading</h6>
</body>
Agregar Texto
La etiqueta <p> debe usarse para insertar texto en tu documento HTML. Este elemento significa párrafo (paragraph )
e incluye cualquier contenido de texto, ya sea una sola palabra o un ensayo de 10 páginas.
<body>
<h1>Most Important (and Largest) Heading</h1>
<p>This is some text. The content within this paragraph element can be as short or as long as needed.</p>
<h6>Least Important (and Smallest) Heading</h6>
<p>This is another paragraph of text.</p>
</body>
<body>
<p>This is some text that needs to be split up <br>here, <br>here, and <br>here.</p>
</body>
Los hipervínculos se insertan normalmente en el texto de modo que al hacer clic en algún texto hipervinculado, te
lleva al destino. Por ejemplo, si deseas hipervincular la palabra “IBM” al sitio web oficial de IBM, puedes usar la
etiqueta <a> con el atributo href como se muestra a continuación:
<a href="https://www.ibm.com">IBM</a>
En el ejemplo anterior, cada vez que un usuario hace clic en el texto “IBM”, se abrirá el sitio web de IBM en la pestaña
actual.
Si deseas que un hipervínculo abra un destino determinado en una nueva pestaña, puedes hacerlo
añadiendo target="_blank" a la etiqueta <a> de la siguiente manera:
Los hipervínculos también pueden enlazar a otros lugares en la misma página. Puedes enlazar a la parte superior de
la página actual de las siguientes dos maneras:
Para enlazar a una sección diferente de la página, puedes usar el id de la sección a la que deseas enlazar, de la
siguiente manera:
Cada punto dentro de una lista estará encerrado por una etiqueta de apertura y cierre <li> , que representa
un elemento de lista. Esta misma etiqueta se utiliza tanto para listas ordenadas como desordenadas.
Una tabla se crea con HTML utilizando la etiqueta <table> . Dentro de la tabla, cada fila de datos se representa
utilizando la etiqueta <tr> (fila de tabla). Los encabezados de columna o fila se pueden especificar mediante el
elemento <th> (encabezado de tabla). Finalmente, cada elemento de datos dentro de las celdas de la tabla se
especifica utilizando la etiqueta <td> (datos de tabla).
El tamaño de una imagen también se puede (opcionalmente) especificar utilizando los atributos ‘width’ y ‘height’, con
los números indicados en píxeles.
Resumen Sección I:
HTML proporciona la estructura básica y el contenido de una página web mediante etiquetas.
El scripting proporciona una experiencia de usuario más interactiva al navegar por las páginas web.
Las cajas de arena ( sandbox ) HTML5 ayudan a gestionar los iframe mashups.
Las tablas de compatibilidad con navegadores HTML5 describen qué navegadores son compatibles con qué
características HTML5.
Existen dos tipos de CSS para diseñar sitios web: fluido y fijo.
Glosario
Término Definición
"Modelo de Objetos del Documento" es la representación de datos de los objetos que componen la estructura y
DOM Tree
el contenido de un documento en la web.
Un "Lenguaje de Marcado Extensible" diseñado para almacenar y transportar datos, permitiendo a los usuarios
XML
definir sus propios lenguajes de marcado, principalmente para mostrar documentos en la web.
XHTML Un "Lenguaje de Marcado de Hipertexto Extensible" similar a HTML pero con reglas de formato más estrictas.
Web Storage
APIs que permiten el almacenamiento de datos en un navegador.
APIs
<!DOCTYPE html>
Contiene el contenido <html>
del documento HTML. <head>
Debe contener todas las <!-- Metadatos aquí -->
<body> demás etiquetas además </head>
del elemento <head> <body>
para mostrar el cuerpo <!-- Cuerpo del documento aquí -->
del documento. </body>
</html>
Agrega un encabezado
<h1> de nivel 1 al documento <h1>Thomas J. Watson</h1>
HTML.
<!DOCTYPE html>
<html>
Contiene metadatos y <head>
debe colocarse después <!-- Metadatos aquí -->
<head> de la etiqueta <html> y </head>
antes de la etiqueta <body>
<body>. <!-- Cuerpo del documento aquí -->
</body>
</html>
<!DOCTYPE html>
<html>
El elemento raíz de un
<head>
documento HTML. Todas
<!-- Metadatos aquí -->
las demás etiquetas en
<html> </head>
el documento deben
<body>
estar contenidas en esta
<!-- Cuerpo del documento aquí -->
etiqueta.
</body>
</html>
Se utiliza para
<head>
proporcionar metadatos
<meta> <meta name=“author” content=“Christopher Moore”>
sobre el documento
</head>
HTML.
<table>
<tr>
Esta etiqueta se utiliza
<th>Celda de encabezado 1</th>
para denotar una tabla.
<th>Celda de encabezado 2</th>
Debe usarse con las
</tr>
etiquetas <tr> (define
<tr>
una fila de tabla) y <td>
<td>Primera fila primera celda</td>
<table> (define una celda de
<td>Primera fila segunda celda</td>
tabla dentro de una fila).
</tr>
La etiqueta <th> también
<tr>
se puede usar para
<td>Segunda fila primera celda</td>
definir la fila de
<td>Segunda fila segunda celda</td>
encabezado de la tabla.
</tr>
</table>
<table>
<tr>
<th>Celda de encabezado 1</th>
<th>Celda de encabezado 2</th>
</tr>
Denota las celdas de <tr>
encabezado dentro de <td>Primera fila primera celda</td>
<th>
una fila dentro de una <td>Primera fila segunda celda</td>
tabla. </tr>
<tr>
<td>Segunda fila primera celda</td>
<td>Segunda fila segunda celda</td>
</tr>
</table>
<title> Define el título del <!DOCTYPE html>
documento HTML que se <html>
<table>
<tr>
<th>Celda de encabezado 1</th>
<th>Celda de encabezado 2</th>
</tr>
<tr>
Denota una fila dentro de <td>Primera fila primera celda</td>
<tr>
una tabla. <td>Primera fila segunda celda</td>
</tr>
<tr>
<td>Segunda fila primera celda</td>
<td>Segunda fila segunda celda</td>
</tr>
</table>