213 of 313 menu

Eigenschap grid-template-columns

De eigenschap grid-template-columns bepaalt het aantal en de breedte van de kolommen die een element in een grid of rooster zal innemen. De eigenschap wordt opgegeven in het ouder-element en bepaalt de breedte van de kolommen van de kind-elementen. In de waarde van de eigenschap geven we de breedte van de kolommen op in willekeurige eenheden voor afmetingen.

Bij het opgeven van waarden in pixels in de eigenschappen zullen de kolomafmetingen er exact aan voldoen. Als we het woord auto opgeven, dan zullen de kolommen alle beschikbare ruimte opvullen. Het gebruik van de eenheid fr (fractie) betekent dat alle ruimte wordt verdeeld in gelijke delen. Het voordeel van fr is de aanpassingsvermogen aan verschillende containers of schermresoluties, omdat fr ze eenvoudig verdeelt in het opgegeven aantal fracties zonder binding aan een exacte afmeting in pixels.

Syntaxis

selector { grid-template-columns: kolombreedte; }

Voorbeeld

Laten we de kolombreedtes instellen voor onze elementen in het 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; }

:

Voorbeeld

Laten we voor de eerste en derde kolom een vaste breedte in pixels instellen, en laat de tweede kolom automatisch de beschikbare ruimte opvullen:

<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; }

:

Voorbeeld

Laten we nu met behulp van de eigenschap grid-template-columns instellen dat de eerste en tweede kolom één deel van de container innemen, en de derde kolom - drie delen:

<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; }

:

Voorbeeld

Waarden, opgegeven in eenheden fr kunnen fractionele waarden aannemen. Laten we het vorige voorbeeld aanpassen door voor de tweede en derde kolom een breedte in gebroken getallen in te stellen:

<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; }

:

Voorbeeld

Laten we in de eigenschap grid-template-columns de functie repeat() opgeven, die de container vertelt dat alle drie kolommen dezelfde breedte moeten hebben:

<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; }

:

Voorbeeld

Laten we nu het vorige voorbeeld aanpassen zodat aan de drie identieke kolommen een vierde wordt toegevoegd, die twee fracties van de container zal innemen:

<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; }

:

Voorbeeld

Laten we voor de eerste twee kolommen een breedte van één fractie van de container instellen, en voor de laatste twee kolommen - twee fracties:

<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; }

:

Voorbeeld

Laten we nu de kolombreedtes instellen door waarden te combineren, opgegeven met behulp van de functie repeat() en vrije eenheden 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; }

:

Voorbeeld

Ook kan in de functie repeat() de waarde auto-fill worden opgegeven, die onze container vult met identieke kolommen van de gewenste breedte:

<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; }

:

Voorbeeld

Het is erg handig om samen met auto-fill de functie minmax op te geven, die een bereik van kolombreedtes instelt van minimale tot maximale waarde. Als de breedte van de container niet alle kolommen kan bevatten, zullen sommige ervan verplaatst worden naar een nieuwe regel, waarbij de kolommen in de regel er gelijkmatig over worden verdeeld. Laten we het vorige voorbeeld aanpassen door daarin de functie minmax op te geven. Om verschillende plaatsingsopties van kolommen te zien pas je de breedte van je browserpagina aan:

<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; }

:

Voorbeeld

Laten we nu de eigenschap auto-fit opgeven, waarvan het verschil met auto-fill erin ligt, dat het het aantal kolommen aanpast aan de beschikbare breedte van de container, door ze uit te breiden of samen te trekken:

<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; }

:

Voorbeeld

Naast fr kunnen ook waarden in % worden gebruikt, die eveneens bepalen welk deel van de container de kolom zal innemen. Hierbij wordt eerst de grootte van de kolom in % berekend, en de resterende vrije ruimte wordt verdeeld in fracties:

<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; }

:

Voorbeeld

Laten we samen de eigenschappen grid-template-columns en grid-template-rows gebruiken:

<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; }

:

Voorbeeld

Laten we met behulp van de eigenschappen grid-template-columns en grid-template-rows een tabel maken van negen cellen, gerangschikt in drie rijen. Waarbij de tweede en derde rij dezelfde breedte hebben, en elke kolom - een verschillende breedte:

<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; }

:

Voorbeeld

Laten we nu in de tabel uit het vorige voorbeeld de bovenste rij een breedte van twee fracties geven, en de eerste kolom - een halve fractie:

<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; }

:

Zie ook

  • de eigenschap grid-template-rows,
    die het aantal en de breedte van rijen in een grid bepaalt
  • de eigenschap grid-auto-columns,
    die het aantal en de breedte van kolommen in een impliciet grid bepaalt
dehyazeska