CodeGym /Curso de Java /Frontend SELF ES /Creación de un contenedor Grid

Creación de un contenedor Grid

Frontend SELF ES
Nivel 27 , Lección 1
Disponible

2.1 Propiedad display: grid

CSS Grid Layout es un sistema de diseño potente que te permite crear layouts complejos de páginas web utilizando filas y columnas. El paso principal al trabajar con CSS Grid es crear un contenedor Grid. A continuación veremos cómo usar la propiedad display: grid para crear un contenedor Grid y gestionar sus aspectos básicos.

Conceptos básicos para la creación de un contenedor Grid

Propiedad display: grid

La propiedad display: grid define un elemento como un contenedor Grid. Este es el paso básico que permite utilizar todo el potencial de CSS Grid para el diseño de elementos.

Ejemplo:

CSS
    
      .grid-container {
        display: grid;
      }
    
  

Elementos principales del contenedor Grid

Después de definir un contenedor Grid con la propiedad display: grid, todos los elementos hijos de ese contenedor se convierten automáticamente en elementos grid. Esto permite gestionar su ubicación y alineación dentro del contenedor.

Ejemplo:

CSS
    
      .grid-container {
        display: grid;
        border: 2px solid #000;
      }

      .grid-item {
        background-color: #3498db;
        color: white;
        padding: 20px;
        border: 1px solid #fff;
        text-align: center;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Ejemplo de contenedor Grid</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div class="grid-container">
            <div class="grid-item">Elemento 1</div>
            <div class="grid-item">Elemento 2</div>
            <div class="grid-item">Elemento 3</div>
          </div>
        </body>
      </html>
    
  

Explicación del código:

  • .grid-container: define el elemento como un contenedor Grid usando la propiedad display: grid. También agrega un borde para destacar visualmente el contenedor
  • .grid-item: define estilos básicos para los elementos dentro del contenedor Grid, como color de fondo, color de texto, padding, borde y alineación de texto

2.2 Contenedores Grid Anidados

Una de las ventajas de CSS Grid es la posibilidad de crear contenedores Grid anidados. Esto permite crear diseños complejos donde un elemento grid puede convertirse en un contenedor grid para sus elementos hijos.

Ejemplo:

CSS
    
      .grid-container {
        display: grid;
        gap: 10px;
        border: 2px solid #000;
      }

      .grid-item {
        background-color: #3498db;
        color: white;
        padding: 20px;
        border: 1px solid #fff;
        text-align: center;
      }

      .nested-grid-container {
        display: grid;
        gap: 5px;
        background-color: #2980b9;
        padding: 10px;
      }

      .nested-grid-item {
        background-color: #1abc9c;
        padding: 10px;
        border: 1px solid #fff;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Contenedores Grid Anidados</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div class="grid-container">
            <div class="grid-item">Elemento 1</div>
            <div class="grid-item">
              <div class="nested-grid-container">
                <div class="nested-grid-item">Elemento Anidado 1</div>
                <div class="nested-grid-item">Elemento Anidado 2</div>
              </div>
            </div>
            <div class="grid-item">Elemento 3</div>
          </div>
        </body>
      </html>
    
  

Explicación del código:

  • .nested-grid-container: define un contenedor Grid anidado usando la propiedad display: grid, y también añade espacios entre los elementos (gap: 5px) y padding interno (padding: 10px)
  • .nested-grid-item: define estilos básicos para los elementos dentro del contenedor Grid anidado, como color de fondo, padding y borde

2.3 Gestión del comportamiento del contenedor Grid

La propiedad display: grid también permite usar propiedades adicionales para gestionar el comportamiento del contenedor Grid. Por ejemplo, la propiedad grid-auto-flow gestiona la colocación automática de los elementos.

Ejemplo:

CSS
    
      .grid-container {
        display: grid;
        grid-auto-flow: row;
        gap: 10px;
        border: 2px solid #000;
      }

      .grid-item {
        background-color: #3498db;
        color: white;
        padding: 20px;
        border: 1px solid #fff;
        text-align: center;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Contenedor Grid con auto-flow</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div class="grid-container">
            <div class="grid-item">Elemento 1</div>
            <div class="grid-item">Elemento 2</div>
            <div class="grid-item">Elemento 3</div>
            <div class="grid-item">Elemento 4</div>
            <div class="grid-item">Elemento 5</div>
          </div>
        </body>
      </html>
    
  

2.4 Uso de Flexbox dentro de un contenedor Grid

En algunos casos, usar Flexbox dentro de los elementos grid puede ser útil para crear layouts más complejos. Esto permite combinar las ventajas de ambas tecnologías.

CSS
    
      .grid-container {
        display: grid;
        gap: 10px;
        border: 2px solid #000;
      }

      .grid-item {
        background-color: #3498db;
        color: white;
        padding: 20px;
        border: 1px solid #fff;
        text-align: center;
      }

      .flex-container {
        display: flex;
        gap: 10px;
      }

      .flex-item {
        background-color: #1abc9c;
        padding: 10px;
        flex: 1;
        text-align: center;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Flexbox dentro de un contenedor Grid</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div class="grid-container">
            <div class="grid-item flex-container">
              <div class="flex-item">Elemento Flex 1</div>
              <div class="flex-item">Elemento Flex 2</div>
            </div>
            <div class="grid-item">Elemento 2</div>
            <div class="grid-item">Elemento 3</div>
          </div>
        </body>
      </html>
    
  

Explicación del código:

  • .flex-container: define un elemento grid como un contenedor flex con la propiedad display: flex
  • .flex-item: define estilos básicos para los elementos dentro del contenedor flex, como color de fondo, padding y flexibilidad (flex: 1)
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION