¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Fundamentos de la web en el navegador

Aquí está la lección completa para leer. Crea una cuenta gratuita para practicarla en un laboratorio en vivo.

Laboratorio de contenedores12 min de lectura8 comandos

Tres trabajos en una sola página

Una cafetería tiene una página con el menú del día: una lista de platos, un cuadro para buscar uno y un botón para un tema oscuro. Alguien tiene que decir qué hay en la página, alguien cómo se ve y alguien qué hace cuando se pulsa un botón. En la web son tres lenguajes, cada uno con su trabajo.

Al terminar esta lección

Nota

Puedo decir qué hacen HTML, CSS y JavaScript en una página web, y comprobar una página con un script corto.

Palabras clave

  • HTML: el lenguaje que dice qué hay en una página: títulos, listas, enlaces, formularios.
  • Elemento: una parte de una página, escrita como una etiqueta, por ejemplo h2 o li.
  • CSS: el lenguaje que dice cómo se ven los elementos.
  • Selector: la parte de una regla CSS que dice para qué elementos vale.
  • Declaración: un ajuste dentro de una regla, como margin: 1rem.
  • Modelo de caja: cada elemento es una caja con contenido, relleno, borde y margen.
  • DOM: la página tal como la guarda el navegador, que JavaScript puede leer y cambiar.
  • Evento: algo que ocurre en la página, como un clic.

Para empezar: lo que ya sabes

Nota

Responde en tu cabeza. 1. ¿Sobre qué haces clic para pasar de una página web a otra? 2. Nombra dos cosas de un texto en una página que podrías cambiar, como su color. 3. ¿Qué esperas que pase cuando pulsas un botón de una página? Respuestas: un enlace; su tamaño, su tipo de letra o su color; algo cambia o aparece un mensaje.

Antes de empezar

Nota

Pulsa Iniciar el laboratorio en la barra de arriba de la lección y espera a que diga que está en marcha. Hay un solo contenedor, jupyter, y el terminal llega a su Python con docker exec jupyter, que ejecuta una orden dentro de él. Tiene dos enlaces. JupyterLab, el primero, es el editor, en el puerto 8888. Preview (la vista previa), el segundo, es la propia página, en el puerto 8000. Cada botón Ejecutar de abajo escribe su orden en el terminal de tu laboratorio, una detrás de otra en la misma sesión. Para verlas o escribir las tuyas, pulsa Abrir terminal (pestaña nueva) en la barra.

Una página son unos pocos archivos sencillos

ls site lista los tres archivos de la página: index.html para lo que hay en ella, style.css para cómo se ve y app.js para lo que hace. La segunda orden imprime sus tamaños: 1373, 1125 y 1093 bytes, 3591 en total. Eso es una página entera. Abre Preview para verla y JupyterLab para leer los archivos.

Comando
docker exec jupyter ls site

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
docker exec jupyter python3 steps/sizes.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

El HTML da estructura a la página

El script lee index.html como empieza a hacerlo un navegador, etiqueta por etiqueta. Cuenta 36 etiquetas en total. a y li aparecen cinco veces cada una y section tres. El segundo script imprime solo los títulos, que son el esquema de la página: un h1, Lunch menu, y debajo tres títulos h2. Los títulos no sirven para agrandar el texto. Son la manera en que la página dice de qué trata, y lo que un lector de pantalla usa para saltar de un sitio a otro.

Comando
docker exec jupyter python3 steps/tags.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
docker exec jupyter python3 steps/outline.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comprueba

Consejo

¿Cuántos títulos h2 tiene la página y cuál es el h1? Respuesta: tres, y el h1 es Lunch menu.

Las reglas CSS dicen cómo se ve, y el modelo de caja cómo se dimensiona

Una regla CSS es un selector y unas declaraciones entre llaves. El script encuentra 17 reglas y 39 declaraciones, y el ajuste más usado es padding, seis veces. Cada elemento es una caja: su contenido, luego el relleno por dentro, luego un borde, luego el margen por fuera. La regla de .dish fija padding, margin-bottom, border y border-radius, por eso cada plato es una tarjeta con borde y espacio alrededor. Cuando dos reglas llegan a un mismo elemento, gana el selector más específico, y entre iguales la última. Eso es la cascada. body.dark es más específico que body, así que una página oscura cambia los colores. Cambia un valor en style.css, guarda, recarga Preview y vuelve a ejecutar el script.

