CodeGym /Cursos /Frontend SELF ES /Definición de filas y columnas

Definición de filas y columnas

Frontend SELF ES
Nivel 27 , Lección 2
Disponible

3.1 Propiedad grid-template-columns

CSS Grid Layout permite crear diseños complejos de páginas web usando filas y columnas. Dos propiedades clave para definir la estructura de la grid son grid-template-rows y grid-template-columns. Estas propiedades permiten establecer el número y tamaño de las filas y columnas en el contenedor de Grid, dando a los desarrolladores control total sobre la disposición de los elementos.

La propiedad grid-template-columns define el número y tamaño de las columnas en la grid. Acepta uno o más valores, que pueden especificarse en diferentes unidades de medida, como píxeles (px), porcentajes (%), unidades de fracción (fr), y otras.

Ejemplo 1: Definiendo tamaños de columnas fijos

En este ejemplo, la grid consistirá de tres columnas. La primera columna tendrá un ancho de 100px, la segunda columna tendrá un ancho de 200px, y la tercera columna un ancho de 100px:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: 100px 200px 100px; /* Tres columnas con tamaños fijos */
      }
    
  

Ejemplo 2: Uso de unidades de fracción (fr)

En este ejemplo, la grid consistirá de tres columnas. La primera y la tercera columnas ocuparán la misma cantidad de espacio, y la segunda columna será el doble de ancha que cada una de ellas:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: 1fr 2fr 1fr; /* Tres columnas con tamaños flexibles */
      }
    
  

Ejemplo 3: Uso de repetición (repeat)

En este ejemplo se utiliza la función repeat, lo que permite simplificar la declaración. La grid consistirá de tres columnas de igual ancho:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr); /* Tres columnas iguales */
      }
    
  

Ejemplo 4: Definiendo tamaños mínimos y máximos (minmax)

En este ejemplo, cada una de las tres columnas tendrá un ancho mínimo de 100px y un tamaño flexible que puede aumentar hasta 1fr según el espacio disponible:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, minmax(100px, 1fr)); /* Tres columnas con ancho mínimo de 100px y tamaños flexibles */
      }
    
  

3.2 Propiedad grid-template-rows

La propiedad grid-template-rows es similar a grid-template-columns, pero define el número y tamaño de las filas en la grid. También acepta uno o más valores que pueden especificarse en diferentes unidades de medida.

Ejemplo 1: Definiendo tamaños de filas fijos

En este ejemplo, la grid consistirá de tres filas. La primera fila tendrá una altura de 50px, la segunda fila tendrá una altura de 100px, y la tercera fila tendrá una altura de 50px:

CSS
    
      .grid-container {
        display: grid;
        grid-template-rows: 50px 100px 50px; /* Tres filas con tamaños fijos */
      }
    
  

Ejemplo 2: Uso de unidades de fracción (fr)

En este ejemplo, la grid consistirá de tres filas. La primera y la tercera filas ocuparán la misma cantidad de espacio, y la segunda fila será el doble de alta que cada una de ellas:

CSS
    
      .grid-container {
        display: grid;
        grid-template-rows: 1fr 2fr 1fr; /* Tres filas con tamaños flexibles */
      }
    
  

Ejemplo 3: Uso de repetición (repeat)

En este ejemplo se utiliza la función repeat, lo que permite simplificar la declaración. La grid consistirá de tres filas de igual altura:

CSS
    
      .grid-container {
        display: grid;
        grid-template-rows: repeat(3, 1fr); /* Tres filas iguales */
      }
    
  

Ejemplo 4: Definiendo tamaños mínimos y máximos (minmax)

En este ejemplo, cada una de las tres filas tendrá una altura mínima de 50px y un tamaño flexible que puede aumentar hasta 1fr según el espacio disponible:

CSS
    
      .grid-container {
        display: grid;
        grid-template-rows: repeat(3, minmax(50px, 1fr)); /* Tres filas con altura mínima de 50px y tamaños flexibles */
      }
    
  

3.3 Combinación de propiedades

Combinación de propiedades grid-template-rows y grid-template-columns

Estas propiedades pueden usarse juntas para crear grids complejas con diferentes tamaños de filas y columnas.

En este ejemplo, la grid consistirá de dos columnas: la primera columna ocupará 1 parte del espacio disponible, y la segunda columna — 2 partes. La grid también consistirá de dos filas: la primera fila tendrá una altura de 100px, y la segunda fila tendrá una altura de 200px.

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: 1fr 2fr;
        grid-template-rows: 100px 200px;
      }
    
  

Ejemplo de implementación completa:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: 1fr 2fr;
        grid-template-rows: 100px 200px;
        gap: 10px;
      }

      .grid-item {
        background-color: #3498db;
        color: white;
        padding: 20px;
        text-align: center;
        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>Ejemplo de CSS 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 class="grid-item">Elemento 4</div>
          </div>
        </body>
      </html>
    
  

Explicación del código:

  • .grid-container: define el contenedor como un grid container con dos columnas y dos filas. Los espacios entre los elementos se establecen usando la propiedad gap
  • .grid-item: define estilos básicos para los elementos en la grid, tales como el color de fondo, el color del texto, el relleno, la alineación del texto y el borde
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION