HTML opfrissing

104
HTML Een opfrissing

Transcript of HTML opfrissing

Page 1: HTML opfrissing

HTMLEen opfrissing

Page 2: HTML opfrissing

De HTML startstructuur

1

Page 3: HTML opfrissing

<html> <head> <title> </title> </head> <body> </body> </html>

De meest eenvoudige HTML startstructuur

Page 4: HTML opfrissing

<!DOCTYPE html> <html lang="nl"> <head> <title> </title> <meta charset="utf-8"> </head> <body> </body> </html>

Een meer uitgebreide, betere HTML startstructuur

Page 5: HTML opfrissing

Inclusief link naar externe JavaScript en CSS-bestanden

<!DOCTYPE html> <html lang="nl"> <head> <title></title> <meta charset="utf-8" /> <link rel="stylesheet" href="layout.css" /> <script src="js.js"></script> </head> <body> <!-- Jouw webpagina code --> </body> </html>

Page 6: HTML opfrissing

Relaties

2

Page 7: HTML opfrissing

S

Page 8: HTML opfrissing

<h1>Vandaag</h1> <p> Wat een ongelofelijk <em>prachtige</em> dag om <abbr>HTML</abbr> te leren! </p>

HTML elementen staan in relatie met elkaar

Page 9: HTML opfrissing

Soorten elementen

3

Page 10: HTML opfrissing

<h1>Vandaag</h1> <p> Wat een ongelofelijk <em>prachtige</em> dag om <abbr>HTML</abbr> te leren! </p>

Er zijn inline & block-level elementen

Page 11: HTML opfrissing

<h1> <h2> <p> <ul> <li> <div> <blockquote> … !

Voorbeelden van block-level elementen

Page 12: HTML opfrissing

Eigenschappen van block-level elementen

• Worden standaard op een nieuwe regel weergegeven

• Kunnen zowel inline als block-level elementen bevatten

Page 13: HTML opfrissing

<img> <em> <strong> <span> <cite> <label> <i> <b> … !

Voorbeelden van inline elementen

Page 14: HTML opfrissing

Eigenschappen van inline elementen

• Worden niet op een nieuwe regel weergegeven

• Kunnen geen block-level elementen bevatten

• Moeten altijd in een block-level element zitten

Page 15: HTML opfrissing

<span> <p> Why join the navy, if you can be a pirate? </p> </span> !

Zoek de fout—

Page 16: HTML opfrissing

<b><h1>Een citaat</h1></b> <blockquote> <p> Stay hungry, stay <em>foolish</em>. </p> <cite>—Steve Jobs</cite> </blockquote> !

Zoek de fout—

Page 17: HTML opfrissing

<h1>Leer de regels</h1> <p>Dan weet je tenminste wanneer je ze kan overtreden.</p> <img src="b.png" alt="beethoven"> !

Zoek de fout—

Page 18: HTML opfrissing

“de uitzondering die de regel bevestigt”

Page 19: HTML opfrissing

<a>

“Het blijft een inline element, maar je kan er nu ook block-level elementen in plaatsen.”

—W3C HTML5 specification

Page 20: HTML opfrissing
Page 21: HTML opfrissing
Page 22: HTML opfrissing

<h1><a>Artikel titel</a></h1> <p><a><img></a></p> <p><a>Eerste alinea</a></p> <p><a>Lees meer »</a></p>

HTML4

Page 23: HTML opfrissing

<a> <h1>Artikel titel</h1> <p><img></p> <p>Eerste alinea</p> <p>Lees meer »</p> </a>

HTML5

Page 24: HTML opfrissing

Dubbel & enkelvoudig

4

Page 25: HTML opfrissing

<h1>Contactgegevens</h1> <p> Het Perspectief<br> Henleykaai 83<br> 9000 Gent </p> <p> <img src="hp.png" alt="School"> </p>

Er zijn dubbele & enkelvoudige elementen

Page 26: HTML opfrissing

Blijf consequent in syntax

5

Page 27: HTML opfrissing

