SlideShare une entreprise Scribd logo
1  sur  148
Télécharger pour lire hors ligne
HTML5
Een introductie

Thomas Byttebier — thomasbyttebier.be
Navorming Het Perspectief — 28/01/2014
HTML5? WTF! Waarom geen XHTML2?

HTML5 combineert
HTML4 & XHTML1
HTML syntax

<DIV CLASS=belangrijk>
<br>
!

<ul>
<li>list item
<li>nog een list item
</ul>
!
XHTML syntax

<div class="belangrijk">
<br />
!

<ul>
<li>list item</li>
<li>nog een list item</li>
</ul>
!
Ja maar… is HTML5 al ‘af’?
2022
Is HTML5 al “af”?
Wanneer kunnen we
HTML5 gebruiken?
HTML4 was al jaren ‘af’…
Je kan nu al HTML5
*
gebruiken!
Pfff… ik kende nu net HTML4

Is wat ik leerde dan
nog bruikbaar?
HTML5 is
backwards compatible
Je kan elk HTML4 element
blijven gebruiken
Geen enkele browser zal er over vallen

maar…
Sommige elementen
worden afgeraden (valideren!)
<frame>, <frameset>…
<font>
<big>
<center>
<strike>
…
!
!
Sommige attributen
worden afgeraden (valideren!)
bgcolor
cellpadding
cellspacing
valign
…
!
!
Sommige elementen krijgen een
nieuwe betekenis of ander gebruik
<b>
<i>
<small>
<a>
!
!
<b>
“Tekst die anders moet worden
weergegeven dan de gewone tekst,
zonder extra nadruk mee te geven.”

—W3C HTML5 specification
<i>
“Tekst die andere stem of sfeer moet
worden gelezen dan de gewone tekst,
zonder extra nadruk mee te geven.”

—W3C HTML5 specification
<small>
“Tekst die ‘de kleine lettertjes’ voorstelt:
copyrightinformatie, algemene
voorwaarden, legale verplichtingen…”

—W3C HTML5 specification
<a>
“Het blijft een inline element, maar je
kan er nu ook block-level elementen in
plaatsen.”

—W3C HTML5 specification
HTML4
<h1><a>Artikel titel</a></h1>
<p><a><img></a></p>
<p><a>Eerste alinea</a></p>
<p><a>Lees meer »</a></p>
HTML5
<a>
<h1>Artikel titel</h1>
<p><img></p>
<p>Eerste alinea</p>
<p>Lees meer »</p>
</a>
Kan ik alles van HTML5 nu
al gebruiken?
HTML5 in 3 niveaus

1
2
3

Zonder problemen vandaag al
bruikbaar, werkt in elke browser
Bruikbaar, maar oudere browsers
tonen gelijkaardig element
Bruikbaar mits hacks, anders
breekt je site in oudere browsers
1
Zonder problemen vandaag
al bruikbaar: het werkt in
elke browser
De nieuwe doctype
HTML4 (XHTML1)
<!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Strict//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1strict.dtd">
HTML5
<!DOCTYPE html>
Over de namespace en taal
HTML4 vs HTML5
<html xmlns="http://www.w3.org/1999/
xhtml" xml:lang="nl" lang="nl">

<html lang="nl">
Het karakterset
HTML4 vs HTML5
<meta http-equiv="Content-Type"
content="text/html;charset=utf-8" />

<meta charset="utf-8">
De CSS link tag
HTML4 vs HTML5
<link rel="stylesheet" type="text/css"
href="layout.css" />

<link rel="stylesheet"
href="layout.css" />
De javascript script tag
HTML4 vs HTML5
<script type="text/javascript"
src="javascript.js"></script>

<script src="javascript.js"></script>
Samengevat: de nieuwe
HTML5 startstructuur
<!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>
2
Vandaag al bruikbaar,
oudere browsers tonen een
gelijkaardig element
Nieuwe elementen voor formulieren
Flashback: welke formelementen
bestaan al in HTML4?
<input type="text">
<textarea>Tekst</textarea>
<input type="password">
<input type="file">
<input type="submit">
<input type="radio">
<input type="checkbox">
<select>
<option>Nederlands</option>
<option>Afrikaans</option>
</select>
Nieuwe formelementen in HTML5
<input type="email">
<input type="email">
<input type="tel">
<input type="tel">
<input type="search">
<input type="search">
<input type="url">
<input type="url">
<input type="date">
<input type="date">
<input type="date">
<input type="color">
<input type="range">
Nieuwe attributen
voor input-elementen
Verplichte velden
<input type="text" required>
Autofocus
<input type="text" autofocus>
Placeholder
<input type="text"
placeholder="Vul hier je naam in">
Extra voordelen
•
•
•

