R
-Online
N
havo 4
informatica
vwo 4

Flex-box:
onderdelen ordenen

Dia 32

Met flex-box kun je een groep elementen op je webpagina uitlijnen en de beschikbare ruimte flexibel verdelen. Flexbox past bij moderne vormgeving doordat het met weinig code zowel de opmaak voor computerschermen als voor mobieltjes instelt.

Standaard zorgt een flex-box ervoor dat de elementen die er in opgenomen zijn naast elkaar geplaatst worden in de beschikbare ruimte.

Om dat toe te lichten zijn hier vijf div's (boxA, boxB, boxC, boxD, boxE) ingepakt in een omvattende div (flex_bak).

≺div class="flex_bak"≻
    ≺div id=″boxA″ ≻
          box A
    ≺⁄div≻
    ≺div id=″boxB″ ≻
          box B
    ≺⁄div≻
    ≺div id=″boxC″ ≻
          box C
    ≺⁄div≻
    ≺div id=″boxD″ ≻
          box D
    ≺⁄div≻
    ≺div id=″boxE″ ≻
          box E
    ≺⁄div≻
≺⁄div≻

Het positioneren van boxen A t/m E gaat automatisch als je bij flex-bak de volgende css-regel toevoegd:

flex_bak wordt de omvattende flex-box.

.flex_bak{
  display: flex;
}

Een voorbeeld van het ordenen van je HTML als je je ontwerp wilt vormgeven met flexbox.

En de CSS-code die je dan aan dit project moet toevoegen.

Zonder flex-box zouden de vijf boxen onder elkaar geplaatst worden en ieder de volledige breedte van het scherm innemen. De flex-box zet alle flex-items (box A t/m E) naast elkaar en probeert het over de schermbreedte te verdelen.

Als dat eigenlijk te krap is kun je de eigenschap flex-wrap instellen op wrap en dan kan er doorgegaan worden op de volgende "regel"

flex-items door laten lopen op een volgende regel.

.flex_bak"{
  display: flex;
  flex-wrap: wrap;
}

De flexbox is in twee richtingen op te maken: De hoofdas is standaard van links naar rechts. De kruis-as van boven naar beneden.

flexbox richtingen

De hoofdas kan ook van boven naar beneden ingesteld worden (flex-direction:column) Dan is de kruis-as van links naar rechts.

Om bijvoorbeeld een pagina-verdeling te krijgen met drie delen naast elkaar hoef je de drie delen enkel in te pakken in een div die de eigenschap display:flex; heeft.
De elementen die ingepakt zijn worden daarmee flex-items. Die items kunnen met de eigenschap flex:25%; een breedte toegekend krijgen. Die breedte is dan 25% van de totale beschikbare breedte binnen de flex-container.

In de HTML worden de flex-items (menu, main en aside) ingepakt in de flex-container (flex_bak).

≺ div class=″flex_bak″ ≻
    ≺div class=″menu″≻
          menu
    ≺⁄div ≻
    ≺main;≻
          main
    ≺⁄main ≻
    ≺aside;≻
          aside
    ≺⁄aside ≻
≺ div ≻


In CSS wordt de flex_bak tot flex-container gemaakt.
De flex-items (menu, main en aside) krijgen een relatieve breedte.

.flex_bak{
  display: flex;
}
#menu{
  flex:25%;
}
main{
  flex:50%;
}
aside{
  flex:25%;
}


flexbox richtingen

Zie Flex-box guide voor toelichting op de eigenschappen van de flex-box (ouder) en de flex-box-items (kinderen).