đ HTML#

HyperText Markup Language
Câest un format de donnĂ©es conçu pour reprĂ©senter les pages web. Il sâagit dâun langage de balisage textuel qui peut ĂȘtre Ă©ditĂ© dans nâimporte quel Ă©diteur de texte. Une page web est un document HTML qui est un ensemble de balise HTML. HTML est le fond de nos documents.
Historique dâInternet#
1989 - 1992 Inspiré de SGML, titre du document, hyperliens, structuration du texte en titres, sous-titres, listes et texte brut
1993 NCSA Mosaic Début de normalisation en se basant sur les implémentations des navigateurs. Apport des images et des formulaires
1992 Netscape Nombreux éléments de mise en forme et surtout le CSS (Cascading Style Sheets)
2000 - 2006 Abandon de HTML pour XHTML (Extensible HyperText Markup Language) pour reprendre la simplification de XML
2007 - 2015 HTML5 et abandon de XHTML2
Lâavenir ? HTML Living Standard
Rendering Engine
Programme qui rend le contenu balisé (HTML) avec des informations de formatage (CSS).
Document HTML#
Un document HTML est un ensemble entĂȘte et corps. Par convention lâextension est .html
. Le fichier de base de tout site se nomme index.html
. Un document HTML est un simple fichier contenant du texte formatté avec des balises HTML.
Avertissement
Les noms de fichiers que vous utiliserez dans tout programme informatique devront ĂȘtre en minuscules sans caractĂšres spĂ©ciaux !
Quelques exemples:
index.html
âïžIndex.html
âïžAccueil.html
âïžaccueil.html
âïžmon_fichier.txt
âïžMon spuer fichier.txt
âïžfoldername
âïžMon dossier(1)
âïž
Anatomie dâune balise HTML#
Tout texte entre les chevrons (brackets) <
et >
est considéré comme une balise. <p>
est une balise ouvrante, </p>
est la balise fermante qui lui correspond.

Note
Les éditeurs de code reconnaissent les balises et les mettent automatiquement en couleur pour faciliter la lecture du code HTML.
RĂšgle dâemboĂźtement#
Toute balise B ouverte Ă lâintĂ©rieur dâune balise A doit Ă©galement ĂȘtre fermĂ©e Ă lâintĂ©rieur de A.
<p>EmboĂźtement <strong>correct</strong>!</p>
<p>EmboĂźtement <strong>incorrect</p>!</strong>
Attribut dâune balise#
Certaines balises en plus du contenu textuel ont besoin dâinformation supplĂ©mentaire (qui nâapparait pas dans le document). Cette information est donnĂ©e par des attributs, qui ont la forme nom=valeur
et sont placés entre les chevrons de la balise ouvrante, aprÚs son nom.
<a href="https://ugaritic.fr/">DY.info</a>
Balise auto-fermante#
Certaines balises particuliĂšres nâattendent pas de contenu textuel. Ces balises vides nâont donc pas de balise fermante correspondante. Il convient dâindiquer explicitement lâabsence de balise fermante en ajoutant la barre oblique Ă la fin de la balise ouvrante.
<img src=".." alt=".." />
Important
HTML considĂšre tous les caractĂšres dâespacements (espaces, retours Ă la ligneâŠ) comme des sĂ©parations entre mots, et les affiche comme une simple espace. Cela donne de la souplesse dans la mise en page du code HTML (notamment en utilisant lâindentation, comme en programmation).
Squelette de base HTML#
Il est constituĂ© dâun marqueur pour identifier le type de standard en dĂ©but de fichier (ligne 1), dâune balise dĂ©limitant le document (html
) puis dâune entĂȘte et dâun corps.
<!DOCTYPE html>
<html>
<head></head>
<body></body>
</html>
LâentĂȘte head#
Sert Ă indiquer le titre du document des informations (meta-donnĂ©es) sur celui-ci (auteur, date de crĂ©ation, de maj, âŠ) qui ne sont pas directement affichĂ©s des styles, des scripts, ⊠Ce sont des informations sur le document, peu de balises y sont autorisĂ©es, son contenu ne sera jamais affichĂ© sur la page !
Pour indiquer le titre du document on utilise la balise title
et pour ajouter des informations sur le document la balise meta
.
<!DOCTYPE html>
<html>
<head>
<title>Hello HTML!</title>
<meta charset='UTF-8' />
<meta name="author" content="Samy Delahaye" />
</head>
<body></body>
</html>
Il existe différente normes pour coder les accents dans les chaßnes de caractÚre, utf-8
est la plus rĂ©cente. latin1 est la norme historique pour les langues occidentales. Lâutilisation dâutf-8 est fortement recommandĂ© de nos jours!
Le corps body#
Contient lâensemble de la page qui sera visible dans le navigateur. Câest le fond de notre documents, CSS en sera la forme. Les donnĂ©es sont encapsulĂ©es dans des balises correpondant au type de la donnĂ©e (titre, paragraphe, image, liste, âŠ). Il existe deux grandes familles dâĂ©lĂšment HTML: BLOCK
et INLINE
.
Les blocks#
Titres, paragraphes, listes, ou tableaux, ce sont de « grandes » structures qui contiennent dâautres structures ou Ă©lĂšments. Ils provoquent automatiquement une sĂ©paration verticale et prennent par dĂ©faut 100% de la largeur du document.

