Saltar al contenido principal
Codigo Heroe
Tarea anterior
Distribución de componentes10/17
A la lista de tareas
  1. 1. Columnas para un componente
  2. 2. Flexbox dentro de grid
  3. 3. Márgenes y relleno de los enlaces
  4. 4. Enlaces con cajas de bloque
  5. 5. Alineación vertical con align-items
  6. 6. Varias líneas con flex-wrap
  7. 7. Ancho y relleno de las tarjetas
  8. 8. Distribución con justify-content
  9. 9. Separación con margin
  10. 10. Márgenes y :nth-child
  11. 11. Pruebas con distintos anchos
  12. 12. Columnas con repeat y separación con gap
  13. 13. El valor auto-fit
  14. 14. La función minmax
  15. 15. La propiedad grid-column
  16. 16. La propiedad grid-row
  17. 17. La propiedad grid-auto-flow
Siguiente tarea
  • Matriz de skills
  • Cursos
  • Registro
  • Iniciar sesión

Loading…
En unos segundos, estará listo.

  • Teoría
  • Teoría

Márgenes y :nth-child

Cambiamos el valor de justify-content y separamos las tarjetas con márgenes. Pero ahora solo caben dos tarjetas por fila en lugar de tres. La tercera no encontró espacio.

Veamos por qué. Añadimos un margen derecho a todas las tarjetas, incluida la tercera. Como no había espacio para ese margen en el contenedor, la tercera tarjeta pasó a la fila siguiente.

Café: el largo viaje del cafeto a tu taza
Café: el largo viaje del cafeto a tu taza
Las mejores cafeteras para casa
Las mejores cafeteras para casa
Consejos de barista: ¿qué café elegir?
Consejos de barista: ¿qué café elegir?
Recetas para Año Nuevo
Recetas para Año Nuevo

Para devolver la tercera tarjeta a su sitio, tenemos que quitarle el margen derecho. Podemos usar una pseudoclase.

Una pseudoclase se añade a un selector para hacerlo más preciso. Se escribe después del selector, precedida por dos puntos. Ya vimos las pseudoclases al aprender a seleccionar elementos con CSS.

Necesitamos quitar el margen derecho de cada tercera tarjeta. Para ello sirve la pseudoclase :nth-child, que selecciona elementos hijos según su posición:

/* Selecciona el segundo hijo si tiene la clase item */
.item:nth-child(2) { ... }

/* Selecciona los hijos de posición par que tienen la clase item */
.item:nth-child(2n) { ... }

Ajustaremos la lista. Usaremos un selector con una pseudoclase para quitar el margen derecho sobrante de cada tercera tarjeta.

Con :nth-child(3n) seleccionamos el tercer elemento hijo y después uno de cada tres: el sexto, el noveno y así sucesivamente.

Normalmente no hace falta indicar unidades cuando un margen vale cero, como en margin-right: 0. Omitirlas ayuda a mantener un estilo de código uniforme.

  • index.html
  • style.css
HTML
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="list-decorative.css"> <link rel="stylesheet" href="style.css"> <title>Lista de tarjetas</title> </head> <body> <ul class="cards-list"> <li class="card"> <img src="img/coffee-1.jpg" alt="Café: el largo viaje del cafeto a tu taza" width="110" height="110"> <h2>Café: el largo viaje del cafeto a tu taza</h2> </li> <li class="card"> <img src="img/coffee-2.jpg" alt="Las mejores cafeteras para casa" width="110" height="110"> <h2>Las mejores cafeteras para casa</h2> </li> <li class="card"> <img src="img/coffee-4.jpg" alt="Consejos de barista: ¿qué café elegir?" width="110" height="110"> <h2>Consejos de barista: ¿qué café elegir?</h2> </li> <li class="card"> <img src="img/coffee-5.jpg" alt="Recetas para Año Nuevo" width="110" height="110"> <h2>Recetas para Año Nuevo</h2> </li> <li class="card"> <img src="img/coffee-7.jpg" alt="Guía de métodos alternativos de preparación" width="110" height="110"> <h2>Guía de métodos alternativos de preparación</h2> </li> </ul> </body> </html>
CSS
body { width: 490px; margin: 15px; } .cards-list { display: flex; justify-content: flex-start; flex-wrap: wrap; margin: 0; padding: 20px; } .card { width: 110px; padding: 15px; margin-right: 15px; margin-bottom: 15px; }

El código ha cambiado, haz clic en "Actualizar" o activa la ejecución automática.

Ha ido a otra página

Haga clic dentro del mininavegador para poner el foco en esta ventana.

100%
ObjetivosRealizado
0
    1. Usa el selector .card:nth-child(3n) para poner a cero el margen derecho de cada tercera tarjeta.
      Volverá a haber tres tarjetas en la primera fila.
    Codigo Heroe

    © 2023-2026, codigoheroe.com