Estudia por tu cuenta · Programación · curso 22 de 24
HTML y CSS: tu primera página
Una página web es un archivo de texto con etiquetas. Aquí aprendes a escribirlo tú: títulos, párrafos, listas, enlaces, imágenes y tablas con HTML, y colores, tamaños y acomodo con CSS. Al final armas tu propia página personal y la abres en el navegador.
<h1>Mi página</h1>\n<style> h1 { color: red } </style>Antes de empezar: nada especial: saber escribir en el teclado y abrir un navegador. Todo lo pruebas en el Taller web de la sala.
Qué es una página web
Lección 1 de 10
Una página es un archivo de texto con etiquetas. El navegador lo lee de arriba abajo y lo dibuja. HTML dice qué hay; CSS dice cómo se ve.
Lo que hay que saber
Cuando abres una página en Chrome, Edge o Firefox, el navegador recibe un archivo de texto y lo lee de arriba abajo. Ese texto no es cualquier texto: trae etiquetas, palabras entre signos de menor y mayor, como <h1>, que le dicen al navegador qué es cada cosa: «esto es un título», «esto es un párrafo», «aquí va una imagen».
Ese lenguaje de etiquetas se llama HTML. Pone el contenido: qué hay en la página y en qué orden. Hay otro lenguaje, CSS, que pone el aspecto: colores, tamaños, tipos de letra y dónde se acomoda cada cosa. Primero vamos con HTML (lecciones 1 a 4) y luego con CSS (5 a 9).
Las etiquetas casi siempre van en pareja: una que abre y una que cierra. La de cierre es igual pero con una diagonal: <p> abre un párrafo y </p> lo cierra. Lo que queda entre las dos es el contenido de la etiqueta.
Esta es la página más chica que se puede escribir. Fíjate en las cuatro partes: la primera línea le dice al navegador «esto es HTML moderno»; <html> envuelve todo; <head> guarda información que no se ve en la ventana (como el título de la pestaña); <body> es el cuerpo, lo que sí se ve.
<!doctype html>
<html>
<head>
<title>Mi primera página</title>
</head>
<body>
<h1>Hola, mundo</h1>
<p>Esta es mi primera página.</p>
</body>
</html>
Hola, mundo
Esta es mi primera página.
El texto de <title> aparece en la pestaña del navegador, no en la ventana. Los espacios al principio de cada línea son solo para que tú lo leas ordenado: el navegador los ignora.
Cómo guardarla y abrirla. Abre el Bloc de notas (o cualquier editor de texto), escribe el código y guárdalo con un nombre que termine en .html, por ejemplo mi-pagina.html. Luego dale doble clic al archivo: se abre en el navegador. Si lo guardas como .txt, el navegador lo enseña como texto y no como página. En el Taller web de la sala no necesitas guardar nada: escribes a la izquierda y la página aparece a la derecha.
Así se hace, paso a paso
Tu primera página en cuatro pasos
Paso 1 · El esqueleto. Escribe las cuatro partes: <!doctype html>, <html>, dentro <head> y <body>, y cierra </html> al final.
Paso 2 · El título de la pestaña. Dentro de head: <title>Página de Leo</title>.
Paso 3 · El contenido. Dentro de body: un título <h1>Soy Leo</h1> y un párrafo <p>Me gusta el fútbol.</p>.
Paso 4 · Guarda y abre. Guarda como leo.html y dale doble clic.
<!doctype html>
<html>
<head>
<title>Página de Leo</title>
</head>
<body>
<h1>Soy Leo</h1>
<p>Me gusta el fútbol.</p>
</body>
</html>
En la pestaña dice «Página de Leo»; en la ventana, un título grande «Soy Leo» y abajo «Me gusta el fútbol.»
Olvidar la diagonal al cerrar. <p>Hola<p> abre dos párrafos y no cierra ninguno. El cierre es </p>, con la diagonal antes de la palabra.
Guardar como .txt. Si el archivo se llama pagina.txt, al abrirlo ves el código, no la página. Tiene que terminar en .html.
Poner el título en el body. <title> va dentro de <head>. El título que se ve grande en la ventana es <h1>, y ese sí va en el body.
Ejercicios
- ¿Qué etiqueta cierra a
<h1>?ver la respuesta
</h1>Cómo se llega- La misma palabra con una diagonal antes.
- ¿Qué se ve en la ventana del navegador con este código?
<head> <title>Mi mascota</title> </head> <body> <h1>Mi perro Max</h1> </body>
ver la respuesta
Solo «Mi perro Max», en grande. «Mi mascota» va en la pestaña.Cómo se llega- Lo del head no se ve en la ventana.
- Lo del body sí: el h1 se ve grande.
- ¿Qué etiqueta falta?
<html> <head> <title>Gustos</title> </head> <body> <p>Me gusta dibujar.</p> </html>ver la respuesta
</body> (el cierre del cuerpo)Cómo se llega- Cuenta: body abre pero no cierra.
- Va antes de </html>.
- Corrige el error:
<p>Hola a todos<p>ver la respuesta
<p>Hola a todos</p>Cómo se llega- La segunda etiqueta debe cerrar: lleva diagonal.
- Escribe el HTML de una página cuya pestaña diga «Sofi» y que muestre el título «Hola, soy Sofi» y el párrafo «Tengo 12 años».
ver la respuesta
<!doctype html><html><head><title>Sofi</title></head><body><h1>Hola, soy Sofi</h1><p>Tengo 12 años</p></body></html>Cómo se llega- Esqueleto: doctype, html, head, body.
- title dentro de head; h1 y p dentro de body.
- Cierra todo lo que abriste.
Títulos, párrafos y texto
Lección 2 de 10
h1 a h6 son títulos del más grande al más chico, p es un párrafo, br un salto de línea, b negritas, i cursiva. Los saltos y espacios de más se juntan en uno.
Lo que hay que saber
Casi todo lo que hay en una página es texto, y el HTML tiene una etiqueta para cada tipo de texto:
| Etiqueta | Qué es | Cómo se ve |
|---|---|---|
| <h1> … <h6> | títulos (h1 el más importante, h6 el menos) | grande y en negritas; h1 es el más grande |
| <p> | un párrafo | un bloque de texto con espacio arriba y abajo |
| <br> | salto de línea (no se cierra) | el texto sigue en el renglón de abajo |
| <b> o <strong> | negritas | así |
| <i> o <em> | cursiva | así |
| <!-- … --> | comentario | no se ve; es una nota para ti |
Normalmente una página tiene un solo h1 (el título de la página) y varios h2 para las secciones. No escojas h3 «porque es del tamaño que me gusta»: el tamaño se cambia con CSS (lección 5); las h son para decir qué tan importante es el título.
<h1>Mis gustos</h1> <h2>Deportes</h2> <p>Juego <b>fútbol</b> los sábados.<br>Y a veces básquet.</p> <!-- esto es una nota, no se ve --> <p>Mi equipo favorito es <i>Pumas</i>.</p>
Mis gustos
Deportes
Juego fútbol los sábados.
Y a veces básquet.
Mi equipo favorito es Pumas.
Por eso este código se ve en un solo renglón: «Hola a todos»:
<p>Hola
a todos</p>
Acentos y ñ. Si las letras con acento salen raras (como «Música»), es que el navegador no sabe en qué alfabeto está escrito el archivo. Se arregla con una línea dentro del head: <meta charset="utf-8">. Ponla siempre, justo después de <head>. Es de las que no se cierran.
Las etiquetas se pueden anidar (una dentro de otra), pero se cierran en orden inverso, como cajas: <p>Hola <b>amigo</b></p>. La que abrió al último cierra primero.
Así se hace, paso a paso
Escribir una ficha de mi mascota
Paso 1 · El título. Es lo más importante de la página: <h1>Mi gata Luna</h1>.
Paso 2 · Un párrafo con algo resaltado. <p>Tiene <b>tres años</b> y es gris.</p>.
Paso 3 · Un subtítulo y un párrafo con dos renglones. <h2>Lo que le gusta</h2> y luego <p>Dormir.<br>Comer.</p>.
Paso 4 · Los acentos. Como escribí «años», pongo <meta charset="utf-8"> en el head.
<head> <meta charset="utf-8"> <title>Luna</title> </head> <body> <h1>Mi gata Luna</h1> <p>Tiene <b>tres años</b> y es gris.</p> <h2>Lo que le gusta</h2> <p>Dormir.<br>Comer.</p> </body>
Mi gata Luna
Tiene tres años y es gris.
Lo que le gusta
Dormir.
Comer.
Título grande, párrafo con «tres años» en negritas, subtítulo y dos renglones.
Dar Enter para bajar de renglón. En el código puedes dar todos los Enter que quieras: el navegador los ignora. Para bajar de renglón se usa <br>.
Cerrar en desorden. <p><b>Hola</p></b> está mal: la b abrió al último, así que cierra primero: <p><b>Hola</b></p>.
Usar h4 porque «se ve chiquito y bonito». Las h dicen importancia, no tamaño. El tamaño se cambia con CSS.
Ejercicios
- ¿Qué etiqueta hace el título más grande de la página?
ver la respuesta
<h1>Cómo se llega- h1 es el más importante y el más grande; h6 el más chico.
- ¿Qué se ve con este código?
<p>Me gusta la <i>música</i> y el <b>dibujo</b>.</p>
ver la respuesta
Un párrafo: «música» en cursiva y «dibujo» en negritas.Cómo se llega- i = cursiva, b = negritas.
- Lo demás, normal.
- ¿Cuántos renglones se ven?
<p>Lunes<br>Martes<br>Miércoles</p>
ver la respuesta
3 renglonesCómo se llega- Cada <br> baja de renglón: dos br → tres renglones.
- ¿Qué etiqueta falta para que «Canción» no se vea como «Canción»?
ver la respuesta
<meta charset="utf-8"> en el headCómo se llega- Las letras raras son problema de alfabeto.
- El meta charset le dice al navegador que lea en utf-8.
- Corrige el error:
<h2><b>Deportes</h2></b>ver la respuesta
<h2><b>Deportes</b></h2>Cómo se llega- Se cierra en orden inverso: la última que abrió (b) cierra primero.
- Escribe el HTML de una página con el título «Mi escuela», un subtítulo «Mis maestros» y un párrafo donde el nombre de tu maestro vaya en negritas.
ver la respuesta
<h1>Mi escuela</h1><h2>Mis maestros</h2><p>Mi maestro es <b>Israel</b>.</p>Cómo se llega- Título principal: h1. Sección: h2.
- Dentro del p, el nombre entre <b> y </b>.
Listas y enlaces
Lección 3 de 10
ul hace lista con puntos, ol con números; cada elemento es un li. Un enlace es <a href="a-donde">texto</a>: a otro archivo tuyo, a otro sitio o a una parte de la misma página con #.
Lo que hay que saber
Para escribir una lista, primero dices de qué tipo es y luego metes los elementos, uno por uno, en etiquetas <li> (de list item):
<ul>es una lista sin orden: cada elemento lleva un punto (unordered list).<ol>es una lista ordenada: el navegador le pone 1, 2, 3… solo (ordered list).
<h2>Lo que me gusta</h2> <ul> <li>Videojuegos</li> <li>Pizza</li> <li>Dibujar</li> </ul> <h2>Cómo hago un sándwich</h2> <ol> <li>Saco dos panes.</li> <li>Les pongo jamón.</li> <li>Los junto.</li> </ol>
Lo que me gusta
- Videojuegos
- Pizza
- Dibujar
Cómo hago un sándwich
- Saco dos panes.
- Les pongo jamón.
- Los junto.
Los enlaces son lo que hace que la web sea una red: un texto en el que haces clic y te lleva a otro lado. Se escriben con la etiqueta <a> y un atributo llamado href que dice a dónde va. Un atributo es un dato extra que se escribe dentro de la etiqueta que abre, con la forma nombre="valor".
El href puede llevar tres cosas:
- Otro archivo tuyo, en la misma carpeta:
<a href="gustos.html">Mis gustos</a>. - Otro sitio, con la dirección completa que empieza con https:
<a href="https://es.wikipedia.org">Wikipedia</a>. - Una parte de la misma página. Le pones un nombre a esa parte con el atributo
id, y en el enlace lo escribes con # adelante:<h2 id="horario">Horario</h2>y arriba<a href="#horario">Ir al horario</a>. Al hacer clic la página baja hasta ahí.
Si quieres que el enlace se abra en una pestaña nueva (muy usado para sitios ajenos), agregas otro atributo: <a href="https://es.wikipedia.org" target="_blank">Wikipedia</a>. Los atributos van separados por un espacio, en cualquier orden.
Así se hace, paso a paso
Un menú con tres enlaces de los tres tipos
Paso 1 · A otra página mía. Tengo el archivo horario.html en la misma carpeta: <a href="horario.html">Mi horario</a>.
Paso 2 · A otro sitio, en pestaña nueva. Dirección completa y target: <a href="https://israelrivas.org" target="_blank">La clase</a>.
Paso 3 · A una parte de esta página. Le pongo id a la sección y lo llamo con #: <a href="#gustos">Mis gustos</a> … y más abajo <h2 id="gustos">Mis gustos</h2>.
Paso 4 · Los junto en una lista.
<ul> <li><a href="horario.html">Mi horario</a></li> <li><a href="https://israelrivas.org" target="_blank">La clase</a></li> <li><a href="#gustos">Mis gustos</a></li> </ul> <h2 id="gustos">Mis gustos</h2>
Mis gustos
Tres renglones azules con punto; el tercero baja hasta «Mis gustos» al hacer clic.
Olvidar las comillas o el href. <a>Mi horario</a> sin href es solo texto: no lleva a ningún lado. Y el valor va entre comillas: href="horario.html".
Poner el li fuera de la lista. Los <li> van dentro de <ul> o <ol>, nunca sueltos.
Olvidar el # en el enlace interno. href="gustos" busca un archivo llamado gustos. Para una parte de la página es href="#gustos".
Ejercicios
- ¿Qué etiqueta hace una lista con números?
ver la respuesta
<ol>Cómo se llega- ol = ordered list (ordenada).
- ul es la de puntos.
- ¿Cuántos elementos tiene esta lista?
<ul> <li>Tacos</li> <li>Pozole</li> <li>Enchiladas</li> <li>Tamales</li> </ul>
ver la respuesta
4Cómo se llega- Cuenta los <li>.
- ¿Qué se ve y qué pasa al hacer clic?
<a href="mascota.html">Mi gato</a>
ver la respuesta
Se ve «Mi gato» en azul subrayado; al hacer clic se abre mascota.html.Cómo se llega- El texto entre las etiquetas es lo que se ve.
- El href es a dónde va.
- ¿Qué está mal?
<ol> <li>Primero</li> <li>Segundo<li> </ol>
ver la respuesta
El segundo li no cierra: debe ser </li>Cómo se llega- Falta la diagonal en el cierre.
- Escribe un enlace que diga «Ver mapa» y abra https://maps.google.com en una pestaña nueva.
ver la respuesta
<a href="https://maps.google.com" target="_blank">Ver mapa</a>Cómo se llega- href con la dirección completa.
- target="_blank" para pestaña nueva.
- El texto entre las etiquetas.
- Tu página tiene
<h2 id="contacto">Contacto</h2>hasta abajo. Escribe un enlace arriba que baje hasta ahí.ver la respuesta
<a href="#contacto">Contacto</a>Cómo se llega- Enlace interno: # y el id.
Imágenes y tablas
Lección 4 de 10
<img src="archivo" alt="qué es"> pone una imagen; no se cierra. Una tabla es filas (tr) con celdas (td); la primera fila lleva encabezados (th).
Lo que hay que saber
Una imagen se pone con <img>. Es una etiqueta que no se cierra (no tiene contenido entre abre y cierra: todo va en atributos):
<img src="gato.jpg" alt="Mi gato Tom dormido" width="200">
src(source): qué archivo mostrar. Si está en la misma carpeta que tu página, basta el nombre. También puede ser una dirección completa de internet.alt: un texto que describe la imagen. Se muestra si la imagen no carga y lo leen en voz alta los programas que usan las personas ciegas. Siempre ponlo.width: el ancho en píxeles. Si no lo pones, la imagen sale de su tamaño real (a veces enorme). La altura se ajusta sola para que no se deforme.
Las tablas sirven para datos en filas y columnas, como un horario. Se arman así: <table> envuelve todo; cada fila es un <tr> (table row); dentro de la fila, cada celda es un <td> (table data). Las celdas de la primera fila, las que dicen qué es cada columna, se escriben con <th> (table header) y salen en negritas.
<table> <tr><th>Hora</th><th>Lunes</th><th>Martes</th></tr> <tr><td>8:00</td><td>Mate</td><td>Español</td></tr> <tr><td>9:00</td><td>Inglés</td><td>Mate</td></tr> </table>
| Hora | Lunes | Martes |
|---|---|---|
| 8:00 | Mate | Español |
| 9:00 | Inglés | Mate |
Cuenta: 3 filas (tr) y 3 celdas en cada una: 9 celdas en total. Todas las filas deben tener el mismo número de celdas; si a una le falta una, la tabla se ve chueca. Sin CSS la tabla sale sin líneas; en la lección 7 le pones bordes.
Un truco para no perderte: escribe cada fila en un renglón, como arriba. Así ves de un vistazo cuántas celdas tiene cada una.
Así se hace, paso a paso
Una ficha con foto y tabla de datos
Paso 1 · La foto. El archivo se llama perro.png y quiero que mida 150 px de ancho: <img src="perro.png" alt="Mi perro Rocky" width="150">.
Paso 2 · La tabla. Dos columnas: «Dato» y «Valor». Primera fila con th, las demás con td.
Paso 3 · Reviso. Cada fila tiene 2 celdas. Todas las tr cierran. La img no se cierra.
<h1>Rocky</h1> <img src="perro.png" alt="Mi perro Rocky" width="150"> <table> <tr><th>Dato</th><th>Valor</th></tr> <tr><td>Edad</td><td>4 años</td></tr> <tr><td>Raza</td><td>Labrador</td></tr> <tr><td>Comida</td><td>Croquetas</td></tr> </table>
Rocky
| Dato | Valor |
|---|---|
| Edad | 4 años |
| Raza | Labrador |
| Comida | Croquetas |
Título, la foto de 150 px y una tabla de 4 filas con 2 celdas cada una.
Cerrar la img. <img ...></img> está de más: img no se cierra.
Una celda fuera de su fila. Cada <td> va dentro de un <tr>. Un td suelto se sale de la tabla.
Sin alt. Si la imagen no carga, no se ve nada y nadie sabe qué iba ahí. Y a quien no ve la pantalla, el alt es lo único que le llega.
Ejercicios
- ¿Qué atributo de <img> dice qué archivo mostrar?
ver la respuesta
srcCómo se llega- src = source, la fuente.
- alt es la descripción.
- ¿Cuántas filas y cuántas celdas tiene esta tabla?
<table> <tr><th>Materia</th><th>Maestro</th></tr> <tr><td>Mate</td><td>Israel</td></tr> <tr><td>Inglés</td><td>Karla</td></tr> </table>
ver la respuesta
3 filas, 6 celdasCómo se llega- Filas: cuenta los tr → 3.
- Celdas: 2 por fila × 3 = 6.
- ¿Qué se ve si
foto.jpgno existe en la carpeta?<img src="foto.jpg" alt="Mi familia en la playa">
ver la respuesta
El texto «Mi familia en la playa» en lugar de la imagenCómo se llega- Cuando la imagen no carga, se muestra el alt.
- Corrige el error:
<table> <tr><td>Lunes</td><td>Mate</tr> </table>
ver la respuesta
Falta </td> después de Mate: <td>Mate</td></tr>Cómo se llega- La segunda celda abre y no cierra.
- Cierra el td antes de cerrar el tr.
- Escribe el HTML de una tabla de 2 columnas (Día, Actividad) con dos filas de datos: lunes natación y jueves música.
ver la respuesta
<table><tr><th>Día</th><th>Actividad</th></tr><tr><td>Lunes</td><td>Natación</td></tr><tr><td>Jueves</td><td>Música</td></tr></table>Cómo se llega- Primera fila con th.
- Dos filas más con td, 2 celdas cada una.
- Cierra cada tr y la table.
Qué es CSS: colores, tamaños y letras
Lección 5 de 10
CSS es una lista de reglas: selector { propiedad: valor; }. Va dentro de <style> en el head. Con color, background-color, font-size, font-family y text-align ya cambias la cara de la página.
Lo que hay que saber
Hasta ahora tu página se ve como todas las páginas sin arreglar: letra negra, fondo blanco. CSS (hojas de estilo) es el lenguaje que le cambia la cara. No agrega contenido: le dice al navegador cómo se ve lo que ya escribiste en HTML.
El CSS se escribe en reglas. Cada regla tiene dos partes: a quién se aplica (el selector) y qué le cambia (una lista de propiedad: valor entre llaves). Cada propiedad termina en punto y coma.
h1 {
color: #2B4CFF;
text-align: center;
}
p {
font-size: 20px;
font-family: Arial, sans-serif;
}
¿Dónde se escribe? Dentro de una etiqueta <style>, en el <head>. Si lo escribes en el body sin la etiqueta style, el navegador lo enseña como texto. Así queda una página completa con su CSS:
<head>
<meta charset="utf-8">
<title>Con estilo</title>
<style>
body { background-color: #FFF8D6; }
h1 { color: #2B4CFF; text-align: center; }
p { font-size: 20px; }
</style>
</head>
<body>
<h1>Mis gustos</h1>
<p>Me gusta la música.</p>
</body>
Mis gustos
Me gusta la música.
Las cinco propiedades con las que más vas a jugar:
| Propiedad | Qué cambia | Valores de ejemplo |
|---|---|---|
| color | el color de las letras | red, #2B4CFF |
| background-color | el color del fondo | yellow, #FFF8D6 |
| font-size | el tamaño de la letra | 16px, 32px |
| font-family | el tipo de letra | Arial, Georgia, monospace |
| text-align | la alineación del texto | left, center, right |
Los colores se escriben de dos formas. Por nombre, en inglés: red, blue, green, yellow, orange, purple, pink, gray, black, white. O en hexadecimal: un # y seis letras o números, como #2B4CFF. Las seis cifras son tres parejas: cuánto rojo, cuánto verde y cuánto azul lleva, de 00 (nada) a FF (todo). #FF0000 es rojo puro, #000000 negro, #FFFFFF blanco. No tienes que memorizarlos: en el Taller web y en cualquier buscador hay un selector de colores que te da el código.
Las medidas: px son píxeles, los puntitos de la pantalla; 16px es el tamaño normal de la letra. % es un porcentaje de lo que mide el que lo contiene: una caja con width: 50% ocupa la mitad del ancho de la página, en cualquier pantalla.
Así se hace, paso a paso
Página con fondo claro, título rojo centrado y letra grande
Paso 1 · ¿A quién? Al fondo de toda la página: el selector es body. Al título: h1. A los párrafos: p.
Paso 2 · ¿Qué le cambio? body: background-color: #EAF1FF;. h1: color: red; text-align: center;. p: font-size: 22px;.
Paso 3 · Lo meto en style, en el head.
<style>
body { background-color: #EAF1FF; }
h1 { color: red; text-align: center; }
p { font-size: 22px; }
</style>
Hola
Este párrafo se ve más grande.
Fondo azul clarito, título rojo en medio, párrafos de 22 px.
Confundir los signos. Dentro de las llaves va dos puntos entre propiedad y valor, y punto y coma al final: color: red;. Con color = red o color red no pasa nada.
Olvidar la unidad. font-size: 20; no funciona; es 20px.
Escribir el CSS fuera de <style>. Si lo pones en el body, el navegador lo muestra como texto. Va en <style>, dentro del head.
Nombres en español. Las propiedades y los nombres de color van en inglés: color: rojo; no existe; es red.
Ejercicios
- ¿Qué propiedad cambia el color del fondo?
ver la respuesta
background-colorCómo se llega- color es el de las letras; background-color el del fondo.
- ¿Qué se ve con este CSS?
p { color: green; text-align: center; }ver la respuesta
Todos los párrafos en verde y centradosCómo se llega- El selector p escoge todos los párrafos.
- color: green = letras verdes; text-align: center = centrado.
- ¿Qué está mal?
h1 { color blue; }ver la respuesta
Faltan los dos puntos: color: blue;Cómo se llega- Entre propiedad y valor van dos puntos.
- ¿Qué color es #FF0000? ¿Y #000000?
ver la respuesta
Rojo puro y negroCómo se llega- Las parejas son rojo, verde, azul.
- FF 00 00: todo el rojo y nada más. 00 00 00: nada de nada = negro.
- Escribe el CSS para que el fondo de la página sea amarillo y los títulos h2 sean morados.
ver la respuesta
body { background-color: yellow; } h2 { color: purple; }Cómo se llega- Fondo de toda la página: selector body.
- Letras moradas de los h2: color: purple.
- Tu amiga puso
p { font-size: 18px; }dentro del body, sin etiqueta style, y en la página aparece ese texto. ¿Qué tiene que hacer?ver la respuesta
Meterlo en <style> … </style> dentro del headCómo se llega- El CSS fuera de style se trata como texto normal.
Selectores: a quién le aplico el estilo
Lección 6 de 10
Por etiqueta (p), por clase (.caja) o por id (#titulo). La clase es la más usada: se la pones a los elementos que quieras y todos se ven igual.
Lo que hay que saber
Con p { color: red; } todos los párrafos se ponen rojos. ¿Y si solo quieres uno? Para eso hay tres formas de escoger (seleccionar) a quién le aplicas una regla:
| Selector | Escoge… | En el HTML | En el CSS |
|---|---|---|---|
| por etiqueta | todos los elementos de ese tipo | <p>…</p> | p { } |
| por clase | los que tengan esa clase (pueden ser muchos) | <p class="aviso">…</p> | .aviso { } |
| por id | el único elemento con ese id | <h1 id="titulo">…</h1> | #titulo { } |
Una clase es un nombre que tú inventas y le pones a los elementos con el atributo class. En el CSS la llamas con un punto adelante. Un id también es un nombre tuyo, pero solo puede haber uno en toda la página con ese id; en el CSS lleva #. Sin el punto o el #, el navegador cree que es una etiqueta que no existe y no pasa nada.
<style>
.aviso { background-color: #FFD23F; }
#titulo { color: #2B4CFF; }
</style>
…
<h1 id="titulo">Mi página</h1>
<p class="aviso">Examen el viernes.</p>
<p>Este párrafo es normal.</p>
<p class="aviso">Traer calculadora.</p>
Mi página
Examen el viernes.
Este párrafo es normal.
Traer calculadora.
Un elemento puede tener varias clases, separadas con espacio: <p class="aviso grande"> recibe las reglas de .aviso y las de .grande. Así combinas estilos como si fueran piezas.
También puedes escoger algo que está dentro de otra cosa: el selector descendiente. Se escriben los dos con un espacio en medio: ul li { color: green; } escoge solo los li que estén dentro de un ul (los de las listas con puntos), y deja en paz a los de las listas con números. Y .menu a { } escoge los enlaces que están dentro de algo con la clase menu.
¿Y si dos reglas chocan? Gana la más específica: el id le gana a la clase, y la clase le gana a la etiqueta. Si son igual de específicas, gana la que está más abajo en el CSS.
Así se hace, paso a paso
Pintar solo las tarjetas, y el título una vez
Paso 1 · Decido qué se repite. Tengo tres párrafos que son «tarjetas» y deben verse igual: les pongo class="tarjeta". El título principal es único: id="principal".
Paso 2 · Escribo las reglas. Para la clase, con punto; para el id, con #.
Paso 3 · Un detalle dentro de las tarjetas. Quiero que las negritas que estén dentro de una tarjeta sean azules: selector descendiente .tarjeta b.
<style>
#principal { text-align: center; }
.tarjeta { background-color: #EAF1FF; }
.tarjeta b { color: #2B4CFF; }
</style>
…
<h1 id="principal">Mis materias</h1>
<p class="tarjeta"><b>Mate</b> con Israel</p>
<p class="tarjeta"><b>Inglés</b> con Karla</p>
<p>Nota: <b>traer</b> el libro.</p>
Mis materias
Mate con Israel
Inglés con Karla
Nota: traer el libro.
Las dos tarjetas con fondo azul claro y sus negritas azules; la nota se queda normal (su negrita no está dentro de una tarjeta).
Olvidar el punto. aviso { } busca una etiqueta llamada aviso, que no existe. Para la clase es .aviso.
Confundir id y clase. Si en el HTML pusiste class="caja", en el CSS es .caja, no #caja. Y al revés.
Repetir un id. Dos elementos con id="titulo" es un error; si varios deben verse igual, usa una clase.
Ejercicios
- ¿Qué selector escoge a todos los elementos con
class="nota"?ver la respuesta
.notaCómo se llega- Clase → punto adelante.
- ¿Qué se ve?
<style> .rojo { color: red; } </style> <p class="rojo">Uno</p> <p>Dos</p> <p class="rojo">Tres</p>ver la respuesta
«Uno» y «Tres» en rojo; «Dos» normalCómo se llega- Solo los que tienen la clase rojo reciben la regla.
- ¿Qué está mal?
<style> #caja { background-color: yellow; } </style> <p class="caja">Hola</p>ver la respuesta
En el HTML es clase y en el CSS se llamó como id. Debe ser .cajaCómo se llega- class → punto; id → #.
- Como no coinciden, el párrafo no cambia.
- ¿Qué selector escoge solo los enlaces que están dentro de la lista con clase menu?
ver la respuesta
.menu aCómo se llega- Descendiente: el de afuera, espacio, el de adentro.
- Escribe el HTML y CSS para que dos párrafos tengan fondo verde claro (#E8F7EE) y uno normal.
ver la respuesta
.verde { background-color: #E8F7EE; } y los dos párrafos con class="verde"Cómo se llega- Inventa una clase, por ejemplo verde.
- Regla: .verde { background-color: #E8F7EE; }
- Pon class="verde" solo a los dos que quieres.
- En tu página el h1 tiene id="titulo" y este CSS:
h1 { color: red; } #titulo { color: blue; }. ¿De qué color se ve?ver la respuesta
AzulCómo se llega- Chocan dos reglas.
- El id es más específico que la etiqueta: gana #titulo.
El modelo de caja
Lección 7 de 10
Todo elemento es una caja: contenido, padding (relleno por dentro), border (línea) y margin (espacio por fuera). El ancho total es width + padding de los dos lados + border de los dos lados.
Lo que hay que saber
Para el navegador, cada elemento es una caja rectangular: un párrafo, un título, una imagen, una lista. Y cada caja tiene cuatro capas, de adentro hacia afuera:
- El contenido: el texto o la imagen. Su ancho se fija con
width. - El padding: relleno por dentro, entre el contenido y la línea. Es del mismo color que el fondo de la caja.
- El border: la línea alrededor. Se escribe con grosor, tipo y color:
border: 2px solid #10203A;. - El margin: espacio por fuera, el que separa la caja de sus vecinas. Es transparente.
.tarjeta {
width: 200px;
padding: 16px;
border: 4px solid #10203A;
margin: 20px;
background-color: #FFD23F;
}
Si pones un solo número, padding: 16px, va igual por los cuatro lados. Puedes dar dos: padding: 8px 20px es 8 arriba y abajo, 20 a los lados. Lo mismo con margin. Y para un solo lado: margin-top, margin-bottom, margin-left, margin-right; igual con padding.
Dos propiedades que hacen que las cajas se vean bien bonitas: border-radius: 12px; redondea las esquinas, y box-shadow: 0 4px 12px #AAB4C8; le pone una sombra (corrido en x, corrido en y, qué tan difuminada, color), como si la caja flotara.
Centrar una caja. Si la caja tiene width, con margin: auto; el navegador reparte el espacio sobrante en partes iguales a izquierda y derecha, y la caja queda en medio. Es la forma más usada de centrar todo el contenido de una página: main { width: 600px; margin: auto; }.
Así se hace, paso a paso
¿Cuánto mide esta caja y cómo la centro?
.aviso {
width: 300px;
padding: 10px;
border: 3px solid red;
margin: 15px;
}
Paso 1 · Suma el ancho. Contenido 300. Padding: 10 de cada lado = 20. Border: 3 de cada lado = 6. Total: 300 + 20 + 6 = 326 px.
Paso 2 · ¿Y con el margin? El margin no es parte de la caja, pero la separa 15 px de cada lado: ocupa 326 + 30 = 356 px de la fila.
Paso 3 · Centrarla. Cambio margin: 15px; por margin: 15px auto;: 15 arriba y abajo, automático a los lados. La caja queda en medio.
La caja mide 326 px de ancho; con margin: 15px auto queda centrada.
Creer que width es el ancho total. width es solo el contenido. Si quieres que la caja completa mida 300, resta el padding y el border, o pon box-sizing: border-box; en la regla (con eso, width ya incluye padding y border; muchos lo ponen siempre).
Confundir padding y margin. Padding es por dentro (se pinta del color del fondo); margin es por fuera (transparente). Si el texto está pegado al borde, necesitas padding; si la caja está pegada a la vecina, margin.
margin: auto sin width. Si la caja no tiene ancho, ya ocupa todo y no hay nada que repartir: no se centra.
Ejercicios
- ¿Qué propiedad deja espacio entre el texto y el borde de la caja?
ver la respuesta
paddingCómo se llega- Por dentro: padding. Por fuera: margin.
- Una caja tiene width 250px, padding 15px y border 1px. ¿Cuánto mide de ancho en total?
ver la respuesta
282 pxCómo se llega- 250 + 15 + 15 = 280.
- 280 + 1 + 1 = 282.
- ¿Qué se ve?
.foto { border: 3px solid blue; border-radius: 50%; }ver la respuesta
Un borde azul de 3 px con las esquinas tan redondas que la caja se ve como círculo (si es cuadrada)Cómo se llega- border-radius redondea esquinas; al 50 % queda un círculo.
- Corrige el error:
.caja { width: 200; padding: 10px; }ver la respuesta
width: 200px; (le falta la unidad)Cómo se llega- Las medidas llevan unidad, salvo el 0.
- Escribe el CSS de una clase tarjeta con 180 px de ancho, 12 px de padding, borde negro de 2 px, esquinas de 10 px y centrada.
ver la respuesta
.tarjeta { width: 180px; padding: 12px; border: 2px solid black; border-radius: 10px; margin: auto; }Cómo se llega- Las cuatro capas en orden.
- margin: auto centra porque hay width.
- Quieres que una caja mida 400 px de ancho en total, con padding de 20 px y borde de 5 px. ¿Qué width le pones?
ver la respuesta
350 pxCómo se llega- Padding ocupa 20 + 20 = 40. Border 5 + 5 = 10.
- 400 − 40 − 10 = 350.
Acomodar cosas en fila: flex y el celular
Lección 8 de 10
display: flex en el contenedor pone a sus hijos en fila. justify-content los reparte; gap deja espacio entre ellos. Con @media (max-width: 600px) cambias el acomodo en celular.
Lo que hay que saber
Las cajas se apilan una debajo de otra, de arriba abajo. Pero un menú, unas tarjetas o una barra de botones se ven mejor en fila. Para eso está flex: se lo pones al contenedor (la caja de afuera) y sus hijos (las cajas de adentro) se forman en fila.
<style>
.menu { display: flex; gap: 12px; }
.menu a { padding: 8px 14px; background-color: #FFD23F; }
</style>
…
<nav class="menu">
<a href="#inicio">Inicio</a>
<a href="#gustos">Gustos</a>
<a href="#horario">Horario</a>
</nav>
<nav> es una etiqueta para «aquí va el menú»; se comporta como una caja normal. Lo importante: display: flex va en .menu, el padre, no en los enlaces. gap es el espacio entre los hijos (12 px aquí), sin tener que ponerles margin.
justify-content acomoda la fila a lo ancho: flex-start (pegados a la izquierda, lo normal), center (juntos en medio), space-between (el primero a la izquierda, el último a la derecha, el espacio repartido entre ellos). Muy útil: para poner el nombre a la izquierda y el menú a la derecha en un encabezado, el encabezado con display: flex; justify-content: space-between;.
Y en el celular. La pantalla de un celular es angosta: tres tarjetas en fila quedan aplastadas. La solución son las reglas por tamaño de pantalla: @media (max-width: 600px) { … } significa «estas reglas solo valen cuando la pantalla mide 600 px o menos». Adentro cambias la fila por columna:
.tarjetas { display: flex; gap: 16px; }
@media (max-width: 600px) {
.tarjetas { flex-direction: column; }
}Hay un detalle sin el cual el celular hace trampa: muestra la página «en chiquito», como si fuera una computadora, y tu @media nunca se aplica. Se arregla con una línea en el head que le dice «mide la pantalla de verdad»: <meta name="viewport" content="width=device-width, initial-scale=1">. Cópiala tal cual en todas tus páginas, junto al meta charset.
Para probar cómo se ve en celular sin celular: en el navegador, clic derecho → Inspeccionar, y el botón de celular/tableta arriba del panel. Puedes angostar la ventana y ver cuándo cambia.
Así se hace, paso a paso
Tres tarjetas en fila que se apilan en el celular
Paso 1 · El contenedor y los hijos. Un div con clase tarjetas que contiene tres div con clase tarjeta.
Paso 2 · En fila. Al contenedor: display: flex; gap: 16px; justify-content: center;.
Paso 3 · En celular, en columna. Dentro de un @media con max-width 600px, al contenedor: flex-direction: column;.
Paso 4 · El viewport. La línea meta viewport en el head.
<style>
.tarjetas { display: flex; gap: 16px; justify-content: center; }
.tarjeta { width: 150px; padding: 12px; border: 2px solid #10203A; border-radius: 10px; }
@media (max-width: 600px) {
.tarjetas { flex-direction: column; }
.tarjeta { width: auto; }
}
</style>
…
<div class="tarjetas">
<div class="tarjeta">Mate</div>
<div class="tarjeta">Inglés</div>
<div class="tarjeta">Historia</div>
</div>
En pantalla ancha: tres tarjetas en fila, centradas, con 16 px entre ellas. En celular: una debajo de otra, a todo lo ancho.
Poner display: flex a los hijos. Va en el contenedor. Si se lo pones a cada tarjeta, no pasa lo que esperas.
Olvidar el meta viewport. Sin él, el celular enseña la versión de computadora encogida y el @media nunca entra.
Escribir mal el @media. Es @media (max-width: 600px), con paréntesis, dos puntos y la unidad. Y las reglas van dentro de sus llaves.
Ejercicios
- ¿Qué propiedad y valor ponen en fila a los hijos de una caja?
ver la respuesta
display: flex;Cómo se llega- Se lo pones al contenedor.
- ¿Qué se ve?
.botones { display: flex; gap: 10px; justify-content: center; }ver la respuesta
Los hijos de .botones en fila, juntos en el centro, con 10 px entre cada unoCómo se llega- flex = fila; gap = espacio entre; center = en medio.
- Cuatro cajas de 100 px en fila con gap de 20 px. ¿Cuánto mide la fila?
ver la respuesta
460 pxCómo se llega- Cajas: 4 × 100 = 400.
- Huecos: entre 4 cajas hay 3 huecos: 3 × 20 = 60.
- 400 + 60 = 460.
- ¿Cuándo se aplican las reglas que están dentro de
@media (max-width: 600px) { … }?ver la respuesta
Cuando la pantalla mide 600 px o menosCómo se llega- max-width = «hasta este ancho».
- Corrige el error:
.tarjetas { gap: 16px; } .tarjeta { display: flex; }ver la respuesta
display: flex va en .tarjetas (el contenedor), no en .tarjetaCómo se llega- Flex se le pone al padre para formar a los hijos.
- Escribe el CSS para que la clase menu ponga sus enlaces en fila con 8 px entre ellos, y que en pantallas de 500 px o menos se acomoden en columna.
ver la respuesta
.menu { display: flex; gap: 8px; } @media (max-width: 500px) { .menu { flex-direction: column; } }Cómo se llega- Regla normal con flex y gap.
- @media con max-width: 500px y adentro flex-direction: column.
Formularios y botones
Lección 9 de 10
button es un botón, input una casilla, label su etiqueta. placeholder pone la pista gris. Con :hover cambias el botón cuando el mouse está encima.
Lo que hay que saber
Las páginas no solo se leen: también se les escribe. Los formularios son las casillas y botones con los que el visitante te manda algo. Tres etiquetas:
<input>: una casilla donde se escribe. No se cierra. El atributotypedice de qué tipo:text(texto, el normal),number(solo números),password(puntitos),email,date.<label>: el texto junto a la casilla que dice qué poner ahí. Con el atributoforigual alidde la casilla, al hacer clic en el texto se activa la casilla.<button>: un botón. Lo que está entre las etiquetas es lo que dice.
<form> <label for="nombre">Tu nombre</label> <input type="text" id="nombre" placeholder="Escribe aquí"> <label for="edad">Edad</label> <input type="number" id="edad"> <button>Enviar</button> </form>
placeholder es el texto gris de pista que se ve dentro de la casilla y desaparece cuando escribes. <form> envuelve todo el formulario. Por ahora el botón no manda nada a ningún lado: para recibir lo que escriben hace falta un programa del otro lado (eso es otro curso). Pero la parte que se ve, ya la sabes hacer.
Un botón bonito. Un botón es una caja, así que todo lo de la lección 7 le sirve: padding, border, border-radius, colores. Y hay algo nuevo: :hover. Se pega al selector y significa «cuando el mouse está encima». Con cursor: pointer; el mouse se vuelve manita, como en los enlaces.
button {
padding: 10px 20px;
border: none;
border-radius: 8px;
background-color: #2B4CFF;
color: white;
font-size: 16px;
cursor: pointer;
}
button:hover {
background-color: #10203A;
}
Lo mismo sirve para los enlaces: a:hover { color: red; } los pone rojos al pasar el mouse. Y para las casillas: input { padding: 8px; border: 2px solid #AAB4C8; border-radius: 6px; }.
Así se hace, paso a paso
Un formulario de contacto con su botón
Paso 1 · Las casillas. Nombre (text), correo (email) y mensaje. Cada una con su label conectado por for e id.
Paso 2 · El botón. <button>Mandar</button>.
Paso 3 · El estilo. Casillas con padding y borde redondo; botón azul que se oscurece con el mouse.
<form>
<label for="n">Nombre</label>
<input type="text" id="n" placeholder="Tu nombre">
<label for="c">Correo</label>
<input type="email" id="c" placeholder="tu@correo.com">
<button>Mandar</button>
</form>
<style>
input { padding: 8px; border: 2px solid #AAB4C8; border-radius: 6px; }
button { padding: 8px 16px; background-color: #2B4CFF; color: white; border: none; border-radius: 6px; cursor: pointer; }
button:hover { background-color: #10203A; }
</style>
Dos casillas con pista gris, redonditas, y un botón azul que se pone oscuro al pasar el mouse. Al darle clic no pasa nada todavía (la página se recarga).
Cerrar el input. <input> no lleva contenido ni cierre. El texto de pista va en placeholder, no entre etiquetas.
label y input desconectados. Si el for dice «nombre» y el id dice «nom», el clic en el texto no activa la casilla. Mismo nombre en los dos.
Escribir hover con espacio. Es button:hover, pegado y con dos puntos. button hover buscaría una etiqueta hover dentro del botón.
Ejercicios
- ¿Qué etiqueta hace una casilla para escribir?
ver la respuesta
<input>Cómo se llega- input = entrada. No se cierra.
- ¿Qué se ve?
<input type="text" placeholder="Busca un juego">
ver la respuesta
Una casilla vacía con el texto gris «Busca un juego», que desaparece al escribirCómo se llega- placeholder es la pista gris.
- ¿Qué atributo falta para que al hacer clic en «Edad» se active la casilla?
<label>Edad</label> <input type="number" id="edad">
ver la respuesta
for="edad" en el labelCómo se llega- for del label = id del input.
- Corrige el error:
button hover { background-color: red; }ver la respuesta
button:hover { background-color: red; }Cómo se llega- Dos puntos y sin espacio.
- Escribe el CSS para que los enlaces se pongan naranjas y el mouse se vuelva manita cuando pasas sobre ellos.
ver la respuesta
a:hover { color: orange; cursor: pointer; }Cómo se llega- Selector a con :hover.
- color: orange y cursor: pointer.
- Escribe el HTML de un formulario con una casilla de contraseña (con su label «Contraseña») y un botón que diga «Entrar».
ver la respuesta
<form><label for="clave">Contraseña</label><input type="password" id="clave"><button>Entrar</button></form>Cómo se llega- type="password" para los puntitos.
- label con for = id del input.
- button con el texto adentro.
Proyecto: tu página personal
Lección 10 de 10
Junta todo: encabezado con menú, sección «sobre mí», lista de gustos, tabla de horario y pie. Revisa con la lista de cotejo y con el inspector del navegador.
Lo que hay que saber
Ya tienes todas las piezas. El proyecto es una página personal con cinco partes, de arriba abajo: un encabezado con tu nombre y el menú, una sección «Sobre mí», tu lista de gustos, tu tabla de horario y un pie de página. Cada parte va en una caja con su id (para que el menú llegue a ella con #) y su estilo.
Hay etiquetas que son cajas con nombre, para que la página se entienda: <header> (encabezado), <nav> (menú), <main> (lo principal), <section> (una sección), <footer> (pie). Se comportan como un <div> (la caja genérica), pero dicen qué son. Este es el esqueleto completo; tú cambias el contenido:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Página de Ana</title>
<style>
body { font-family: Arial, sans-serif; margin: 0; background-color: #F6F7FB; }
header { display: flex; justify-content: space-between; padding: 16px; background-color: #10203A; color: white; }
nav { display: flex; gap: 12px; }
nav a { color: #FFD23F; }
main { width: 90%; margin: auto; }
section { background-color: white; padding: 16px; margin: 16px 0; border-radius: 10px; }
table { border-collapse: collapse; }
th, td { border: 1px solid #AAB4C8; padding: 6px 10px; }
footer { text-align: center; padding: 12px; color: #3E4E6B; }
@media (max-width: 600px) { header { flex-direction: column; gap: 8px; } }
</style>
</head>
<body>
<header>
<b>Ana García</b>
<nav>
<a href="#sobre-mi">Sobre mí</a>
<a href="#gustos">Gustos</a>
<a href="#horario">Horario</a>
</nav>
</header>
<main>
<section id="sobre-mi">
<h2>Sobre mí</h2>
<img src="ana.jpg" alt="Foto de Ana" width="120">
<p>Tengo 12 años y voy en <b>primero de secundaria</b>.</p>
</section>
<section id="gustos">
<h2>Mis gustos</h2>
<ul><li>Dibujar</li><li>Videojuegos</li><li>Tacos</li></ul>
</section>
<section id="horario">
<h2>Mi horario</h2>
<table>
<tr><th>Hora</th><th>Lunes</th><th>Martes</th></tr>
<tr><td>8:00</td><td>Mate</td><td>Español</td></tr>
</table>
</section>
</main>
<footer>Hecha por Ana · 2026</footer>
</body>
</html>
Fíjate en dos cosas nuevas: th, td { } con coma aplica la misma regla a las dos etiquetas; y border-collapse: collapse junta las líneas de la tabla para que no se vean dobles.
Cómo encontrar errores. Cuando algo no se ve como esperabas, casi siempre es una etiqueta sin cerrar o un nombre que no coincide (la clase en el HTML dice una cosa y el CSS otra). Haz esto:
- Abre la página en el navegador, da clic derecho → Inspeccionar. Se abre un panel con tu HTML como lo entendió el navegador.
- En la pestaña Elements (Elementos), abre las flechitas. Si una etiqueta aparece metida dentro de otra donde no debía, es que no la cerraste: el navegador cierra por ti, pero donde se le ocurre.
- Dale clic a un elemento: a la derecha, en Styles (Estilos), ves qué reglas de CSS le llegan. Si tu regla no aparece, el selector no coincide: revisa el punto, el # o cómo escribiste la clase.
- En el Taller web, el cuadro de abajo te marca las etiquetas que abren y no cierran.
Cuando quede lista, mándasela a alguien: guarda el archivo (y las imágenes que uses, en la misma carpeta) y compártelo. Si quieres que esté en internet con su dirección, hay sitios que publican páginas gratis; pregúntame en clase.
Así se hace, paso a paso
La sección falla: encontrar qué quedó sin cerrar
Mi sección de gustos se ve rara: la tabla del horario se metió dentro de la tarjeta de gustos. Este es el código:
<section id="gustos">
<h2>Mis gustos</h2>
<ul>
<li>Dibujar</li>
<li>Tacos</li>
</ul>
<section id="horario">
Paso 1 · Cuento aperturas y cierres. section abre… ¿y cierra? No veo </section> antes de la siguiente section.
Paso 2 · Lo confirmo en el inspector. Clic derecho → Inspeccionar → Elements: la section de horario aparece dentro de la de gustos. Eso lo hizo el navegador porque la primera nunca cerró.
Paso 3 · Lo arreglo. Agrego </section> después del </ul>.
Faltaba </section>. Cada sección es una tarjeta aparte otra vez.
Hacerlo todo de un jalón. Escribe una parte, mírala en el navegador, sigue con la siguiente. Si escribes 80 líneas sin mirar y algo falla, no sabes dónde.
Mayúsculas en nombres de archivo. Ana.JPG y ana.jpg son archivos distintos en internet. Usa todo en minúsculas y sin espacios ni acentos en los nombres de archivos.
Copiar CSS sin entender. Si copias una regla de internet, prueba a quitarla y ponerla para ver qué cambia. Si no cambia nada, no la necesitas.
Ejercicios
- ¿Qué dos líneas van en el head de toda página, además del title y el style?
ver la respuesta
<meta charset="utf-8"> y <meta name="viewport" content="width=device-width, initial-scale=1">Cómo se llega- charset: acentos. viewport: celular.
- ¿Qué etiqueta quedó sin cerrar?
<section id="sobre-mi"> <h2>Sobre mí</h2> <p>Tengo 12 años. <ul><li>Dibujar</li></ul> </section>
ver la respuesta
<p> (falta </p> después de «Tengo 12 años.»)Cómo se llega- section cierra, h2 cierra, ul y li cierran.
- El p abre y nunca cierra.
- El menú tiene
<a href="#gustos">Gustos</a>pero al hacer clic no baja a ningún lado. ¿Qué etiqueta falta o está mal?ver la respuesta
A la sección de gustos le falta id="gustos"Cómo se llega- El enlace # busca un elemento con ese id.
- Si no existe, no pasa nada.
- Pusiste
.tarjeta { background-color: white; }y en el HTML<section class="targeta">. La sección no cambia. ¿Cómo lo descubres con el inspector y cómo lo corriges?ver la respuesta
En Elements das clic a la section y en Styles no aparece .tarjeta; corriges la clase para que se escriba igual en los dos ladosCómo se llega- El selector no coincide con la clase escrita (targeta ≠ tarjeta).
- Mismo nombre en HTML y CSS.
- ¿Cuál es el orden correcto de las partes de la página, de arriba abajo?
ver la respuesta
header (con nav), main (con las sections), footerCómo se llega- Encabezado y menú arriba, contenido en medio, pie abajo.
- Escribe el HTML de un pie de página centrado con tu nombre y el año, y el CSS que lo centra y lo pone gris.
ver la respuesta
<footer>Hecha por Leo · 2026</footer> y footer { text-align: center; color: gray; }Cómo se llega- footer es una caja con nombre.
- text-align: center para el texto; color: gray para gris.
El examen de html y css: tu primera página
Diez preguntas de todas las lecciones, del mismo nivel que los ejercicios. Hay cuatro versiones parecidas: si no te va bien, lo repites con otra. Se aprueba con 7 de 10.
Puedes hacerlo sin entrar, pero si entras con tu nombre el resultado se guarda en tu tablero.
Hacer el examen →