Les titres#
Un document typique est une sĂ©quence de titres (ou en-tĂȘte, en anglais heading), et de paragraphes. Les titres ont diffĂ©rents niveaux dâimportance, repĂ©rables Ă leur typographie (et parfois Ă leur numĂ©rotation), et donnent une structure hiĂ©rarchique au document (en parties, sous-parties, etc.).
<h1>Title level 1</h1>
<h2>Title level 2</h2>
<h3>Title level 3</h3>
<h4>Title level 4</h4>
<h5>Title level 5</h5>
<h6>Title level 6</h6>
Les paragraphes#
Les paragraphes sont délimités par la balise <p>
.
<p>In a hole in the ground there lived a hobbit.</p>
<p>Not a nasty, dirty, wet hole, filled with the ends of worms and an oozy smell, nor yet a dry, bare, sandy hole with nothing in it to sit down on or to eat: it was a hobbit-hole, and that means
comfort.</p>
Listes en HTML#
Une liste est un paragraphe dâun type particulier contenant une Ă©numĂ©ration dâĂ©lĂ©ments.
- Liste non ordonnée
<ul> <li>sucre</li> <li>céréales</li> <li>lait</li> </ul>
- Liste ordonnée
<ol> <li>sucre</li> <li>céréales</li> <li>lait</li> </ol>
- Liste descriptive
<dl> <dt>Name</dt> <dd>Skywalker</dd> <dt>Firstname</dt> <dd>Luke</dd> </dl>
Note
ul
signifie unordered listol
signifie ordered listli
signifie list itemdl
signifie descriptive listdt
signifie descriptive titledd
signifie descriptive data
Tableau#
Permet de reprĂ©senter un tableau de donnĂ©es, câest-Ă -dire des informations exprimĂ©es sur un tableau en deux dimensions.
<table>
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>Skywalker</td>
</tr>
</tbody>
</table>
Les inlines#
Hyperliens, les citations, ou images, ce sont de « petites » structures qui reprĂ©sentent de petits morceaux de textes ou de donnĂ©es. Ils sont affichĂ©s lâun aprĂšs lâautre sur une ligne Ă lâintĂ©rieur du bloc qui les contient.

Les liens#
Représenter par la balise a
, pour anchor, permet de crĂ©er des liens internes au document ou externe (vers dâautres documents).
<a href="https://ugaritic.fr" title="rendez vous sur Ugaritic.fr"> Ugaritic</a>
Les images#
Représenter par la balise img
, les attributs src
(source) et alt
}` (alternative text) sont obligatoires.
<!-- Distant img -->
<img src="http://..." alt="Sad kitten" />
<!-- Local img -->
<img src="img/kitten.jpg" alt="Sad kitten" />
Quelques inlines utiles#
<p>The word <strong>strong</strong> is bolded.</p>
<p>The word <em>emphasize</em> is emphasized.</p>
Span et Div#
HTML fournit deux balises neutres (c.à .d. sans sémantique particuliÚre) : <span>
qui est un inline et <div>
qui est un block.
Ces Ă©lĂ©ments sont utiles pour rajouter de la structuration au document, notamment en portant des classes personnalisĂ©es. Il est toutefois prĂ©fĂ©rable dâutiliser une balise sĂ©mantique proche du contenu quâune balise neutre.
Sections#
JusquâĂ HTML 4.01, la structuration en sections Ă©tait laissĂ©e implicite. Depuis HTML5, on est encouragĂ© Ă utiliser la balise <section>
, dâautant que les anciens navigateurs lâignoreront purement et simplement.
Utilisation des sections#
Via lâutilisation des sections, ce code html
<h1>The Skeksis</h1>
devient
<section>
<h1>The Skeksis</h1>
</section>
<h1>The Skeksis</h1>
<h2>Description</h2>
<p>Reptilian and bird-like creatures</p>
devient
<section>
<h1>The Skeksis</h1>
<section>
<h2>Description</h2>
<p>Reptilian and bird-like creatures</p>
</section>
</section>
Sections spécialisées#
Il existe des sections plus spécialisées, nous reviendrons sur leurs utilisations durant le chapitre sur les bonnes pratiques.
main
contenu principal de la pagearticle
contenu auto-suffisantaside
encartheader
en-tĂȘte de la section parent (ou du doc)footer
pied de la section parent (ou du doc)nav
section contenant des liens (navigation)
Indication
Le W3C fournit un service de validation en ligne http://validator.w3.org, son utilisation vous est vivement recommandée.
DOM - Document Object Model#
Lors du chargement de la page, le navigateur créé un arbre DOM. Il est construit comme un arbre dâobjets standard du W3C. Il sâagit dâune interface de mise Ă jour du contenu, structure et style de document HTML/XML.

Premier pas en HTML#
Ă faire
Créer un nouveau dossier TP1
Créer un fichier
index.html
Pourquoi ce nom de fichier ? Avez-vous pensĂ© Ă lâencodage du fichier ? Pourquoi
UTF-8
?Créer le squelette de document HTML5 dans le fichier précédent
LâentĂȘte de notre document HTML contient deux Ă©lĂšments, quels sont leurs utilitĂ©s ?
Quel élément correspond au corps du document ? Quel est son utilité ?
- Au sein du corps du document créez les éléments suivants:
Des titres de niveau 1 Ă 6
Un paragraphe
Une image, Quelle est lâutilitĂ© des attributs
src
etalt
?Un lien vers une page html (news.html que vous aurez au prĂ©alable créé), Quelle est lâutilitĂ© des attributs
href
ettitle
?Une liste désordonnée
Une liste ordonnée
Une liste descriptive
Nous avons mĂ©langĂ© des Ă©lĂ©ments de type inline et block, voyez-vous la diffĂ©rence entre ces deux types dâĂ©lĂ©ments ?
Astuce
Voici le squelette de tout document HTML5:
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<meta charset="utf-8" />
</head>
<body>
</body>
</html>
<!-- COMMENTAIRE -->
Mise en forme de rĂšgles#

Ă faire
Téléchargez le
texte
et mettez en forme celui-ci (comme lâexemple ci-dessus) en utilisant les balises suivantes:
<p>
<h1>
<h2>
<h3>
Note
La mise en forme sera différente, mais cherchez surtout à reproduire la structure logique du document.
Téléchargez le
modĂšle HTML
correspondant Ă lâexemple, et recopiez votre code Ă lâintĂ©rieur de la balise<body>
. Ce modÚle contient un lien vers la feuille de style appropriée.
Note
Dans les deux cas, ne tenez pas compte pour lâinstant des mots en gras, italique et soulignĂ©.
AmĂ©liorez votre version de lâexemple ci-avant en ajoutant les balises
<section>
.- Reprenez votre code HTML reproduisant lâexemple ci-avant, et ajoutez les balises manquantes.
Le rendu doit maintenant ĂȘtre trĂšs proche de celui de lâexemple.
- Dans lâexemple ci-avant pouvez-vous identifier une liste ? Reprenez votre code HTML reproduisant cet exemple et modifiez-le en consĂ©quence.
Le rendu doit maintenant ĂȘtre identique Ă celui de lâexemple.
Structurons notre page#
Ă faire
Au sein du corps du document défini précédemment créez plusieurs articles de type actualités
Indication
Une actualitĂ© est Ă minima constituĂ© dâun(e):
titre
auteur
contenu
date de publication
catégorie
miniature
<div>
<h2>The Last Jedi trailer is out !</h2>
<ul>
<li>Written by Samy Delahaye</li>
<li>On Thurday 21, sept. 2017</li>
</ul>
<p>Insert some fanboy text here !</p>
<a href=".." title="..">Read more !</a>
</div>
Astuce
Si vous cherchez du texte de remplissage pour vos tps, je vous conseille lâexcellent site fillerama
Un menu de navigation nâest rien dâautre quâune liste de liens non ordonnĂ©e.
Créer un menu de navigation en utilisant les balises
ul
,li
eta
.Ajouter la classe menu Ă la balise
ul
<div class="maclass"></div>
RĂšgles 2 (bonus)#
Si vous ĂȘtes en avance sur le reste du groupe.
Téléchargez l'archive suivante
contenant une partie des rĂšgles du jeu citadelles.
Remettez le fichier de rĂšgles en forme comme prĂ©cĂ©demment. Toutefois le mot carte peut parfois ĂȘtre suivi de certains nom de personnage, de lieu, etc.. dans ce cas il convient de le remplacer par lâimage correspondante prĂ©sente dans le dossier img.
Livre dont vous ĂȘtes le hĂ©ros#
Téléchargez ce fichier html
. Il contient un livre dont vous ĂȘtes le hĂ©ros minimaliste.
Faites en une version interactive avec des liens internes.
Chapitres dont vous ĂȘtes le hĂ©ros#
Faites en une version interactive ou chaque entrée est une page HTML distincte (en utilisant ces fichiers HTML
).