<H1>Syntaxregels</H1> <P> Jantje zag eens pruimen hangen,<BR> O!<br /> als eieren zo groot </p> <p class=beeldje> <img src=jan.jpg alt="jantje"> </P> !

Correcte HTML, maar niet echt consequent

Page 28: HTML opfrissing

<h1>Syntaxregels</h1> <p> Jantje zag eens pruimen hangen,<br> O!<br> als eieren zo groot </p> <p class="beeldje"> <img src="jan.jpg" alt="jantje"> </p> !

Kies een striktere stijl, gebaseerd op de XHTML syntax

Page 29: HTML opfrissing

<br> !

Beide correct in HTML5— kies en blijf consequent

<br /> !

Page 30: HTML opfrissing

<img src="i.jpg" alt="koe"> !

Beide correct in HTML5— kies en blijf consequent

<img src="i.jpg" alt="koe" /> !

Page 31: HTML opfrissing

Vermijd verouderde HTML6

Page 32: HTML opfrissing

<font> <center> <strike> <u> … !

Flashback: voorbeelden van verouderde elementen

Page 33: HTML opfrissing

align="left" background="f.jpg" bgcolor="red" border="0" nowrap … !

Flashback: voorbeelden van verouderde attributen

Page 34: HTML opfrissing

Oude elementen met vernieuwde betekenis

in HTML5

Page 35: HTML opfrissing

<b>

“Tekst die anders moet worden weergegeven dan de gewone tekst, zonder extra nadruk mee te geven.”

—W3C HTML5 specification

Page 36: HTML opfrissing
Page 37: HTML opfrissing

<i>

“Tekst die in een andere stem of sfeer moet worden gelezen dan de gewone tekst, zonder extra nadruk mee te geven.”

—W3C HTML5 specification

Page 38: HTML opfrissing
Page 39: HTML opfrissing
Page 40: HTML opfrissing

<small>

“Tekst die ‘de kleine lettertjes’ voorstelt: copyrightinformatie, algemene voorwaarden, legale verplichtingen…”

—W3C HTML5 specification

Page 41: HTML opfrissing
Page 42: HTML opfrissing
Page 43: HTML opfrissing

Schrijf semantische HTML

7

Page 44: HTML opfrissing

Ken je deze (nieuwere) elementen al? Ze maken je HTML semantischer.

Page 45: HTML opfrissing

<time>

“Om data, tijdstippen of beide aan te duiden.”

—W3C HTML5 specification

Page 46: HTML opfrissing

<p> Kom eens langs op <time datetime="2015-04-07"> 7 april</time>. </p>

<time>

Page 47: HTML opfrissing

<p> De staking vond plaats in <time datetime="1933-11">november </time> van dat jaar. </p>

<time>

Page 48: HTML opfrissing

<p> Op <time datetime="01-01"> 1 januari</time> zijn we gesloten. </p>

<time>

Page 49: HTML opfrissing

<p> Ik ben geboren in <time datetime="1980">1980 </time>. </p>

<time>

Page 50: HTML opfrissing

<p> Het wonder vond plaats op <time datetime="2012-06-13 20:18"> 13 juni 2012</time>. </p>

<time>

Page 51: HTML opfrissing
Page 52: HTML opfrissing
Page 53: HTML opfrissing

<section>

“Om inhoudelijk gerelateerde zaken te groeperen.”

—W3C HTML5 specification

Page 54: HTML opfrissing

<section> <h1>HTML5</h1> <p>HTML5 is de toekomst.</p> <p>Er is geen weg terug.</p> <p><img src="i.jpg" alt=""></p> </section>

<section>

Page 55: HTML opfrissing

<article>

“Om inhoudelijk gerelateerde zaken te groeperen. De inhoud blijft duidelijk als die uit de context van de website gehaald zou worden (bijv. in een RSS-lezer).”

—W3C HTML5 specification

Page 56: HTML opfrissing
Page 57: HTML opfrissing
Page 58: HTML opfrissing

<article> vs <section>

• Beide hebben in principe een titel (heading). • article is een speciale vorm van section: het

