Advertisement
  1. Web Design
  2. Material Design Lite

Leer Material Design Lite: Navigatie

Scroll to top
Read Time: 5 min
This post is part of a series called Learning Material Design Lite.
Learning Material Design Lite: The Grid
Learning Material Design Lite: Buttons

Dutch (Nederlands) translation by Frank van den Heuvel (you can also view the original English article)

De navigatie is een onmisbaar gedeelte van de UI op een website. Ongeacht de grootte — één pagina, of volledig e-commerce — een website moet een navigatie hebben die gebruikers eenvoudig naar de pagina's en secties laat gaan. Na onze vorige tutorial over Material Design Lite Grid, gaan we het in dit gedeelte hebben over een andere component van MDL: de navigatie.

Voordat je begint, eerst de links naar de MDL bibliotheken, dus de stylesheets en JavaScript toevoegen aan de head sectie van de pagina:

1
<link rel="stylesheet" href="//fonts.googleapis.com/icon?family=Material+Icons">
2
<link href='https://fonts.which is googleapis.com/css?family=Roboto:400,300,300italic,500,400italic,700,700italic' rel='stylesheet' type='text/css'>
3
<link rel="stylesheet" href="//storage.googleapis.com/code.getmdl.io/1.0.1/material.teal-red.min.css" />
4
<script src="//storage.googleapis.com/code.getmdl.io/1.0.1/material.min.js"></script>

Nu kunnen we beginnen met het bouwen van de navigatie.

Basis Navigatie

Navigatie in MDL is een subonderdeel van layout, samen met de andere onderdelen zoals de grid, tabs en de footer. De basisvorm van de navigatie in MDL bestaat uit de sitenaam, een paar link menu's, en een off-canvas navigatie.

Om dit te maken, voeg je eerst een lege div toe met daarbinnen de mdl-layout en mdl-js-layout. Deze twee classes zijn vereist. De class mdl-layout past vooraf gedefinieerde stijlen toe die er in principe voor zorgen dat deze UI-component, hoofdzakelijk de navigatie, een juiste layout heeft. Ondertussen, voegt de mdl-js-layout door middel van JavaScript enkele dynamische eigenschappen toe die het mogelijk maken nieuwe elementen en enkele classes te gebruiken waardoor de navigatie gaat functioneren.

1
<div class="mdl-layout mdl-js-layout">
2
</div>

Maak nu binnen deze div een header element met als class mdl-layout_ _header .

1
<div class="mdl-layout mdl-js-layout">
2
  <header class="mdl-layout__header">
3
	</header>
4
</div>

Daarna maak je een nieuwe div met mdl-layout__header-row. Dit is het element waarin de navigatie wordt geplaatst.

1
<div class="mdl-layout mdl-js-layout">
2
  <header class="mdl-layout__header">
3
    <div class="mdl-layout__header-row">
4
    
5
    </div>
6
  </header>
7
</div>

Omhul de site naam met een span element met als class mdl-layout-title en een anker tag met een URL die verwijst naar de home pagina. Je kunt meteen de tekst vervangen door het logo van de website.

1
<div class="mdl-layout mdl-js-layout">
2
  <header class="mdl-layout__header">
3
    <div class="mdl-layout__header-row">
4
      <span class="mdl-layout-title">Acme</span>
5
    </div>
6
  </header>
7
</div>

Maak een div onder de site naam met als class mdl-layout-spacer. Deze div maakt ruimte tussen de site naam en de navigatie en drukt deze eventueel naar de rechterkant van de header.

1
<div class="mdl-layout mdl-js-layout">
2
  <header class="mdl-layout__header">
3
    <div class="mdl-layout__header-row">
4
      <span class="mdl-layout-title">Acme</span>
5
      <div class="mdl-layout-spacer"></div>
6
    </div>
7
  </header>
8
</div>

Nu voegen we het navigatie menu toe onder de spacer gebruikmakend van het nav element.

1
<div class="mdl-layout mdl-js-layout">
2
  <header class="mdl-layout__header">
3
    <div class="mdl-layout__header-row">
4
      <span class="mdl-layout-title">Acme</span>
5
      <div class="mdl-layout-spacer"></div>
6
      <nav class="mdl-navigation">
7
        <a class="mdl-navigation__link" href="#">Home</a>
8
        <a class="mdl-navigation__link" href="#">Blog</a>
9
        <a class="mdl-navigation__link" href="#">About</a>
10
        <a class="mdl-navigation__link" href="#">Contact</a>
11
      </nav>
12
    </div>
13
  </header>
14
</div>

Als laatste voeg je een nieuwe div toe met als class mdl-layout__drawer buiten het header element om de off- canvas navigatie te maken.

1
<div class="mdl-layout mdl-js-layout">
2
  <header class="mdl-layout__header">
3
    <div class="mdl-layout__header-row">
4
      <span class="mdl-layout-title">Acme</span>
5
      <div class="mdl-layout-spacer"></div>
