Diseño de cuadrícula CSS


Tabla de contenido

    Mostrar tabla de contenidos

El módulo CSS Grid Layout ofrece un sistema de diseño basado en cuadrículas, con filas y columnas, lo que facilita el diseño de páginas web sin tener que utilizar elementos flotantes ni posicionamiento:

Header

Menu

Main

Right

Footer


Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.item1 { grid-area: header; }
.item2 { grid-area: menu; }
.item3 { grid-area: main; }
.item4 { grid-area: right; }
.item5 { grid-area: footer; }

.grid-container {
  display: grid;
  grid-template-areas:
    'header header header header header header'
    'menu main main main right right'
    'menu footer footer footer footer footer';
  gap: 10px;
  background-color: #2196F3;
  padding: 10px;
}

.grid-container > div {
  background-color: rgba(255, 255, 255, 0.8);
  text-align: center;
  padding: 20px 0;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>Grid Layout</h1>

<p>The CSS Grid Layout Module offers a grid-based layout system, with rows and columns, making it easier to design web pages without having to use floats and positioning:</p>

<div class="grid-container">
  <div class="item1">Header</div>
  <div class="item2">Menu</div>
  <div class="item3">Main</div>  
  <div class="item4">Right</div>
  <div class="item5">Footer</div>
</div>

</body>
</html>


Un diseño de cuadrícula debe tener un elemento principal con la propiedad display establecida en grid.

Los elementos secundarios directos del contenedor de la cuadrícula se convierten automáticamente en elementos de la cuadrícula.

1
2
3
4
5
6
7

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: grid;
  gap: 10px;
  background-color: #2196F3;
  padding: 10px;
}

.grid-item {
  background-color: rgba(255, 255, 255, 0.8);
  text-align: center;
  padding: 20px;
  font-size: 30px;
}

.item1 {
  grid-row: 1;
  grid-column: 1;
}

.item2 {
  grid-row: 1;
  grid-column: 2;
}

.item3 {
  grid-row: 1;
  grid-column: 3;
}

.item4 {
  grid-row: 2;
  grid-column: 1;
}

.item5 {
  grid-row: 2;
  grid-column: 2;
}

.item6 {
  grid-row: 2;
  grid-column: 3;
}

.item7 {
  grid-row: 3;
  grid-column: 1 / span 3;
}
</style>
</head>
<body>

<div class="grid-container">
  <div class="grid-item item1">1</div>
  <div class="grid-item item2">2</div>
  <div class="grid-item item3">3</div>  
  <div class="grid-item item4">4</div>
  <div class="grid-item item5">5</div>
  <div class="grid-item item6">6</div>  
  <div class="grid-item item7">7</div>
</div>

<p>A Grid Layout must have a parent element with the <em>display</em> property set to <em>grid</em>.</p>

<p>Direct child elements(s) of the grid container automatically becomes grid items.</p>

</body>
</html>

Diseño de cuadrícula

El módulo CSS Grid Layout ofrece un sistema de diseño basado en cuadrículas, con filas y columnas, lo que facilita el diseño de páginas web sin tener que utilizar elementos flotantes ni posicionamiento.


Soporte del navegador

Las propiedades de la cuadrícula son compatibles con todos los navegadores modernos.

57.0 16.0 52.0 10 44

Elementos de cuadrícula

Un diseño de cuadrícula consta de un elemento principal con uno o más elementos secundarios.

Ejemplo

<div 
  class="grid-container">
  <div class="grid-item">1</div>
  <div 
  class="grid-item">2</div>
  <div class="grid-item">3</div>
  <div class="grid-item">4</div>
  <div 
  class="grid-item">5</div>
  <div class="grid-item">6</div>
  <div class="grid-item">7</div>
  <div 
  class="grid-item">8</div>
  <div class="grid-item">9</div>
</div>

1

2

3

4

5

6

7

8

9

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: grid;
  grid-template-columns: auto auto auto;
  background-color: #2196F3;
  padding: 10px;
}
.grid-item {
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(0, 0, 0, 0.8);
  padding: 20px;
  font-size: 30px;
  text-align: center;
}
</style>
</head>
<body>

<h1>Grid Elements</h1>

<p>A Grid Layout must have a parent element with the <em>display</em> property set to <em>grid</em> or <em>inline-grid</em>.</p>

<p>Direct child element(s) of the grid container automatically becomes grid items.</p>

<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>  
  <div class="grid-item">4</div>
  <div class="grid-item">5</div>
  <div class="grid-item">6</div>  
  <div class="grid-item">7</div>
  <div class="grid-item">8</div>
  <div class="grid-item">9</div>  
</div>

</body>
</html>




Propiedad de visualización

Un elemento HTML se convierte en un contenedor de cuadrícula cuando su propiedad display se establece en cuadrícula o cuadrícula en línea.