heeft meer semantische betekenis: een onafhankelijk, op-zich-staand stukje inhoud.

• Gebruik article als je de inhoud naar een vriend kan e-mailen: het houdt nog steeds steek buiten de context van de website.

• Het houdt geen steek buiten de context van de site, maar de inhoud is gerelateerd? Gebruik section.

• De inhoud is niet gerelateerd? Gebruik div.

Page 59: HTML opfrissing
Page 60: HTML opfrissing
Page 61: HTML opfrissing
Page 62: HTML opfrissing

<header>

“Bevat een groep inleidende of navigatie-elementen voor het element waarin header zich bevindt. Ook logo’s of zoekvelden zijn mogelijke inhoud.”

—W3C HTML5 specification

Page 63: HTML opfrissing

<body> <header> (logo en navigatie) </header> (rest van de pagina) </body>

<header>

Page 64: HTML opfrissing
Page 65: HTML opfrissing

<section> <header> <p>Een introductie tot…</p> <h1>Moestuinieren</h1> </header> <p> Elke lente begint het weer te kriebelen. </p> </section>

<header>

Page 66: HTML opfrissing

<footer>

“Bevat meer informatie over het element waarin footer zich bevindt: auteur, copyrightinformatie, links naar gerelateerde informatie…”

—W3C HTML5 specification

Page 67: HTML opfrissing

<body> <header> (logo en navigatie) </header> (rest van de pagina) <footer> (copyrightinfo, contactinfo…) </footer> </body>

<footer>

Page 68: HTML opfrissing
Page 69: HTML opfrissing

<section> <header> <h1>Moestuinieren</h1> </header> <p>Elke lente begint het weer te kriebelen.</p> <footer> <p>Auteur: Thomas Byttebier</p> </footer> </section>

<footer>

Page 70: HTML opfrissing

<main>

“Bevat de belangrijkste content van de body van een webpagina. Het kan daarom maar 1 keer voorkomen op een pagina.”

—W3C HTML5 specification

Page 71: HTML opfrissing

<main>

“Bevat content die uniek is voor de pagina, en bevat vooral geen content die herhaald wordt doorheen een set van pagina’s: site-navigatie, copyrightinfo, logo’s…”

—W3C HTML5 specification

Page 72: HTML opfrissing

<main>

“Het main element mag geen nakomeling zijn van een article, aside, footer, header of nav element.”

—W3C HTML5 specification

Page 73: HTML opfrissing

<body> <header> (logo en navigatie) </header> <main> (belangrijkste content) </main> <footer> (copyrightinfo, contactinfo…) </footer> </body>

<main>

Page 74: HTML opfrissing

<!-- other content --> !<main> <h1>Skateboards</h1> <p>The skateboard is the way cool kids get around</p> <article> <h2>Longboards</h2> <p>Longboards are a type of skateboard with a longer wheelbase and larger, softer wheels.</p> <p>... </p> </article> ! <article> <h2>Electric Skateboards</h2> <p>These no longer require the propelling of the skateboard by means of the feet; rather an electric motor propels the board, fed by a battery.</p> <p>... </p> </article> </main> !<!-- other content -->

Page 75: HTML opfrissing
Page 76: HTML opfrissing
Page 77: HTML opfrissing
Page 78: HTML opfrissing

<aside>

“Bevat informatie die zijdelings gerelateerd is aan de inhoud rond het aside element, en die als aparte content gezien kan worden: pull quotes, zijkolommen, reclame, navigatie…”

—W3C HTML5 specification

Page 79: HTML opfrissing
Page 80: HTML opfrissing
Page 81: HTML opfrissing

<nav>

“Bevat belangrijke navigatielinks.”

—W3C HTML5 specification

Page 82: HTML opfrissing

<body> <header> (logo) <nav>(unordered list)</nav> </header> <main> (belangrijkste content) </main> <aside> (zijinformatie) </aside> <footer> (copyrightinfo, contactinfo…) </footer> </body>

<nav>

Page 83: HTML opfrissing
Page 84: HTML opfrissing

<figure>

