Raconté par Vincent Jugé
sur la base d'un cours créé par Rémi Forax
HTML | 1991 |
HTML 2.0 | 1995 |
HTML 3.2 | 1997 |
HTML 4.01 | 1999 |
XHTML 1.0 | 2000 |
HTML 5 | 2014 |
Un élément est défini par une balise de début et une balise de fin.
Par exemple, pour mettre en gras,
on utilise <b> et </b>.
En fait on utilisera surtout CSS.
Les caractères < et > sont réservés
pour déclarer des éléments.
Il faut une façon de dé-spécialiser ces caractères.
caractère | entité | description |
---|---|---|
< | < | less than |
> | > | greater than |
& | & | ampersand |
| non-breakable space |
Il est possible d'indiquer des commentaires
entre les balises <!-- et -->.
<!--
Ceci est un commentaire dans le HTML qui ne sera pas affiché
-->
Un document est commence par la balise html ;
l'en-tête (méta-données) sont contenues dans head ;
le corps du texte est contenu dans body ;
h1 indique un titre de rubrique ;
p définit un paragraphe.
<html>
<head>
<meta charset="utf-8">
<title>HTML</title>
</head>
<body>
<h1>Hello</h1>
<p>C'est le premier paragraphe</p>
<p>Et voici le second paragraphe</p>
</body>
</html>
<html>
<head>
<meta charset="utf-8">
<title>HTML</title>
</head>
<body>
<h1>Hello</h1>
<p>C'est le premier paragraphe</p>
<p>Et voici le second paragraphe</p>
</body>
</html>
Les éléments sont organisés sous forme d'arbre.
Attention : l'ordre des fils d'un même nœud est important !
Arbre : l'arbre DOM (Document Object Model)
<html>
<body>
<h1>Hello</h1>
<p>C'est le premier paragraphe</p>
<p>Et voici le second paragraphe</p>
</body>
</html>
Les éléments entrelacés sont interdits :
impossible de créer l'arbre correspondant !
Exemple qui ne marche pas
La plupart des navigateurs supportent quand même les constructions invalides
mais ce n'est pas le cas de tous les outils
qui lisent le HTML (crawlers par exemple).
Certains éléments n'ont pas de balise fermante,
comme <br> par exemple.
<p>
Ceci est un paragraphe
<br>
sur plusieurs lignes
</p>
La norme XHTML permet d'écrire ces balises comme ceci :
<br/>.
Certains éléments définissent des attributs
Il existe trois formes d'attributs :
<p>
Ceci <a href="www.univ-eiffel.fr">est un lien</a>
</p>
La norme HTML 5 définit beaucoup trop
d'éléments pour tous les
lister.
Voici les principaux organisés en catégories :
⚠ Catalogue ! ⚠
Élément | Commentaire |
---|---|
<b> ou <strong> | en gras (bold) |
<i> ou <em> | en italique |
<small> | en petit |
barré (strike) | |
<sup>/<sub> | exposant/indice |
<code> |
partie de programme |
Élément | Commentaire |
---|---|
section | section |
h1, h2, h3, h4, h5, h6 | titre de section (headings) |
p | paragraphe |
pre | comme à la machine à écrire (preformatted) |
blockquote | citation |
Un exemple
<h1>Titre du document</h1>
<section>
<h2>Titre de section</h2>
<p>
Premier paragraphe
</p>
<pre>
Second paragraphe préformaté
</pre>
</section>
<section>
<h2>Titre autre section</h2>
<blockquote>
C'est trop bien le HTML !
</blockquote>
</section>
Même exemple vu sous la forme d'un arbre
Les listes ordonnées :
li = item de liste (list item)
Les seuls enfants autorisés pour une balise ol
sont des balises li :
pas de texte, pas de balises autre que li !
Les listes non-ordonnées :
Les seuls enfants autorisés pour une balise ul sont des balises li !
Les listes de définitions
dt = definition title, dd = definition data
Les seuls enfants autorisés pour une balise dl sont des balises dt et dd !
Les tableaux à 2 dimensions
Azote | N2 |
Oxygène | O2 |
<table>
<tr>
<td>Azote</td><td>N<sub>2</sub></td>
</tr>
<tr>
<td>Oxygène</td><td>O<sub>2</sub></td>
</tr>
</table>
tr = table row, td = table data
Symbole | % dans l'air | |
---|---|---|
Azote | N2 | 78 % |
Oxygène | O2 | 20 % |
<table>
<thead>
<tr> <th></th><th>Symbole</th><th>% dans l'air</th> </tr>
</thead>
<tbody>
<tr> <th>Azote</th><td>N<sub>2</sub></td><td>78 %</td> </tr>
<tr> <th>Oxygène</th><td>O<sub>2</sub></td><td>20 %</td> </tr>
</tbody>
</table>
thead = table head, tbody = table body, th = table header
Les seuls enfants autorisés pour une balise tr sont des balises th ou td !
<a href="http://www.w3c.org/">texte</a>
<a id="foo">texte</a>
référence :
<a href="#foo">texte</a>
On peut bien sûr combiner les deux.
<a href="http://www.bar.com/hello.html#foo">texte</a>
Permet d'inclure un document dans un document.
<iframe src="html.html#/25"
width="450"
height="200">
</iframe>
<img src="images/html/enquire.jpg"
width="361"
height="282"
alt="Enquire, name used by Tim Berners-Lee before the Web">
alt est utilisé par les clients HTML qui ne sont pas graphiques.
PNG | Bitmap, compression sans perte |
GIF | Bitmap, compression sans perte, perte si réduction de la palette |
JPEG | Bitmap, compression avec perte |
SVG | Vectoriel |
<audio controls>
<source src="images/html/upem.oga" type="audio/ogg">
<source src="images/html/upem.mp3" type="audio/mpeg">
Sorry, no audio for you.
</audio>
Le format mp3 est supporté par tous les browsers.
ogg (format libre !) n'est supporté
ni par Internet Explorer ni par
Safari.
<video width="640"
height="360"
poster="images/html/upem-poster.jpg"
controls>
<source src="images/html/upem.ogv" type="video/ogg">
<source src="images/html/upem.mp4" type="video/mp4">
Sorry, no video for you.
</video>
Le format mp4 est supporté par tous les browsers.
ogg et webm (formats libres !) ne sont supportés
ni par Internet
Explorer ni par Safari.
Avant la balise html, on doit indiquer la version du HTML.
HTML 5 |
|
XHTML 1.0 |
|
HTML 4.01 |
|
La balise head permet d'indiquer
des propriétés sur le document.
<!DOCTYPE html>
<html>
<head>
<title>Programmation Web</title>
<meta charset="UTF-8">
</head>
</html>
Méta-données sur le document :
<meta charset="UTF-8">
<meta name="keywords" content="web, html, css, javascript">
<meta name="author" content="Remi Forax">
Comment vérifier facilement si mon code HTML est valide ?
Code qui ne passe pas le W3C validator = le chargé de TP se fâchera tout rouge !
Et comment on
On ne fait pas ça en HTML, on utilise CSS pour cela !