Ejemplo

 .grid-container {
  
  display: grid;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: grid;
  grid-template-columns: auto auto auto;
  background-color: #2196F3;
  padding: 10px;
}

.grid-item {
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(0, 0, 0, 0.8);
  padding: 20px;
  font-size: 30px;
  text-align: center;
}
</style>
</head>
<body>

<h1>display: grid</h1>

<p>Use display: grid; to make a block-level grid container:</p>

<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>  
  <div class="grid-item">4</div>
  <div class="grid-item">5</div>
  <div class="grid-item">6</div>  
  <div class="grid-item">7</div>
  <div class="grid-item">8</div>
  <div class="grid-item">9</div>  
</div>

</body>
</html>


Ejemplo

 .grid-container {
  
  display: inline-grid;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: inline-grid;
  grid-template-columns: auto auto auto;
  background-color: #2196F3;
  padding: 10px;
}

.grid-item {
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(0, 0, 0, 0.8);
  padding: 20px;
  font-size: 30px;
  text-align: center;
}
</style>
</head>
<body>

<h1>display: inline-grid</h1>

<p>Use display: inline-grid; to make an inline grid container:</p>

<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>  
  <div class="grid-item">4</div>
  <div class="grid-item">5</div>
  <div class="grid-item">6</div>  
  <div class="grid-item">7</div>
  <div class="grid-item">8</div>
  <div class="grid-item">9</div>  
</div>

</body>
</html>


Todos los hijos directos del contenedor de la cuadrícula se convierten automáticamente en elementos de la cuadrícula.


Columnas de cuadrícula

Las líneas verticales de los elementos de la cuadrícula se denominan columnas.


Filas de cuadrícula

Las líneas horizontales de los elementos de la cuadrícula se denominan filas.


Brechas de red

Los espacios entre cada columna/fila se denominan espacios.

Puede ajustar el tamaño del espacio utilizando una de las siguientes propiedades:

  • column-gap
  • row-gap
  • gap

Ejemplo

La propiedad column-gap establece el espacio entre las columnas:

 .grid-container {
  
  display: grid;
  column-gap: 50px;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: grid;
  column-gap: 50px;
  grid-template-columns: auto auto auto;
  background-color: #2196F3;
  padding: 10px;
}

.grid-item {
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(0, 0, 0, 0.8);
  padding: 20px;
  font-size: 30px;
  text-align: center;
}
</style>
</head>
<body>

<h1>The column-gap Property</h1>

<p>Use the <em>column-gap</em> property to adjust the space between the columns:</p>

<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>  
  <div class="grid-item">4</div>
  <div class="grid-item">5</div>
  <div class="grid-item">6</div>  
  <div class="grid-item">7</div>
  <div class="grid-item">8</div>
  <div class="grid-item">9</div>  
</div>

</body>
</html>


Ejemplo

La propiedad row-gap establece el espacio entre las filas:

 .grid-container {
  
  display: grid;
  row-gap: 50px;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: grid;
  row-gap: 50px;
  grid-template-columns: auto auto auto;
  background-color: #2196F3;
  padding: 10px;
}

.grid-item {
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(0, 0, 0, 0.8);
  padding: 20px;
  font-size: 30px;
  text-align: center;
}
</style>
</head>
<body>

<h1>The row-gap Property</h1>

<p>Use the <em>row-gap</em> property to adjust the space between the rows:</p>

<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>  
  <div class="grid-item">4</div>
  <div class="grid-item">5</div>
  <div class="grid-item">6</div>  
  <div class="grid-item">7</div>
  <div class="grid-item">8</div>
  <div class="grid-item">9</div>  
</div>

</body>
</html>


Ejemplo

La propiedad gap es una propiedad abreviada para espacio entre filas y el Propiedades de columna-gap:

 .grid-container {
  
  display: grid;
  gap: 50px 100px;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: grid;
  gap: 50px 100px;
  grid-template-columns: auto auto auto;
  background-color: #2196F3;
  padding: 10px;
}

.grid-item {
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(0, 0, 0, 0.8);
  padding: 20px;
  font-size: 30px;
  text-align: center;
}
</style>
</head>
<body>

<h1>The gap Property</h1>

<p>Use the <em>gap</em> shorthand property to adjust the space between the columns and rows.</p>

<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>  
  <div class="grid-item">4</div>
  <div class="grid-item">5</div>
  <div class="grid-item">6</div>  
  <div class="grid-item">7</div>
  <div class="grid-item">8</div>
  <div class="grid-item">9</div>  
</div>

</body>
</html>


Ejemplo

La propiedad espacio también se puede utilizar para establecer tanto el espacio entre filas como el espacio de columna en un valor:

 .grid-container {
  
  display: grid;
  gap: 50px;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: grid;
  gap: 50px;
  grid-template-columns: auto auto auto;
  background-color: #2196F3;
  padding: 10px;
}

