H7 - Lijsten en tabellen
00 - Je eigen inhoud krijgt lijsten en een tabel
Je breidt Over uit met vaardigheden en werkwijze, zet het bestaande menu in een lijst en voegt bij Portfolio een compacte projecttabel toe. Alle onderdelen blijven in dezelfde vier pagina’s en gebruiken dezelfde CSS.
01 - Wanneer gebruik je een lijst?
Een lijst gebruik je als meerdere onderdelen bij elkaar horen. Denk aan boodschappen, stappen, kenmerken, menu-items of een opsomming van onderwerpen.
- Gebruik een lijst als de onderdelen bij elkaar horen.
- Gebruik geen losse alinea's als het eigenlijk een opsomming is.
- Elke regel in een HTML-lijst staat in een
<li>-element. listaat voor list item.
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
De browser zet standaard bullets voor een ongeordende lijst.
Actie — Bouw verder
- Werk verder op over.html en zoek bij je tekst drie of meer vaardigheden of interesses die bij elkaar horen.
- Zet deze in één ul met li-elementen in plaats van losse alinea's.
- Behoud de rest van je Over-pagina en controleer de lijst in de browser.
02 - Ongeordende lijst: ul
Een ongeordende lijst maak je met <ul>. De volgorde is dan niet het belangrijkste.
Het gaat vooral om een verzameling onderdelen.
<h2>Benodigdheden</h2>
<ul>
<li>Computer</li>
<li>Browser</li>
<li>Code-editor</li>
<li>Map voor je website</li>
</ul>
- Gebruik
<ul>voor gewone opsommingen. - Zet alleen
<li>-elementen direct in een<ul>. - Binnen een
<li>mag wel weer tekst, een link of later zelfs een nieuwe lijst staan.
Actie — Bouw verder
- Breid dezelfde vaardighedenlijst uit met concrete voorbeelden uit je eigen werk.
- Controleer dat direct binnen ul alleen li-elementen staan en dat elk onderdeel een eigen li heeft.
- Bewaar deze lijst op Over; je gaat hem in item 4 verder structureren.
03 - Geordende lijst: ol
Een geordende lijst maak je met <ol>. Die gebruik je als de volgorde belangrijk is,
bijvoorbeeld bij stappenplannen.
<h2>Stappenplan</h2>
<ol>
<li>Maak een map voor je website.</li>
<li>Maak een bestand met de naam index.html.</li>
<li>Open het bestand in je browser.</li>
<li>Controleer of je pagina zichtbaar is.</li>
</ol>
- De browser zet standaard nummers voor een geordende lijst.
- Gebruik
<ol>als stap 1 echt vóór stap 2 moet komen. - Gebruik
<ul>als de volgorde niet veel uitmaakt.
Actie — Bouw verder
- Voeg op over.html bij je werkwijze een ol toe met drie stappen, bijvoorbeeld idee, uitwerking en controle.
- Behoud de vaardighedenlijst als ul: daarin is de volgorde minder belangrijk.
- Controleer het verschil tussen de bullets van ul en de volgordenummers van ol.
04 - Lijsten nesten
Je kunt een lijst in een lijst zetten. Dat heet nesten. Let goed op dat de binnenste lijst
volledig binnen een <li> staat.
<ul>
<li>HTML
<ul>
<li>Headings</li>
<li>Paragrafen</li>
<li>Afbeeldingen</li>
</ul>
</li>
<li>CSS
<ul>
<li>Kleur</li>
<li>Padding</li>
<li>Margin</li>
</ul>
</li>
</ul>
- De buitenste lijst heeft twee hoofditems: HTML en CSS.
- In elk hoofditem staat een tweede lijst.
- De binnenste lijst staat dus binnen het bijbehorende
<li>-element. - Net als bij andere containers moet de volgorde van openen en sluiten kloppen.
Actie — Bouw verder
- Voeg binnen één bestaande li van je vaardighedenlijst een ul met twee concrete subvaardigheden toe.
- Controleer dat de binnenste lijst volledig binnen die ene li staat en goed wordt gesloten.
- Behoud de sublijst alleen waar deze echt iets verduidelijkt; je bestaande werkwijze-ol blijft staan.
05 - Lijsten in navigatie
Een menu is eigenlijk ook een lijst met links. Daarom zie je vaak een <nav>
met daarin een <ul>.
<nav>
<ul>
<li><a href="index.html" aria-current="page">Home</a></li>
<li><a href="portfolio.html">Portfolio</a></li>
<li><a href="over.html">Over</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</nav>
<nav>geeft aan dat dit navigatie is.<ul>geeft aan dat het om een lijst met menu-items gaat.- Elke link staat in een eigen
<li>. - Later kun je met CSS de bullets weghalen en het menu naast elkaar zetten.
Actie — Bouw verder
- Zet het bestaande vierlinksmenu op elke pagina om naar
nav > ul > li > a, zoals in het voorbeeld. - Behoud de hrefs naar index.html, portfolio.html, over.html en contact.html en de juiste aria-current per pagina.
- Klik alle bestemmingen na. Dat het menu nu nog onder elkaar staat is goed; de vormgeving met flexbox volgt in H10.
06 - Wanneer gebruik je een tabel?
Een tabel gebruik je voor gegevens die logisch in rijen en kolommen staan. Denk aan een rooster, prijslijst, scoretabel of vergelijking.
- Gebruik tabellen voor echte tabeldata.
- Gebruik tabellen niet om een pagina-layout te bouwen.
- Voor layout gebruik je later CSS, zoals flexbox en grid.
- Een tabel moet leesbaar blijven, ook zonder extra vormgeving.
<table>
<tr>
<th>Vak</th>
<th>Dag</th>
<th>Tijd</th>
</tr>
<tr>
<td>HTML</td>
<td>Maandag</td>
<td>09:00</td>
</tr>
</table>
Actie — Bouw verder
- Voeg op portfolio.html na de projectsectie een tweede section toe met een kleine projecttabel:
Project,RolenJaar. - Begin met een koprij en één gegevensrij die naar één van je eigen projecten verwijst.
- Gebruik de tabel voor deze gegevens; je pagina-layout blijft met de gewone hoofdonderdelen opgebouwd.
07 - De basis van een tabel
Een tabel bestaat uit een <table>-container. Daarin staan rijen.
Een rij maak je met <tr>. In een rij staan cellen.
<table>: de hele tabel.<tr>: een table row, dus een rij.<th>: een table header, dus een kopcel.<td>: table data, dus een gewone cel.
<table>
<tr>
<th>Naam</th>
<th>Leeftijd</th>
</tr>
<tr>
<td>Lisa</td>
<td>12</td>
</tr>
<tr>
<td>Amir</td>
<td>13</td>
</tr>
</table>
Kopcellen worden standaard vet weergegeven. Ze geven betekenis aan de kolommen.
Actie — Bouw verder
- Breid dezelfde tabel uit tot drie gegevensrijen, één per bestaand project.
- Gebruik th voor de kolomkoppen en td voor de projectgegevens. Controleer dat elke rij drie cellen heeft.
- De tabel komt bij je projectkaarten, niet in plaats van de kaarten.
08 - Caption, thead en tbody
Bij grotere tabellen kun je extra structuur toevoegen. Dat maakt de tabel duidelijker.
<caption>geeft de tabel een titel of korte beschrijving.<thead>bevat de koprij van de tabel.<tbody>bevat de gewone gegevensrijen.- Deze tags helpen mensen en software beter begrijpen wat de tabel voorstelt.
<table>
<caption>Lesrooster</caption>
<thead>
<tr>
<th>Vak</th>
<th>Dag</th>
<th>Tijd</th>
</tr>
</thead>
<tbody>
<tr>
<td>HTML</td>
<td>Maandag</td>
<td>09:00</td>
</tr>
<tr>
<td>CSS</td>
<td>Woensdag</td>
<td>10:30</td>
</tr>
</tbody>
</table>
Actie — Bouw verder
- Voeg aan dezelfde tabel een caption toe, bijvoorbeeld
Mijn projecten in het kort. - Zet de koprij in thead en de drie projectrijen in tbody. Controleer de nesting.
- Behoud de gegevens, kolommen en de eerdere drie projectblokken.
09 - Tabellen leesbaar maken met CSS
Tabellen werken zonder CSS, maar met een paar eenvoudige CSS-regels worden ze veel leesbaarder.
table {
width: 100%;
border-collapse: collapse;
}
th,
td {
padding: 12px;
border: 1px solid gray;
text-align: left;
}
th {
background-color: lightgray;
}
width: 100%laat de tabel de beschikbare breedte gebruiken.border-collapse: collapselaat de randen netjes samenvallen.paddinggeeft de cellen binnenruimte.text-align: leftzet de tekst links uitgelijnd.- Gebruik CSS alleen voor vormgeving. De tabelstructuur blijft HTML.
Actie — Bouw verder
- Maak de bestaande tabel leesbaar in style.css: width:100%, border-collapse:collapse en padding en borders voor th en td.
- Gebruik kleurvariabelen voor tekst, achtergrond en rand en lijn de tekst links uit.
- Bekijk dezelfde tabel naast de projectblokken. Verander alleen de tabelopmaak, niet opnieuw de HTML-structuur.
10 - Best practices
- Gebruik
<ul>voor opsommingen waarbij de volgorde niet belangrijk is. - Gebruik
<ol>voor stappenplannen of ranglijsten. - Zet elk lijstonderdeel in een
<li>. - Nest lijsten alleen als de structuur daardoor duidelijker wordt.
- Gebruik tabellen alleen voor gegevens in rijen en kolommen.
- Gebruik
<th>voor kopcellen en<td>voor gewone cellen. - Geef grotere tabellen bij voorkeur een
<caption>. - Gebruik geen tabellen om de layout van een pagina te maken.
Actie — Controleer en rond af
- Controleer op Over welke lijsten ul en welke ol moeten zijn, en controleer de nesting van je sublijst.
- Controleer op Portfolio de drie kolommen, kopcellen, caption, thead en tbody.
- Controleer de menu-lijst op alle vier de pagina's. Herstel bestaande fouten in plaats van nog een los voorbeeld te maken.
11 - Afronding van je bestaande site
Actie — Controleer en rond af
- Loop je bestaande site na: Over heeft een vaardighedenlijst en werkwijze; Portfolio heeft drie projecten en de bijbehorende tabel.
- Controleer de leesbaarheid van tabel en lijsten met de al bestaande stylesheet.
- Klik het menu door op alle pagina's en valideer de aangepaste HTML. Begin geen nieuw HTML- of CSS-bestand.
Quiz
-
Vraag 1. Welke tag gebruik je voor een ongeordende lijst?
Goed. Een ongeordende lijst maak je met<ul>.Niet goed. Voor bullets gebruik je<ul>. -
Vraag 2. Welke tag gebruik je voor een geordende lijst?
Goed. Een genummerde lijst maak je met<ol>.Niet goed. Voor een genummerde lijst gebruik je<ol>. -
Vraag 3. Waarvoor staat
<li>?
Goed.listaat voor list item.Niet goed. Een lijstonderdeel heet een list item. -
Vraag 4. Wanneer gebruik je beter
<ol>dan<ul>?
Goed. Voor stappenplannen gebruik je vaak<ol>.Niet goed.<ol>gebruik je als de volgorde belangrijk is. -
Vraag 5. Welke tag maakt de hele tabel?
Goed. De tabel begint met<table>.Niet goed. De container voor de hele tabel is<table>. -
Vraag 6. Welke tag gebruik je voor een tabelrij?
Goed. Een rij maak je met<tr>.Niet goed.trstaat voor table row. -
Vraag 7. Wat is het verschil tussen
<th>en<td>?
Goed. Kopcellen geef je aan met<th>.Niet goed.<th>is voor kopcellen,<td>voor gewone cellen. -
Vraag 8. Waarvoor gebruik je
<caption>?
Goed. Een caption beschrijft de tabel.Niet goed.<caption>is de titel of beschrijving van een tabel. -
Vraag 9. Waarvoor gebruik je tabellen?
Goed. Tabellen zijn bedoeld voor tabeldata.Niet goed. Gebruik tabellen voor data, niet voor pagina-layout. -
Vraag 10. Welke CSS-property laat tabelranden netjes samenvallen?
Goed. Metborder-collapse: collapse;vallen tabelranden samen.Niet goed. Deze property heetborder-collapse.