sommige toestellen tonen een
input gerelateerde keyboard layout
nieuwere browsers tonen
aangepaste inputveldjes
nieuwere browsers doen
automatische inputvalidering
!
!
Wat dan met oudere browsers?
•
•

elke input type die ze niet kennen,
vervangen ze door <input type=“text”>
placeholder, autofocus, required,
inputvalidering moet je als web
developer opvangen via js & server
side code
!
3
Vandaag enkel bruikbaar
mits js/css hacks, anders
breekt je webpagina in
oudere browsers
Nieuwe inline elementen
text-level semantics
<mark>
“Om tekst te markeren die in een
bepaalde context relevant is, maar
in de normale context geen extra
aandacht vraagt.”

—W3C HTML5 specification
<mark>
<p>
Schrijf jij semantische
<mark>HTML</mark>?
</p>
<time>
“Om data, tijdstippen of beide
aan te duiden.”

—W3C HTML5 specification
<time>
<p>
Kom eens langs op
<time datetime="2015-04-07">
7 april</time>.
</p>
<time>
<p>
De staking vond plaats in
<time datetime="1933-11">november
</time> van dat jaar.
</p>
<time>
<p>
Op <time datetime="01-01">
1 januari</time> zijn we
gesloten.
</p>
<time>
<p>
Ik ben geboren in
<time datetime="1980">1980
</time>.
</p>
<time>
<p>
Het wonder vond plaats op
<time datetime="2012-06-13 20:18">
13 juni 2012</time>.
</p>
<meter>
“Om maateenheden aan te duiden,
onderdeel van een schaal.”

—W3C HTML5 specification
<meter>
<p>
Je behaalde een
<meter value="9" max="10">9</meter>
op je examen HTML.
</p>
<progress>
“Duidt de afgewerkte hoeveelheid aan
van een taak.”

—W3C HTML5 specification
<progress>
<p>
Je takenlijstje is al voor
<progress value="60" max="100">60%
</progress> afgehandeld.
</p>
Nieuwe block-level elementen
sectioning content
<section>
“Om inhoudelijk gerelateerde zaken
te groeperen.”

—W3C HTML5 specification
<section>
<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>
<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
<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
<header>
<body>
<header>
(logo en navigatie)
</header>
(rest van de pagina)
</body>
<header>
<section>
<header>
<p>Een introductie tot…</p>
<h1>Moestuinieren</h1>
</header>
<p>
Elke lente begint het weer te
kriebelen.
</p>
</section>
<footer>
“Bevat meer informatie over het
element waarin footer zich bevindt:
auteur, copyrightinformatie, links naar
gerelateerde informatie…”

—W3C HTML5 specification
<footer>
<body>
<header>
(logo en navigatie)
</header>
(rest van de pagina)
<footer>
(copyrightinfo, contactinfo…)
</footer>
</body>
<footer>
<section>
<header>
<h1>Moestuinieren</h1>
</header>
<p>Elke lente begint het weer te
kriebelen.</p>
<footer>
<p>Auteur: Thomas Byttebier</p>
</footer>
</section>
<main>
“Bevat de belangrijkste content van de
body van een webpagina. Het kan
daarom maar 1 keer voorkomen op een
pagina.”

—W3C HTML5 specification
<main>
<body>
<header>
(logo en navigatie)
</header>
<main>
(belangrijkste content)
</main>
<footer>
(copyrightinfo, contactinfo…)
</footer>
</body>
<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
<nav>
“Bevat belangrijke navigatielinks.”

—W3C HTML5 specification
<nav>
<body>
<header>
(logo)
<nav>(unordered list)</nav>
</header>
<main>
(belangrijkste content)
</main>
<aside>
(zijinformatie)
</aside>
<footer>
(copyrightinfo, contactinfo…)
</footer>
</body>
<figure>
“Bevat een op zich staand beeld: foto,
video, illustratie… (optioneel) met een
onderschrift. ”

—W3C HTML5 specification
<figcaption>
“Bevat het onderschrift van een figure.”

—W3C HTML5 specification
<figure>
<figure>
<img src="o.jpg" alt="twee meisjes">
<figcaption>
Twee meisjes op het strand van
Oostduinkerke. Ze lezen
modebladen.
</figcaption>
</figure>
<figure>
<figure>
<img src="d.jpg" alt="diagram">
<figcaption>
Het aantal nieuwe leden per jaar.
</figcaption>
</figure>
<figure>
<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>
Bron: html5doctor.com
In de war?

http://html5doctor.com/downloads/h5d-sectioning-flowchart.png
De nieuwe elementen zijn vandaag
bruikbaar, mits een regeltje CSS:
section, article, header, footer,
main, nav, aside, figure, hgroup

{ display:block; }
Internet Explorer < 9 heeft
ook wat javascript nodig
Voeg ze toe aan je startstructuur:
nieuwe elementen in elke browser
<!--[if lt IE 9]>
<script src=“http://
html5shiv.googlecode.com/svn/trunk/
html5.js"></script>
<![endif]-->
<style>
article, aside, dialog, figure, footer,
header, main, hgroup, menu, nav, section
{ display: block; }
</style>
De nieuwe document outline
van HTML5
De document outline van HTML4
<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 HTML5
<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>
Nieuwe interactieve elementen in
HTML5: geavanceerde oplossingen
voor vanalles
Video en audio in HTML5
<video src="film.ogg" controls>
Je browser ondersteunt geen HTML video.
</video>
!

<audio src="audio.ogg">
Je browser ondersteunt geen HTML audio.
</audio>
Ondersteuning voor meer browsers
<video controls>
<source src="film.ogg" type="video/ogg">
<source src="film.mp4" type="video/mp4">
Je browser ondersteunt geen HTML video.
</video>
Eventueel Flash fall-back voor IE
<video controls>
<source src="film.ogg" type="video/ogg">
<source src="film.mp4" type="video/mp4">
<object data="flvplayer.swf"
type="application/x-shockwave-flash">
<param value="flvplayer.swf"
name="movie"/>
</object>
</video>
Of gewoon een foto als fall-back
<video controls>
<source src="film.ogg" type="video/ogg">
<source src="film.mp4" type="video/mp4">
<img src="fail.png" alt="fail!">
</video>
Nog onbruikbaar in vele browsers.
Gebruik javascript om ondersteuning
te detecteren (bijv. modernizr.js)
Superhandig: caniuse.com
Meer weten?
Meer weten?
Bronnen en links
•
•
•
•
•
•

html5doctor.com
diveintohtml5.org
modernizr.com
matthiasbynens.be
apple.com/html5
html5demos.com

Contenu connexe

Similaire à Een introductie tot HTML5

Bloggen als Marketingcommunicatietool
Bloggen als MarketingcommunicatietoolBloggen als Marketingcommunicatietool
Bloggen als MarketingcommunicatietoolPeter Vermeer
 
Html5 jeugdwerknet
Html5 jeugdwerknetHtml5 jeugdwerknet
Html5 jeugdwerknetHans Rossel
 
1.7 html css terugblik
1.7 html css terugblik1.7 html css terugblik
1.7 html css terugblikmvanginkel
 
1.5 html css basis 4
1.5 html css basis 41.5 html css basis 4
1.5 html css basis 4mvanginkel
 
