HTML5 Migration

Migrering fra HTML4 til HTML5

Dette kapitel forklarer, hvordan man migrerer fra en typisk HTML4-side til en typisk HTML5-side.

Dette kapitel viser, hvordan man konverterer en eksisterende HTML4-side til en HTML5-side uden at ødelægge den oprindelige indhold og struktur.

Bemærkninger:Du kan bruge de samme færdigheder til at migrere fra HTML4 og XHTML til HTML5.

Typisk HTML4 Typisk HTML5
<div id="header"> <header>
<div id="menu"> <nav>
<div id="content"> <section>
<div id="post"> <article>
<div id="footer"> <footer>

Typisk HTML4-side

Eksempel

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>HTML4</title>
<style>
  body {font-family:Verdana,sans-serif;font-size:0.8em;}
  div#header,div#footer,div#content,div#post 
  {border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white;}
  div#header,div#footer {color:white;background-color:#444;margin-bottom:5px;}
  div#content {background-color:#ddd;}
  div#menu ul {margin:0;padding:0;}
  div#menu ul li {display:inline; margin:5px;}
</style>
</head>
<body>
<div id="header">
  <h1>Monday Times</h1>
</div>
<div id="menu">
  <ul>
    <li>NYHEDER</li>
    <li>Sport</li>
    <li>Vejr</li>
  </ul>
</div>
<div id="content">
<h2>NYHEDSDDEL</h2>
<div id="post">
  <h2>NYHEDSARTIKEL</h2>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
</div>
<div id="post">
  <h2>NYHEDSARTIKEL</h2>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
</div>
</div>
<div id="footer">
  <p>© 2014 Monday Times. Alle rettigheder forbeholdt.</p>
</div>
</body>
</html>

Try it yourself

Til HTML5 Doctype

Ændr dokumenttype, fra HTML4 doctype:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">

Ændr til HTML5 doctype:

<!DOCTYPE html>

Try it yourself

Til HTML5 koding

Ændr kodinginformation, fra HTML4:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8">

Gør om til HTML5:

<meta charset="utf-8">

Try it yourself

Tilføj shiv

Alle moderne browsere understøtter HTML5 semantiske elementer.

Derudover kan du "undervise" gamle browsere, hvordan de skal håndtere "ukendte elementer".

Shiv tilføjet for Internet Explorer-støtte:

<![if lt IE 9]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

Try it yourself

Bemærkninger:Læs mere om shiv i HTML5 browserstøtte.

Tilføj CSS for HTML5 semantiske elementer

Se de eksisterende CSS-stilarter:

div#header,div#footer,div#content,div#post {
    border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white;
}
div#header,div#footer {
    color:white;background-color:#444;margin-bottom:5px;
}
div#content {
    background-color:#ddd;
}
div#menu ul {
    margin:0;padding:0;
}
div#menu ul li {
    display:inline; margin:5px;
}
Kopier med ens CSS-stilarter for HTML5 semantiske elementer:
header,footer,section,article {
    border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white;
}
header,footer {
    color:white;background-color:#444;margin-bottom:5px;
}
section {
    background-color:#ddd;
}
nav ul {
    margin:0;padding:0;
}
nav ul li {
    display:inline; margin:5px;
}

Try it yourself

Til HTML5 <header> og <footer>

Ændr <div> elementerne med id="header" og id="footer":

<div id="header">
  <h1>Monday Times</h1>
</div>
.
.
.
<div id="footer">
  <p>© 2016 CodeW3C.com. Alle rettigheder forbeholdt.</p>
</div>

Opretter HTML5 semantiske elementer <header> og <footer>:

<header>
  <h1>Monday Times</h1>
</header>
.
.
.
<footer>
  <p>© 2016 CodeW3C.com. Alle rettigheder forbeholdt.</p>
</footer>

Try it yourself

Til HTML5 <nav>

Skift <div>-elementet med id="menu":

<div id="menu">
  <ul>
    <li>NYHEDER</li>
    <li>Sports</a></li>
    <li>Vejr</li>
  </ul>
</div>

Opretter HTML5 semantiske elementer <nav>:

<nav>
  <ul>
    <li>NYHEDER</li>
    <li>Sports</a></li>
    <li>Vejr</li>
  </ul>
</nav>

Try it yourself

Til HTML5 <section>

Skift det eneste <div>-element med id="content":

<div id="content">
.
.
.
</div>

Opretter HTML5 semantiske elementer <section>:

<section>
.
.
.
</section>

Try it yourself

Til HTML5 <article>

Skift alle <div>-elementer med class="post":

<div class="post">
  <h2>NYHEDSARTIKEL</h2>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
</div>

Opretter HTML5 semantiske elementer <article>:

<article>
  <h2>NYHEDSARTIKEL</h2>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
</article>

Try it yourself

