213 of 313 menu

Propiedad grid-template-columns

La propiedad grid-template-columns establece el número y el ancho de las columnas que ocupará un elemento en el grid o cuadrícula. La propiedad se especifica en el elemento padre y determina el ancho de las columnas de los elementos hijos. En el valor de la propiedad indicamos el ancho de las columnas en cualquier unidad de tamaños.

Al especificar valores en píxeles en las propiedades, los tamaños de las columnas corresponderán exactamente a ellos. Si usamos la palabra auto, las columnas llenarán todo el espacio disponible. El uso de la unidad fr (fracción) significa que todo el espacio se dividirá en partes iguales. La ventaja de fr es su adaptabilidad a diferentes contenedores o resoluciones de pantalla, ya que fr simplemente los divide en el número indicado de fracciones sin vinculación a un tamaño exacto en píxeles.

Sintaxis

selector { grid-template-columns: ancho de columna; }

Ejemplo

Vamos a establecer el ancho de las columnas para nuestros elementos en el grid:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: 50px 100px 200px 50px; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Vamos a dar a la primera y tercera columna un ancho fijo en píxeles, y que la segunda columna llene automáticamente el espacio disponible:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> </div> #parent { display: grid; grid-template-columns: 100px auto 150px; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Ahora, usando la propiedad grid-template-columns, hagamos que la primera y segunda columna ocupen una parte del contenedor, y la tercera columna - tres partes:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> </div> #parent { display: grid; grid-template-columns: 1fr 1fr 3fr; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Los valores especificados en unidades fr pueden ser fraccionarios. Vamos a modificar el ejemplo anterior, especificando para la segunda y tercera columna un ancho en números fraccionarios:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> </div> #parent { display: grid; grid-template-columns: 1fr 0.5fr 2.5fr; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Vamos a usar en la propiedad grid-template-columns la función repeat(), que indicará al contenedor que todas las tres columnas deben tener el mismo ancho:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> </div> #parent { display: grid; grid-template-columns: repeat(3, 1fr); border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Ahora modifiquemos el ejemplo anterior para que a las tres columnas iguales se añada una cuarta, que ocupará dos fracciones del contenedor:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: repeat(3, 1fr) 2fr; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Vamos a dar a las dos primeras columnas un ancho de una fracción del contenedor, y a las dos últimas columnas - de dos fracciones:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: repeat(2, 1fr) repeat(2, 2fr); border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Ahora vamos a establecer el ancho de las columnas combinando valores, especificados mediante la función repeat() y unidades libres fr:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </div> #parent { display: grid; grid-template-columns: repeat(2, 1fr) 3fr repeat(2, 2fr); border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

También en la función repeat() se puede indicar el valor auto-fill, que llenará nuestro contenedor con columnas iguales del ancho que necesitemos:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: repeat(auto-fill, 200px); border: 2px solid #696989; padding: 10px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Es muy conveniente junto con auto-fill especificar la función minmax, que establece el rango de ancho de las columnas desde un valor mínimo hasta un valor máximo. Si el ancho del contenedor no cabe todas las columnas, algunas de ellas se moverán a una nueva línea, mientras que las columnas en la línea se distribuirán uniformemente en ella. Modifiquemos el ejemplo anterior, especificando en él la función minmax. Para ver diferentes variantes de disposición de columnas cambia el ancho de la página de tu navegador:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); border: 2px solid #696989; padding: 10px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Ahora vamos a especificar la propiedad auto-fit, cuya diferencia con auto-fill radica en que ajusta la cantidad de columnas al ancho disponible del contenedor, expandiendo o comprimiéndolas:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border: 2px solid #696989; padding: 10px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

También junto con fr se pueden usar valores en %, que también determinan qué parte del contenedor ocupará la columna. En este caso, primero se calculará el tamaño de la columna en %, y el espacio libre restante se dividirá en fracciones:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: 50% 1fr 2fr 30%; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Vamos a usar juntas las propiedades grid-template-columns y grid-template-rows:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> </div> #parent { display: grid; grid-template-rows: 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr; border: 2px solid #696989; padding: 10px; width: 400px; height: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Vamos a usar las propiedades grid-template-columns y grid-template-rows para crear una tabla de nueve celdas, ubicadas en tres filas. Donde la segunda y tercera fila tendrán el mismo ancho, y cada columna - un ancho diferente:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> </div> #parent { display: grid; grid-template-rows: 60px 1fr 60px; grid-template-columns: 20% 1fr 15%; border: 2px solid #696989; padding: 10px; width: 400px; height: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ejemplo

Y ahora en la tabla del ejemplo anterior hagamos que la fila superior tenga un ancho de dos fracciones, y la primera columna - de media fracción:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> </div> #parent { display: grid; grid-template-rows: 2fr 1fr 1fr; grid-template-columns: 0.5fr 1fr 1fr; border: 2px solid #696989; padding: 10px; width: 400px; height: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ver también

  • la propiedad grid-template-rows,
    que establece el número y el ancho de las filas en el grid
  • la propiedad grid-auto-columns,
    que establece el número y el ancho de las columnas en el grid implícito
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar