Saltar al contenido principal
Codigo Heroe
Tarea anterior
Distribución de componentes2/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

Flexbox dentro de grid

Al dividir la navegación en dos columnas, el logotipo quedó en una y la lista de enlaces en la otra. Volveremos al logotipo un poco más adelante; por ahora nos ocuparemos de la lista. Sus elementos tienen cajas de bloque de forma predeterminada. Por eso ocupan todo el ancho del elemento padre y se colocan de arriba abajo.

Logotipo
Inicio
Rutas
Equipo

Necesitamos reducir el ancho de los elementos de la lista, colocarlos en una fila y repartir entre ellos el espacio libre.

Diseño de la navegación

La forma más sencilla es usar flexbox: de forma predeterminada, los elementos flex se colocan en horizontal y ocupan el espacio que necesita su contenido, incluidos los márgenes y el relleno.

.flex-container {
  display: flex;
}

Flexbox también permite controlar fácilmente la alineación de los elementos. De forma predeterminada, los elementos flex se colocan desde el borde izquierdo del contenedor, uno junto a otro. Podemos cambiarlo con la propiedad justify-content. Se aplica al contenedor flex y controla la alineación de sus elementos en el eje principal.

Necesitamos que el primer y el último elemento flex queden junto a los bordes del contenedor y que el espacio libre se reparta por igual entre los elementos. Para conseguirlo, usamos justify-content con el valor space-between.

.flex-container {
  display: flex;
  justify-content: space-between;
}

Fíjate: convertimos el bloque de navegación en un contenedor grid y ahora usamos flexbox para la lista de enlaces que contiene. Podemos combinar distintas tecnologías al crear una distribución.

Convertiremos la lista con la clase navigation-list en un contenedor flex para colocar sus elementos en horizontal. Después los alinearemos en el eje principal.

  • index.html
  • style.css
HTML
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="navigation-decorative.css"> <link rel="stylesheet" href="navigation-outline.css"> <link rel="stylesheet" href="style.css"> <title>Club de senderismo</title> </head> <body> <nav class="navigation"> <a class="logo" href="#"> <img src="img/hiking-club.svg" alt="Logotipo de Hiking Club" width="95" height="22"> </a> <ul class="navigation-list"> <li class="navigation-item"> <a class="navigation-link current" href="#">Inicio</a> </li> <li class="navigation-item"> <a class="navigation-link" href="#">Rutas</a> </li> <li class="navigation-item"> <a class="navigation-link" href="#">Equipo</a> </li> </ul> </nav> <h1 class="title">Club de<br>senderismo</h1> </body> </html>
CSS
body { margin: 0; padding-right: 20px; padding-left: 20px; } .navigation { display: grid; grid-template-columns: 95px 1fr; column-gap: 75px; }

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. Crea una regla para la clase navigation-list y establece su tipo de caja en flex.
    2. Aplica a navigation-list la alineación space-between en el eje principal.
    Codigo Heroe

    © 2023-2026, codigoheroe.com