Grid

Tijd: 90 min

In html/css kun je de layout van elementen op verschillende manieren opbouwen. In het begin van het internet gebruikte men tables voor het uitlijnen, daarna kwamen floats, positioning en inline-blocks. Een andere layout-tool is flexbox en sinds 2017 is daar grid bijgekomen.

Intro123Theorie

Een grid is simpelweg een raster van vakjes verdeeld in rijen en kolommen. De content van een webpagina zal een plek krijgen in het grid, in een of meerdere vakjes.

  • grid cell: een gebied van één rij en één kolom
  • grid track: een gebied van meerdere rijen of kolommen
  • grid area: een gebied van meerdere rijen en kolommen

In html bouw je een grid als volgt:

<div class="container">
   <div class="item">1</div>
   <div class="item">2</div>
   <div class="item">3</div>
   <div class="item">4</div>
   <div class="item">5/div>
   <div class="item">6</div>
</div> 

Je ziet hier een div met daarin zes andere divs. Let op:

  • De ‘container’ is de parent van de ‘items’.
  • De ‘items’ zijn children van de ‘container’.

De CSS die de children in een grid zet pas je toe op de parent:

.container {
  display: grid;
  grid-template-columns: auto auto auto;
}

De code grid-template-columns: auto auto auto; zegt het volgende: maak drie kolommen in het grid en verdeel de beschikbare breedte automatisch over deze drie kolommen.

Wanneer je een site ontwerpt houdt je natuurlijk rekening met de manier waarop deze gebouwd gaat worden; in dit geval via de methode grid.

  1. Zoek een website uit die op een grid zou kunnen zijn ontworpen.
    1. Overleg je keuze even met de docent, zodat je niet iets kiest dat onbruikbaar is voor deze oefening.
    2. Kies niet hetzelfde als je buurman/vrouw.
  2. Maak hiervan een screenshot en open dit in Photoshop.
  3. Maak met behulp van een Black/White Adjustment Layer (aanpassingslaag) het ontwerp zwartwit.
  4. Maak met behulp van een Hue/Saturation Adjustment Layer het ontwerp lichtgrijs.
  5. Teken nu in lagen erboven hoe het ontwerp op een grid in cells, tracks of area’s kan worden verdeeld.

Tip: gebruik de Inspector in je browser om de pagina te analyseren.

Laten we eens een stukje coderen. Bestudeer eerst het onderstaande voorbeeld:

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

Je ziet hoe alle children hier een unieke class hebben ‘item#’. In de CSS krijgen deze allemaal een naam mee voor grid-area die ze innemen.

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

In de CSS hierbobven zie je ook hoe de container in rijen en kolommen wordt verdeeld door de namen van de grid-area’s te benoemen. Dit geeft het volgende resultaat:

Dit is het resultaat van bovenstaande HTML en CSS

Gebruik bij de uitwerking van onderstaande opdracht informatie over Grid op W3 Schools (zie tabblad Theorie).

  1. Kies een van de 9 onderstaande ontwerpen om na te bouwen in html/css.
  2. Gebruik een leeg basisdocument om mee te werken.
  3. Zet je uitwerking online en lever de link in.
In leesvolgorde genummerd 1-9

Hieronder zie je een voorbeeld van een responsive site. Dat betekent dat de layout zich aanpast aan de grootte van het venster.

De content wordt per layout op verschillende plekken in het grid getoond.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *