Duración estimada: 2 horas
Objetivos de aprendizaje
- Insertar imágenes con la etiqueta <img> usando atributos src y alt correctamente
- Crear listas ordenadas y desordenadas con <ol>, <ul> y <li>
- Estructurar datos tabulares con <table>, <thead>, <tbody> y <tr>
- Añadir audio y vídeo a una página con las etiquetas <audio> y <video>
- Utilizar enlaces internos, externos y anclas con <a>
Sesión 02 - HTML Avanzado
Contenidos de la Sesión
1. Imágenes en HTML
Las imágenes son elementos fundamentales para crear páginas web visualmente atractivas. HTML permite insertar imágenes mediante la etiqueta <img>, que es un elemento vacío (no tiene etiqueta de cierre).
Etiqueta <img>:
La etiqueta <img> es un elemento auto-cerrado que se utiliza para incrustar imágenes en una página web.
Atributos principales:
src: (obligatorio) Especifica la ruta o URL de la imagen. Puede ser una ruta relativa (./img/foto.png), absoluta (/images/foto.png), o una URL externa (https://ejemplo.com/foto.png).alt: (recomendado) Proporciona texto alternativo que se muestra si la imagen no se carga. Es esencial para accesibilidad (lectores de pantalla) y SEO.widthyheight: Definen las dimensiones de la imagen. Se pueden especificar en píxeles (width="200") o porcentajes. Usarheight="40px"establece el alto.title: Texto que aparece al pasar el cursor sobre la imagen.
Ejemplo:
<img src="./img/psyduck.png" alt="Psyduck Pokemon" height="40px" />
Buenas prácticas:
- Siempre incluir el atributo
altpara accesibilidad - Optimizar el tamaño de las imágenes antes de subirlas
- Usar formatos apropiados (JPEG para fotos, PNG para gráficos con transparencia, SVG para iconos)
- Considerar imágenes responsive para diferentes dispositivos
2. Listas en HTML
Las listas permiten organizar y presentar información de manera estructurada. HTML ofrece tres tipos principales de listas.
Listas Desordenadas (<ul>)
Las listas desordenadas se utilizan cuando el orden de los elementos no es importante. Por defecto, los elementos se marcan con viñetas.
Estructura:
<ul>
<li>Elemento 1</li>
<li>Elemento 2</li>
<li>Elemento 3</li>
</ul>
Atributo type:
type="disc": Círculo relleno (por defecto)type="circle": Círculo vacíotype="square": Cuadrado relleno
Ejemplo:
<ul type="square">
<li>Java</li>
<li>JavaScript</li>
<li>Python</li>
</ul>
Listas Ordenadas (<ol>)
Las listas ordenadas se utilizan cuando el orden de los elementos es relevante. Los elementos se numeran automáticamente.
Estructura:
<ol>
<li>Primer paso</li>
<li>Segundo paso</li>
<li>Tercer paso</li>
</ol>
Atributos:
type: Tipo de numeracióntype="1": Números (1, 2, 3…) - por defectotype="A": Letras mayúsculas (A, B, C…)type="a": Letras minúsculas (a, b, c…)type="I": Números romanos mayúsculas (I, II, III…)type="i": Números romanos minúsculas (i, ii, iii…)
start: Número desde el cual comienza la lista (ej:start="10")
Ejemplo:
<ol type="i" start="10">
<li>Elemento 10</li>
<li>Elemento 11</li>
</ol>
Listas Anidadas
Las listas pueden anidarse para crear jerarquías:
<ul>
<li>Java</li>
<ul>
<li>C</li>
<li>C++</li>
<li>C#</li>
</ul>
<li>Python</li>
</ul>
3. Tablas en HTML
Las tablas permiten organizar datos en filas y columnas, siendo ideales para presentar información estructurada de manera clara.
Estructura básica:
<table>
<thead>
<tr>
<th>Encabezado 1</th>
<th>Encabezado 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dato 1</td>
<td>Dato 2</td>
</tr>
</tbody>
</table>
Elementos principales:
<table>: Contenedor principal de la tabla<thead>: Agrupa las filas de encabezado de la tabla<tbody>: Agrupa las filas de contenido de la tabla<tr>: Define una fila (table row)<th>: Define una celda de encabezado (table header) - texto en negrita y centrado por defecto<td>: Define una celda de datos (table data)
Atributos útiles:
rowspan: Fusiona celdas verticalmente (ej:rowspan="2"combina dos filas)colspan: Fusiona celdas horizontalmente (ej:colspan="3"combina tres columnas)
Ejemplo con rowspan:
<table>
<tbody>
<tr>
<th>Castellano</th>
<td rowspan="2"><strong>nativo</strong></td>
</tr>
<tr>
<th>Catalán</th>
</tr>
</tbody>
</table>
Usos apropiados:
- Tablas deben usarse SOLO para datos tabulares
- NO usar tablas para diseño o maquetación (usar CSS en su lugar)
- Incluir
<thead>y<tbody>para mejor accesibilidad
4. Contenedores: <div> y <span>
Los contenedores son elementos genéricos que se utilizan para agrupar y aplicar estilos a contenido.
El elemento <div>
<div> es un contenedor de nivel de bloque que se usa para agrupar elementos relacionados.
Características:
- Elemento de bloque (comienza en una nueva línea)
- Ocupa todo el ancho disponible
- Se utiliza para estructurar secciones de la página
- Ideal para aplicar estilos CSS a grupos de elementos
Ejemplo:
<div>
<h2>Título de sección</h2>
<p>Contenido de la sección</p>
</div>
El elemento <span>
<span> es un contenedor en línea que se usa para aplicar estilos a partes específicas de texto.
Características:
- Elemento en línea (no comienza en una nueva línea)
- Ocupa solo el espacio necesario
- Se utiliza para estilizar partes de texto dentro de un párrafo
- No afecta el flujo del documento
Ejemplo:
<p>Lorem ipsum <span>dolor</span> sit amet</p>
5. Enlaces Externos y Atributos
Enlaces a Sitios Externos
Los enlaces externos apuntan a páginas fuera de tu sitio web.
Atributo target:
target="_blank": Abre el enlace en una nueva pestaña o ventanatarget="_self": Abre el enlace en la misma ventana (por defecto)target="_parent": Abre el enlace en el marco padretarget="_top": Abre el enlace en la ventana completa
Ejemplo:
<a href="https://instagram.com/usuario" target="_blank">Ver mi Instagram</a>
Buenas prácticas:
- Usar
target="_blank"para enlaces externos para mantener al usuario en tu sitio - Considerar añadir
rel="noopener noreferrer"por seguridad al usartarget="_blank"
Enlaces Internos Entre Páginas
Los enlaces internos conectan diferentes páginas dentro del mismo sitio:
<a href="./proyecto1.html">Ir a ver el proyecto</a>
<a href="./index.html">Volver a la página principal</a>
6. Elementos Multimedia (Audio y Video)
HTML5 introduce soporte nativo para multimedia sin necesidad de plugins externos.
Video
La etiqueta <video> permite incrustar videos:
<video src="./img/video.mp4" autoplay muted loop controls></video>
Atributos:
src: Ruta del archivo de videocontrols: Muestra controles de reproducciónautoplay: Reproduce automáticamente al cargarmuted: Silencia el audio (necesario para autoplay en muchos navegadores)loop: Reproduce en buclewidthyheight: Dimensiones del reproductor
Audio
La etiqueta <audio> permite incrustar audio:
<audio src="./img/audio.ogv" controls></audio>
Atributos:
src: Ruta del archivo de audiocontrols: Muestra controles de reproducciónautoplay: Reproduce automáticamenteloop: Reproduce en buclemuted: Silencia el audio
Formatos soportados:
- Video: MP4, WebM, Ogg
- Audio: MP3, WAV, Ogg
Ejemplo
Hello World 2 - Curriculum Vitae Avanzado
Aquí encontrarás un ejemplo práctico que amplía el CV de la sesión anterior con características HTML avanzadas.
Archivos del ejemplo:
index.html: CV mejorado con imágenes, tablas, listas y estilos CSSproyecto1.html: Página secundaria que demuestra la navegación entre páginashola/mundo.html: Archivo auxiliar que muestra la estructura básica de etiquetasimg/: Carpeta con recursos multimedia (imágenes, videos, audio)
Características implementadas:
- Imagen integrada: Logo de Psyduck con atributo
heightpara controlar el tamaño - Estilos CSS: Uso de la etiqueta
<style>en el<head>para estilizar elementos<span> - Contenedores: Uso de
<div>para organizar secciones del CV - Tabla de idiomas: Tabla con
<thead>,<tbody>, y uso derowspanpara fusionar celdas - Listas desordenadas: Lista de lenguajes de programación con
type="square"y listas anidadas - Listas ordenadas: Múltiples ejemplos con diferentes tipos de numeración (
type="i") y atributostart - Enlaces externos: Enlace a Instagram con
target="_blank"para abrir en nueva pestaña - Enlaces internos: Navegación entre
index.htmlyproyecto1.html - Elementos multimedia comentados: Ejemplos de
<video>y<audio>listos para usar - Énfasis con
<span>: Resaltado de palabras específicas dentro de párrafos
Cómo visualizar el ejemplo:
- Abre VS Code y navega al directorio del proyecto
- Abre el archivo
sessions/session02/examples/helloworld-2/index.html - Haz clic derecho en
index.html - Selecciona “Open with Live Server”
- La página se abrirá en tu navegador predeterminado
- Prueba los diferentes enlaces para ver la navegación entre páginas
Comparación con Session 01:
Session 02 introduce elementos más avanzados que no estaban en Session 01:
- Imágenes y multimedia
- Tablas con fusión de celdas
- Listas ordenadas y desordenadas con diferentes estilos
- CSS básico para estilizar elementos
- Contenedores
<div>y<span>para mejor estructura - Enlaces que abren en nuevas pestañas
Recursos Adicionales
- MDN Web Docs - Imágenes en HTML
- MDN Web Docs - Tablas
- MDN Web Docs - Listas
- MDN Web Docs - CSS Básico
- MDN Web Docs - Video
- MDN Web Docs - Audio
Ejercicios prácticos
-
1. Galería de imágenes
Crea una página HTML con al menos 5 imágenes, cada una con un atributo alt descriptivo y un pie de foto.
-
2. Tabla de horarios
Construye una tabla que represente el horario semanal de clase con cabeceras de columna (días) y fila (horas).
-
3. Página de receta
Crea una página con una receta de cocina: ingredientes en lista no ordenada, pasos en lista ordenada y una imagen del plato.
Checklist final
Al terminar esta sesión deberías ser capaz de:
- Sé insertar imágenes con src y alt correctos
- Puedo crear listas ordenadas y no ordenadas
- Sé construir una tabla HTML básica con cabeceras
- Puedo añadir un vídeo o audio con controles a una página
- Sé crear enlaces a otras páginas y a secciones dentro de la misma página