Fjern disse "ikke længere nødvendige" stilarter:

div#header,div#footer,div#content,div#post {
    border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white;
}
div#header,div#footer {
    color:white;background-color:#444;margin-bottom:5px;
}
div#content {
    background-color:#ddd;
}
div#menu ul {
    margin:0;padding:0;
}
div#menu ul li {
    display:inline; margin:5px;
}

Try it yourself

En typisk HTML5-side

Du kan fjerne <head>-etiketten. De er ikke nødvendige længere i HTML5:

Eksempel

<!DOCTYPE html>
<html lang="en">
<title>HTML5</title>
<meta charset="utf-8">
<![if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js">
</script>
<![endif]-->
<style>
body {
    font-family:Verdana,sans-serif;font-size:0.8em;
}
header,footer,section,article {
    border:1px solid grey;
    margin:5px;margin-bottom:15px;padding:8px;
    background-color:white;
}
header,footer {
    color:white;background-color:#444;margin-bottom:5px;
}
section {
    background-color:#ddd;
}
nav ul {
    margin:0;padding:0;
}
nav ul li {
    display:inline; margin:5px;
}
</style>
<body>
<header>
  <h1>Monday Times</h1>
</header>
<nav>
  <ul>
    <li>NYHEDER</li>
    <li>Sport</li>
    <li>Vejr</li>
  </ul>
</nav>
<section>
<h2>NYHEDSDDEL</h2>
<div id="post">
  <h2>NYHEDSARTIKEL</h2>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
</div>
<div id="post">
<h2>NYHEDSARTIKEL</h2>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
  <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
  lurum hurum turum.</p>
</div>
</section>
<footer>
  <p>© 2014 Monday Times. Alle rettigheder forbeholdt.</p>
</footer>
</body>
</html>

Try it yourself

Forskellen mellem <article>, <section> og <div>:

I HTML5-standarden er forskellen mellem <article>, <section> og <div> meget lille og forvirrende.

I HTML5-standarden er <section>-elementet placeret som en blok for relaterede elementer.

<article>-elementet defineres som en fuldstændig selvindkapslende blok for relaterede elementer.

<div>-elementet defineres som en blok for underelementer.

Hvordan forstår man det?

I de ovennævnte eksempler har vi brugt <section> som beholder for relaterede <articles>.

Men, vi kan også bruge <article> som en beholder for artikler.

Her er nogle forskellige eksempler:

Artiklen <article> inde i <article>:
<article>
<h2>Famous Cities</h2>
<article>
<h2>London</h2>
<p>London is the capital city of England. It is the most populous city in the United Kingdom,</p>
with a metropolitan area of over 13 million inhabitants.</p>
</article>
<article>
<h2>Paris</h2>
<p>Paris is the capital and most populous city of France.</p>
</article>
<article>
<h2>Tokyo</h2>
<p>Tokyo is the capital of Japan, the center of the Greater Tokyo Area,</p>
and the most populous metropolitan area in the world.</p>
</article>
</article>

Try it yourself

<article> within <div>:</article>
<article>
<h2>Famous Cities</h2>
<div class="city">
<h2>London</h2>
<p>London is the capital city of England. It is the most populous city in the United Kingdom,</p>
with a metropolitan area of over 13 million inhabitants.</p>
</div>
<div class="city">
<h2>Paris</h2>
<p>Paris is the capital and most populous city of France.</p>
</div>
<div class="city">
<h2>Tokyo</h2>
<p>Tokyo is the capital of Japan, the center of the Greater Tokyo Area,</p>
and the most populous metropolitan area in the world.</p>
</div>
</article>

Try it yourself

<article> within <section> within <div>:</article>
<article>
<section>
<h2>Famous Cities</h2>
<div class="city">
<h2>London</h2>
<p>London is the capital city of England. It is the most populous city in the United Kingdom,</p>
with a metropolitan area of over 13 million inhabitants.</p>
</div>
<div class="city">
<h2>Paris</h2>
<p>Paris is the capital and most populous city of France.</p>
</div>
<div class="city">
<h2>Tokyo</h2>
<p>Tokyo is the capital of Japan, the center of the Greater Tokyo Area,</p>
and the most populous metropolitan area in the world.</p>
</div>
</section>
<section>
<h2>Famous Countries</h2>
<div class="country">
<h2>England</h2>
<p>London is the capital city of England. It is the most populous city in the United Kingdom,</p>
with a metropolitan area of over 13 million inhabitants.</p>
</div>
<div class="country">
<h2>France</h2>
<p>Paris is the capital and most populous city of France.</p>
</div>
<div class="country">
<h2>Japan</h2>
<p>Tokyo is the capital of Japan, the center of the Greater Tokyo Area,</p>
and the most populous metropolitan area in the world.</p>
</div>
</section>
</article>

Try it yourself