Comando
docker exec jupyter python3 steps/css.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

JavaScript reacciona a los eventos cambiando el DOM

El script lee app.js para ver qué define y qué espera. Tiene dos funciones, filterDishes y toggleTheme, y tres oyentes: submit e input en el cuadro de búsqueda y click en el botón del tema. Cuando ocurre uno de esos eventos, la función cambia el DOM, la página que guarda el navegador. Pruébalo en Preview: escribe tom en el cuadro y la lista se reduce a los dos platos que contienen esas letras; luego pulsa Dark theme. No hay ninguna biblioteca ni llamada de red, solo lo que el navegador ya tiene.

Comando
docker exec jupyter python3 steps/js.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comprobar una página es parte de hacerla

Una página que se ve bien puede estar rota. El primer script lista cada enlace y si lleva a algún sitio: tres enlaces se quedan en la página y cada uno encuentra su destino, uno va a un archivo de aquí y otro a otro sitio. El segundo pide la página al servidor de Preview, como hace un navegador, e imprime el estado 200, el título Lunch menu y que style.css vuelve como text/css. Un estado 404 significaría que falta un archivo que la página pide.

Comando
docker exec jupyter python3 steps/links.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
docker exec jupyter python3 steps/serve.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente piensa que Preview cambia en cuanto escribe. No es así. Muestra los archivos guardados: guarda en el editor y luego recarga Preview. Si la página parece igual, comprueba las dos cosas. El navegador también puede conservar una copia antigua de un archivo, así que a veces ayuda una recarga forzada.

Las mismas comprobaciones en un cuaderno

Abre JupyterLab desde la barra y haz doble clic en start.ipynb. Sus celdas leen los mismos archivos en Python: cuentan las etiquetas, listan las reglas CSS y piden la página a Preview. Haz clic en una celda y pulsa Mayús y Intro para ejecutarla. La última celda es para tu propio cambio: edita style.css, guarda y vuelve a contar las reglas.

Comprobación final

Consejo

Responde sin mirar atrás. 1. ¿Qué lenguaje dice qué hay en una página, cuál dice cómo se ve y cuál dice qué hace? 2. ¿Cuáles son las cuatro capas del modelo de caja, de dentro afuera? 3. ¿Qué decide la cascada? 4. ¿Por qué Preview no cambia cuando solo escribes en el editor? Respuestas: HTML, CSS, JavaScript; contenido, relleno, borde, margen; qué regla gana cuando dos llegan a un mismo elemento; Preview muestra los archivos guardados, así que hay que guardar y recargar.

Para el profesorado

Consejo

Esta lección es un pequeño ejemplo de una lección practicada en un laboratorio: los pasos y los botones Ejecutar son la lección, y el laboratorio es la copia propia de cada alumno. El laboratorio es un solo servicio, JupyterLab con una vista previa en directo de una página pequeña, y nada de lo que hay aquí se corrige solo: el alumno entrega su propia versión de los tres archivos de site, descargados desde JupyterLab, y una frase sobre un cambio y lo que hizo. Ideas clave: 1. HTML es la estructura, CSS el estilo y JavaScript el comportamiento. 2. Cada elemento es una caja y la cascada decide qué regla gana. 3. Una página se comprueba, no solo se mira. Error frecuente: esperar que Preview cambie antes de guardar el archivo. Material: el laboratorio y un navegador. Consejo: pida al alumnado que prediga qué hará un cambio antes de recargar. La página y los scripts se escriben a partir de un texto fijo, así que todas las copias dan los mismos números. Cópiela en su propio módulo y modifíquela, o cree una desde cero con el menú Laboratorio del constructor de lecciones.

Sobre este laboratorio y su código: Laboratorio de web en el navegador: HTML, CSS y JavaScript con vista previa en directo

¿Enseñas a una clase? Asigna estas lecciones a tus estudiantes con calificación y un laboratorio para cada uno.