.grid-item {
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(0, 0, 0, 0.8);
  padding: 20px;
  font-size: 30px;
  text-align: center;
}
</style>
</head>
<body>

<h1>The gap Property:</h1>

<p>Use the <em>gap</em> shorthand property to adjust the space between the columns and rows:</p>

<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>  
  <div class="grid-item">4</div>
  <div class="grid-item">5</div>
  <div class="grid-item">6</div>  
  <div class="grid-item">7</div>
  <div class="grid-item">8</div>
  <div class="grid-item">9</div>  
</div>

</body>
</html>



Líneas de cuadrícula

Las líneas entre columnas se denominan líneas de columnas.

Las líneas entre filas se llaman líneas de fila.

Consulte los números de línea al colocar un elemento de cuadrícula en un contenedor de cuadrícula:

Ejemplo

Coloque un elemento de la cuadrícula en la línea de columna 1 y déjelo terminar en la línea de columna 3:

 .item1 {

    grid-column-start: 1;
  grid-column-end: 3;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: grid;
  grid-template-columns: auto auto auto;
  gap: 10px;
  background-color: #2196F3;
  padding: 10px;
}

.grid-container > div {
  background-color: rgba(255, 255, 255, 0.8);
  text-align: center;
  padding: 20px 0;
  font-size: 30px;
}

.item1 {
  grid-column-start: 1;
  grid-column-end: 3;
}
</style>
</head>
<body>

<h1>Grid Lines</h1>

<div class="grid-container">
  <div class="item1">1</div>
  <div class="item2">2</div>
  <div class="item3">3</div>  
  <div class="item4">4</div>
  <div class="item5">5</div>
  <div class="item6">6</div>
  <div class="item7">7</div>
  <div class="item8">8</div>  
</div>

<p>You can refer to line numbers when placing grid items.</p>

</body>
</html>


Ejemplo

Coloque un elemento de la cuadrícula en la línea de fila 1 y déjelo terminar en la línea de fila 3:

 .item1 {

    grid-row-start: 1;
  grid-row-end: 3;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: grid;
  grid-template-columns: auto auto auto;
  gap: 10px;
  background-color: #2196F3;
  padding: 10px;
}

.grid-container > div {
  background-color: rgba(255, 255, 255, 0.8);
  text-align: center;
  padding: 20px 0;
  font-size: 30px;
}

.item1 {
  grid-row-start: 1;
  grid-row-end: 3;
}
</style>
</head>
<body>

<h1>Grid Lines</h1>

<div class="grid-container">
  <div class="item1">1</div>
  <div class="item2">2</div>
  <div class="item3">3</div>  
  <div class="item4">4</div>
  <div class="item5">5</div>
  <div class="item6">6</div>
  <div class="item7">7</div>
  <div class="item8">8</div>  
</div>

<p>You can refer to line numbers when placing grid items.</p>

</body>
</html>



Todas las propiedades de la cuadrícula CSS

column-gap

Especifica el espacio entre las columnas.

gap

Una propiedad abreviada para las propiedades row-gap y column-gap

grid

Una propiedad abreviada para grid-template-rows, columnas de plantilla de cuadrícula, áreas de plantilla de cuadrícula, filas automáticas de cuadrícula, grid-auto-columns y las propiedades grid-auto-flow

grid-area

Especifica un nombre para el elemento de la cuadrícula o esta propiedad es una propiedad abreviada para grid-row-start, grid-column-start, grid-row -end y grid-column-end propiedades

grid-auto-columns

Especifica un tamaño de columna predeterminado

grid-auto-flow

Especifica cómo se insertan los elementos colocados automáticamente en la cuadrícula.

grid-auto-rows

Especifica un tamaño de fila predeterminado

grid-column

Una propiedad abreviada para las propiedades grid-column-start y grid-column-end

grid-column-end

Especifica dónde finalizar el elemento de la cuadrícula.

grid-column-gap

Especifica el tamaño del espacio entre columnas.

grid-column-start

Especifica dónde comenzar el elemento de la cuadrícula.

grid-gap

Una propiedad abreviada para las propiedades grid-row-gap y grid-column-gap

grid-row

Una propiedad abreviada para las propiedades grid-row-start y grid-row-end

grid-row-end

Especifica dónde finalizar el elemento de la cuadrícula.

grid-row-gap

Especifica el tamaño del espacio entre filas.

grid-row-start

Especifica dónde comenzar el elemento de la cuadrícula.

grid-template

Una propiedad abreviada para grid-template-rows, grid-template-columns y propiedades áreas de cuadrícula

grid-template-areas

Especifica cómo mostrar columnas y filas, utilizando elementos de cuadrícula con nombre

grid-template-columns

Especifica el tamaño de las columnas y cuántas columnas hay en un diseño de cuadrícula.

grid-template-rows

Especifica el tamaño de las filas en un diseño de cuadrícula.

row-gap

Especifica el espacio entre las filas de la cuadrícula.