How to create a Drupal theme (Dut
How to create a Drupal theme (DutHow to create a Drupal theme (Dut
How to create a Drupal theme (DutN digital studio
 
Copernica Advanced
Copernica AdvancedCopernica Advanced
Copernica AdvancedCopernica BV
 
Eduvision - Proefles Cursus Webdesign
Eduvision - Proefles Cursus WebdesignEduvision - Proefles Cursus Webdesign
Eduvision - Proefles Cursus WebdesignEduvision Opleidingen
 
Seminar Copernica Developer
Seminar Copernica DeveloperSeminar Copernica Developer
Seminar Copernica DeveloperCopernica BV
 
Maximale impact met woorden online
Maximale impact met woorden onlineMaximale impact met woorden online
Maximale impact met woorden onlineBart De Waele
 
Tutorial html en css
Tutorial html en cssTutorial html en css
Tutorial html en cssJohan Smits
 
Lifehacking met RSS en Netvibes? De strijd tegen informatie overload
Lifehacking met RSS en Netvibes? De strijd tegen informatie overloadLifehacking met RSS en Netvibes? De strijd tegen informatie overload
Lifehacking met RSS en Netvibes? De strijd tegen informatie overloadEric Sieverts
 

Similaire à Een introductie tot HTML5 (13)

Les 1
Les 1Les 1
Les 1
 
Bloggen als Marketingcommunicatietool
Bloggen als MarketingcommunicatietoolBloggen als Marketingcommunicatietool
Bloggen als Marketingcommunicatietool
 
Html5 jeugdwerknet
Html5 jeugdwerknetHtml5 jeugdwerknet
Html5 jeugdwerknet
 
1.7 html css terugblik
1.7 html css terugblik1.7 html css terugblik
1.7 html css terugblik
 
1.5 html css basis 4
1.5 html css basis 41.5 html css basis 4
1.5 html css basis 4
 
How to create a Drupal theme (Dut
How to create a Drupal theme (DutHow to create a Drupal theme (Dut
How to create a Drupal theme (Dut
 
Copernica Advanced
Copernica AdvancedCopernica Advanced
Copernica Advanced
 
Eduvision - Proefles Cursus Webdesign
Eduvision - Proefles Cursus WebdesignEduvision - Proefles Cursus Webdesign
Eduvision - Proefles Cursus Webdesign
 
Seminar Copernica Developer
Seminar Copernica DeveloperSeminar Copernica Developer
Seminar Copernica Developer
 
Maximale impact met woorden online
Maximale impact met woorden onlineMaximale impact met woorden online
Maximale impact met woorden online
 
Tutorial html en css
Tutorial html en cssTutorial html en css
Tutorial html en css
 
HTML 5 en CSS 3
HTML 5 en CSS 3HTML 5 en CSS 3
HTML 5 en CSS 3
 
Lifehacking met RSS en Netvibes? De strijd tegen informatie overload
Lifehacking met RSS en Netvibes? De strijd tegen informatie overloadLifehacking met RSS en Netvibes? De strijd tegen informatie overload
Lifehacking met RSS en Netvibes? De strijd tegen informatie overload
 

Plus de Thomas Byttebier

Characteristics of a well designed user interface
Characteristics of a well designed user interfaceCharacteristics of a well designed user interface
Characteristics of a well designed user interfaceThomas Byttebier
 
Toegankelijke en semantische HTML formulieren
Toegankelijke en semantische HTML formulierenToegankelijke en semantische HTML formulieren
Toegankelijke en semantische HTML formulierenThomas Byttebier
 
CSS3 kleuren en border-radius
CSS3 kleuren en border-radiusCSS3 kleuren en border-radius
CSS3 kleuren en border-radiusThomas Byttebier
 
Belangrijke CSS begrippen (2)
Belangrijke CSS begrippen (2)Belangrijke CSS begrippen (2)
Belangrijke CSS begrippen (2)Thomas Byttebier
 

Plus de Thomas Byttebier (8)

Characteristics of a well designed user interface
Characteristics of a well designed user interfaceCharacteristics of a well designed user interface
Characteristics of a well designed user interface
 
Toegankelijke en semantische HTML formulieren
Toegankelijke en semantische HTML formulierenToegankelijke en semantische HTML formulieren
Toegankelijke en semantische HTML formulieren
 
Fluid video en audio
Fluid video en audioFluid video en audio
Fluid video en audio
 
CSS3 kleuren en border-radius
CSS3 kleuren en border-radiusCSS3 kleuren en border-radius
CSS3 kleuren en border-radius
 
Reset normalize CSS
Reset normalize CSSReset normalize CSS
Reset normalize CSS
 
Belangrijke CSS begrippen (2)
Belangrijke CSS begrippen (2)Belangrijke CSS begrippen (2)
Belangrijke CSS begrippen (2)
 
CSS basis
CSS basisCSS basis
CSS basis
 
Webdesign 2: introductie
Webdesign 2: introductieWebdesign 2: introductie
Webdesign 2: introductie
 

Een introductie tot HTML5