6
      <nav class="mdl-navigation">
7
        <a class="mdl-navigation__link" href="#">Home</a>
8
        <a class="mdl-navigation__link" href="#">About</a>
9
        <a class="mdl-navigation__link" href="#">Contact</a>
10
      </nav>
11
    </div>
12
  </header>
13
  <div class="mdl-layout__drawer">
14
    <span class="mdl-layout-title">Acme</span>
15
    <nav class="mdl-navigation">
16
      <a class="mdl-navigation__link" href="#">Products</a>
17
      <a class="mdl-navigation__link" href="#">Services</a>
18
      <a class="mdl-navigation__link" href="#">Portfolios</a>
19
      <a class="mdl-navigation__link" href="#">Achievements</a>
20
      <a class="mdl-navigation__link" href="#">Blog</a>
21
    </nav>
22
  </div>
23
  </div>
24
</div>

Ververs de pagina en de off-canvas navigatie moet meteen werken. Je zult het "hamburger" icoon zien dat de navigatie in en uit schakelt als je erop klikt. Probeer het maar eens:

Echter, zoals je hierboven kunt zien, is de navigatiebalk, alsmede de naam van de site en het navigatie-menu onzichtbaar. MDL verbergt het doelbewust als het wordt weergegeven op tablet grootte beeld vensters. Dit is eigenlijk een weloverwogen beslissing van de MDL-team. Het horizontale menu is slecht aangepast bij horizontaal schalen, vooral als je veel menu's hebt. Op een gegeven moment zal het niet passen in een klein beeldvenster en zal het waarschijnlijk samenvouwen of de andere UI in de navigatie overlappen.

Als je het toch zichtbaar wilt houden in een kleiner beeld venster voeg dan de class mdl-layout--fixed-header toe op dezelfde regel als de mdl-layout class.

1
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
2
  ... more content here ...
3
</div>

Deze class zal de navigatie dwingen zichtbaar te blijven op telefoons en tablets.

Toevoegen van een Zoek Functie (Search Form)

Zoek functies (search forms) zijn een veelgebruikt aanvullend element binnen de website navigatie.  Ze kunnen, vooral bij uitgebreide navigaties, handig zijn om snel de content te vinden waarnaar je zoekt. Met deze functie is het niet meer dan invullen en op zoek klikken.

Je vindt de complete HTML om de zoekfunctie te bouwen onder het nav element.

1
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
2
  ... more content here ...
3
  <nav class="mdl-navigation">
4
      <a class="mdl-navigation__link" href="#">Home</a>
5
      <a class="mdl-navigation__link" href="#">About</a>
6
      <a class="mdl-navigation__link" href="#">Contact</a>
7
  </nav>
8
  <!-- start search form -->
9
  <div class="mdl-textfield mdl-js-textfield mdl-textfield--expandable">
10
    <label class="mdl-button mdl-js-button mdl-button--icon" for="search-expandable">
11
      <i class="material-icons">search</i>
12
    </label>
13
    <div class="mdl-textfield__expandable-holder">
14
      <input class="mdl-textfield__input" type="text" id="search-expandable" />
15
      <label class="mdl-textfield__label" for="search-expandable">Search text</label>
16
    </div>
17
  </div>
18
  <!-- end search form -->
19
  ... more content here ...
20
</div>

Hierbinnen kun je twee verschillende MDL componenten definiëren. Namelijk het Text Field en de Button. De button is zichtbaar als zoek icoon en breidt zich uit naar de zoek functie als erop geklikt wordt.

Een laatste opmerking

De navigatie in MDL is een overweldigend groot onderdeel gezien het aantal variaties dat we voor de verschillende scenario's kunnen maken. In deze tutorial hielden we het simpel en bouwden we een navigatie met enkel de essentiële classes.

De navigatie kan verder worden uitgebreid met hulp classes of door andere onderdelen van MDL toe te voegen. Bijvoorbeeld, we kunnen de navigatie achtergrond transparant maken en een achtergrondafbeelding gebruiken, de off-canvas navigatie op altijd zichtbaar instellen, de navigatie un-sticky maken en zelfs de link menu's vervangen door menu's met Tabs, die nuttig kunnen zijn voor een enkele pagina website.

Echter, dit navigatie component is nogal eigenzinnig.

De stijlen van de navigatie geïnspecteerd met Chrome DevTools

Bijvoorbeeld, de padding aan de linkerzijde van de navigatie is ingesteld op 72px, wat erop wijst dat de navigatie een off-canvas navigatie met "hamburger icoon" moet hebben. Maar soms hebben we niet meer dan een degelijke navigatie met basis eigenschappen nodig. Toch is de navigatie een solide onderdeel. Ik kijk uit naar verbeteringen en misschien extra functionaliteiten.

In de volgende tutorial, gaan we kijken naar twee onderdelen waarover we het al kort gehad hebben: knoppen en tekstvelden. Tot de volgende keer!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.