Repasar

#Chuleta de HTML y CSS

Las etiquetas y propiedades del curso en una sola página, para tenerla abierta mientras practicas.

Esqueleto de una página

html
<!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 pestaña</title>
    <link rel="stylesheet" href="estilos.css">
  </head>
  <body>
    <!-- Todo lo visible -->
  </body>
</html>

HTML: texto

EtiquetaPara quéLección
<h1> … <h6>Encabezados, del más al menos importante. Un solo <h1>04
<p>Párrafo04
<strong>Texto importante (negrita)04
<em>Énfasis (cursiva)04
<br>Salto de línea dentro de un párrafo04
<hr>Cambio de tema (línea horizontal)04
<!-- … -->Comentario04
&lt; &gt; &amp;Los caracteres <, > y &04

HTML: listas, enlaces e imágenes

EtiquetaPara quéLección
<ul> + <li>Lista sin orden (viñetas)05
<ol> + <li>Lista ordenada (números)05
<a href="…">Enlace. #id para ir a una parte de la página; mailto: para correo05
<img src="…" alt="…">Imagen, siempre con alt06
<figure> + <figcaption>Imagen con pie de foto06
<video controls> / <audio controls>Vídeo y audio06

HTML: estructura

EtiquetaPara quéLección
<header>Cabecera07
<nav>Menú de navegación07
<main>Contenido principal (solo uno)07
<section>Parte temática con su encabezado07
<article>Contenido independiente: post, noticia, producto07
<aside>Contenido secundario07
<footer>Pie07
<div> / <span>Cajas sin significado (bloque / en línea)07

HTML: tablas y formularios

EtiquetaPara quéLección
<table> <tr> <th> <td>Tabla, fila, celda de cabecera, celda de datos08
colspan / rowspanCelda que ocupa varias columnas / filas08
<form>Formulario09
<label for="id">Etiqueta de un campo09
<input type="…" name="…">Campo: text, email, password, number, date, checkbox, radio…09
<textarea>Texto de varias líneas09
<select> + <option>Desplegable09
<button type="submit">Botón de enviar09
required, minlength, min, maxValidación sin programar09

CSS: sintaxis y selectores

css
selector {
  propiedad: valor;
}
SelectorSeleccionaLección
pTodos los párrafos10
.avisoLos elementos con class="aviso"11
#portadaEl elemento con id="portada"11
h1, h2Los h1 y los h211
nav aLos a que están dentro de un nav11
.boton.grandeElementos con las dos clases11
a:hover, a:focusEnlace con el ratón encima / con el foco11
li:nth-child(even)Los li pares11
*Todos los elementos13

Especificidad: etiqueta < clase < id < style. A igualdad, gana la última regla.

CSS: color y texto

PropiedadEjemploLección
colorcolor: #333;12
background-colorbackground-color: rgb(0 0 0 / 50%);12
font-familyfont-family: "Poppins", sans-serif;12
font-sizefont-size: 1.25rem;12
font-weightfont-weight: bold;12
line-heightline-height: 1.6;12
text-aligntext-align: center;12
text-decorationtext-decoration: none;12
text-transformtext-transform: uppercase;12

CSS: el modelo de caja

PropiedadEjemploLección
paddingpadding: 10px 20px; (vertical, horizontal)13
marginmargin: 0 auto; (centra un bloque con ancho)13
borderborder: 2px solid black;13
border-radiusborder-radius: 12px; · 50% para un círculo13
width / max-widthmax-width: 700px;13
box-sizing* { box-sizing: border-box; }13
displayblock, inline, inline-block, none, flex, grid14

Cuatro valores: arriba, derecha, abajo, izquierda (como las agujas del reloj).

CSS: Flexbox

css
.contenedor {
  display: flex;
  justify-content: space-between; /* eje principal */
  align-items: center;            /* eje cruzado */
  gap: 16px;
  flex-wrap: wrap;
}
PropiedadValoresLección
flex-directionrow, column15
justify-contentflex-start, center, flex-end, space-between, space-evenly15
align-itemsstretch, flex-start, center, flex-end15
flex: 1 (en un hijo)Crece para ocupar el espacio libre15

CSS: Grid

css
.galeria {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
}
PropiedadEjemploLección
grid-template-columns200px 1fr · repeat(3, 1fr)16
grid-columngrid-column: span 2;16
grid-rowgrid-row: span 2;16

CSS: responsive

css
img {
  max-width: 100%;
  height: auto;
}

/* Mobile first: esto se añade a partir de 768px */
@media (min-width: 768px) {
  .menu {
    flex-direction: row;
  }
}

Y siempre, en el <head>: <meta name="viewport" content="width=device-width, initial-scale=1.0"> (17).

Atajos útiles

AcciónWindows / LinuxMac
GuardarCtrl + SCmd + S
Esqueleto HTML en VS Code! + Tab! + Tab
Comentar líneasCtrl + /Cmd + /
Abrir las DevToolsF12Cmd + Opción + I
Modo dispositivoCtrl + Mayús + MCmd + Mayús + M
Ver código fuenteCtrl + UCmd + Opción + U