“Bevat een op zich staand beeld: foto, video, illustratie… (optioneel) met een onderschrift. ”

—W3C HTML5 specification

Page 85: HTML opfrissing

<figcaption>

“Bevat het onderschrift van een figure.”

—W3C HTML5 specification

Page 86: HTML opfrissing

<figure> <img src="o.jpg" alt="twee meisjes"> <figcaption> Twee meisjes op het strand van Oostduinkerke. Ze lezen modebladen. </figcaption> </figure>

<figure>

Page 87: HTML opfrissing

<figure> <img src="d.jpg" alt="diagram"> <figcaption> Het aantal nieuwe leden per jaar. </figcaption> </figure>

<figure>

Page 88: HTML opfrissing

<figure> <img src="d.jpg" alt=“diagram 10"> <img src="d2.jpg" alt=“diagram 11"> <img src="d3.jpg" alt=“diagram 12"> <figcaption> Het aantal nieuwe leden per jaar. </figcaption> </figure>

<figure>

Page 89: HTML opfrissing

Bron: html5doctor.com

Page 90: HTML opfrissing

Eenvoudig advies: gebruik enkel figure wanneer je beeld ook een onderschrift (figcaption) heeft.

Page 91: HTML opfrissing

Deze nieuwere elementen zijn bruikbaar, mits een regel CSS:

article, aside, figure, figcaption, footer, header, main, nav, section { display:block; }

Page 92: HTML opfrissing

Internet Explorer < 9 heeft ook wat javascript nodig: de HTML5 shiv

Page 93: HTML opfrissing

<!--[if lt IE 9]> <script src=“http:// html5shiv.googlecode.com/svn/trunk/ html5.js"></script> <![endif]--> <style> article, aside, figure, figcaption, footer, header, main, nav, section { display:block; } </style>

Voeg ze toe aan je startstructuur: nieuwere elementen in elke browser

Page 94: HTML opfrissing

<!DOCTYPE html> <html lang="nl"> <head> <title></title> <meta charset="utf-8" /> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <style> article, aside, figure, figcaption, footer, header, main, nav, section { display:block; } </style> <link rel="stylesheet" href="css/screen.css" /> <script src="js/js.js"></script> </head> <body> </body> </html>

De allesomvattende HTML5 startstructuur

Page 95: HTML opfrissing

De nieuwe document outline van HTML5

Page 96: HTML opfrissing

“The document outline is the structure of a document, generated by the document’s headings, form titles, table titles, and any other appropriate landmarks to map out the document. The user agent can apply this information to generate a table of contents, for example.”

—HTML5doctor.com

Page 97: HTML opfrissing

<h1>Altijd de belangrijkste kop van de volledige pagina</h1> <h2>Nieuwsitem</h2> <p>Tekst</p> <h3>Subkop</h3> <p>Tekst</p> <h3>Subkop</h3> <p>Tekst</p> ...

De document outline van HTML4

Page 98: HTML opfrissing

<h1>Belangrijkste kop van de volledige pagina</h1> <article> <h1>Belangrijkste kop van article</h1> <p>Tekst</p> <h2>Subkop van article</h2> <p>Tekst</p> <h2>Subkop van article</h2> <p>Tekst</p> </article>

De document outline van HTML5

Page 99: HTML opfrissing

“There are currently no known implementations of the outline algorithm in graphical browsers or assistive technology user agents, although the algorithm is implemented in other software such as conformance checkers. Therefore the outline algorithm cannot be relied upon to convey document structure to users. Authors are advised to use heading rank (h1-h6) to convey document structure.”

—W3C HTML5 specification

Page 100: HTML opfrissing
Page 101: HTML opfrissing

Meer weten? Nalezen?

Page 102: HTML opfrissing

That’s it!

Page 103: HTML opfrissing

Onthou je het vorige, dan rest je enkel:

• Leer de elementen kennen (lijst) • Zijn ze block-level of inline? • Valideer je syntax • Redeneer logisch om te bepalen

welk element het best bepaalde inhoud kan weergeven

Page 104: HTML opfrissing

And that’s really it!