CodeGym /Cursos /Frontend SELF ES /Cuadrículas Responsivas

Cuadrículas Responsivas

Frontend SELF ES
Nivel 25 , Lección 2
Disponible

3.1 Flexbox

La creación de diseños flexibles usando Flexbox y Grid es una técnica clave en el desarrollo de sitios web responsivos modernos. Estas tecnologías permiten gestionar fácilmente la colocación de elementos en la página, asegurando su adaptación a diferentes tamaños de pantalla y dispositivos.

Flexbox (Flexible Box Layout Module) está diseñado para la colocación unidimensional de elementos (ya sea en filas o columnas). Flexbox simplifica la creación de layouts flexibles y responsivos.

Conceptos básicos de Flexbox:

  • Flex-contenedor: elemento al que se le aplica la propiedad display: flex
  • Flex-elementos: elementos hijos del flex-contenedor que se colocan dentro de él

Propiedades de Flexbox

Flex-contenedor:

  • display: flex: define el elemento como un contenedor flex
  • flex-direction: establece la dirección en que se colocan los flex-elementos (row, column, row-reverse, column-reverse)
  • justify-content: controla la alineación de los flex-elementos a lo largo del eje principal (flex-start, flex-end, center, space-between, space-around)
  • align-items: controla la alineación de los flex-elementos a lo largo del eje cruzado (stretch, flex-start, flex-end, center, baseline)

Flex-elementos:

  • flex-grow: define la capacidad del elemento para crecer si hay espacio libre
  • flex-shrink: define la capacidad del elemento para encogerse si hay falta de espacio
  • flex-basis: establece el tamaño inicial del elemento antes de distribuir el espacio libre
  • align-self: sobrescribe la alineación del elemento a lo largo del eje cruzado, establecida en align-items

Ejemplo de uso de Flexbox

Crearemos un layout de tres columnas que se adaptará a diferentes tamaños de pantalla:

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Ejemplo Flexbox</title>
          <style>
            .flex-container {
              display: flex;
              justify-content: space-between;
              align-items: stretch;
              flex-wrap: wrap;
            }

            .flex-item {
              flex: 1 1 200px;
              margin: 10px;
              padding: 20px;
              background-color: #f4f4f4;
              text-align: center;
            }
          </style>
        </head>
        <body>
          <div class="flex-container">
            <div class="flex-item">Columna 1</div>
            <div class="flex-item">Columna 2</div>
            <div class="flex-item">Columna 3</div>
          </div>
        </body>
      </html>
    
  

Explicación del código:

  • .flex-container: define el contenedor como un contenedor flex, alinea los elementos con espacios iguales entre ellos y permite que los elementos se trasladen a la siguiente fila si hay falta de espacio.
  • .flex-item: flex-elementos que ocupan el mismo espacio, tienen un ancho mínimo de 200px y se distribuyen uniformemente dentro del contenedor

3.2 CSS Grid

CSS Grid Layout es un sistema de diseño bidimensional que permite crear layouts complejos usando filas y columnas.

Conceptos básicos de CSS Grid:

  • Grid-contenedor: elemento al que se le aplica la propiedad display: grid
  • Grid-elementos: elementos hijos del grid-contenedor que se colocan en la cuadrícula

Propiedades de CSS Grid

Grid-contenedor:

  • display: grid: define el elemento como un contenedor grid
  • grid-template-columns: establece el número y tamaño de las columnas en la cuadrícula
  • grid-template-rows: establece el número y tamaño de las filas en la cuadrícula
  • gap: controla los espacios entre filas y columnas
  • justify-items: controla la alineación horizontal de los grid-elementos
  • align-items: controla la alineación vertical de los grid-elementos

    Grid-elementos:

  • grid-column: define cuántas columnas el elemento va a ocupar
  • grid-row: define cuántas filas el elemento va a ocupar
  • justify-self: sobrescribe la alineación horizontal del elemento
  • align-self: sobrescribe la alineación vertical del elemento

Ejemplo de uso de CSS Grid

Crearemos un layout con tres columnas y dos filas que se adaptará a diferentes tamaños de pantalla.

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Ejemplo CSS Grid</title>
          <style>
            .grid-container {
              display: grid;
              grid-template-columns: repeat(3, 1fr);
              grid-template-rows: repeat(2, 1fr);
              gap: 10px;
            }

            .grid-item {
              padding: 20px;
              background-color: #e4e4e4;
              text-align: center;
            }
          </style>
        </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 class="grid-item">Elemento 6</div>
          </div>
        </body>
      </html>
    
  

Explicación del código:

  • .grid-container: define el contenedor como un grid-contenedor con tres columnas y dos filas, cada elemento ocupa un espacio igual
  • .grid-item: grid-elementos con espacios uniformes y fondo
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION