Hypertext Markup Language : Langage déclaratif permettant de structurer des pages web.
Interprêté par le navigateur côté client pour produire le DOM (Document Object Model), structure arborescente d'objets constituant la page Web.
Bonnes pratiques :
br pour passer des lignes)Certaines balises sont dites auto-fermantes ou orphelines, elles ne disposent d'aucun contenu :
Le / terminal n'est pas obligatoire mais conseillé, il favorise la lecture et l'interprétation du fichier.
Certains éléments sont définis à partir de balises de type block, c'est-à-dire que l'élément défini occupe toute la largeur de son conteneur dans le flux.
C'est le cas par exemple des titres (h1, h2…), des div ou des paragraphes (p)
Par opposition aux éléments inline, qui trouvent leur place dans le flux : span, strong
<h1>Un titre de niveau 1</h1> <div class="conteneur"> <p>L'élément p est un élément de type block</p> <p>L'élément <strong>strong</strong> est de type inline, tout comme <span>span</span></p> </div>
Les attributs d'un élément définissent ses caractéristiques, ils sont apposés sur la balise ouvrante de l'élément :
Les 2 peuvent être utilisés indifférement pour définir les valeurs des attributs.
<img src="/assets/logo.png" width="20px" />
<img src='/assets/logo.png' width='20px' />
Il est par contre déconseillé d'alterner entre les 2 écritures au sein d'un même projet
Certains attributs sont définis sans valeur et correspondent à des booléens. Ils n'acceptent qu'une valeur par défaut (égale au nom de l'attribut) qui peut être omise.
<input disabled />
<input disabled="disabled" />
Ce sont ceux qui sont utilisables sur tous les éléments HTML, quelque soit leur type :
| Attribut | Rôle |
|---|---|
| id | Attribue un identifiant unique dans la page à l'élément, utilisé par les liens de type ancre, ou en javascript |
| class | Permet de spécifier la ou les classes CSS associées, utilisable également en JS pour cibler un groupe d'éléments |
| style | Permet de définir directement le style de l'élément, ce qui est une mauvaise pratique |
| data-* | Permet d'ajouter un nouvel attribut (en remplaçant l'étoile par un nom, utilisable en JS, ou en CSS |
Voir plus sur MDN attributs universels
La structure de base d'une page HTML dépend de la version HTML déclarée dans le doctype
Le doctype a été simplifié dans la dernière version HTML :
<!doctype html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
| Elément | Rôle |
|---|---|
| !doctype | Version html utilisée (HTML5 dans ce cas |
| html | Début de la page avec spécification obligatoire de la lang |
| head | Permet de spécifier les en-têtes HTTP et les valeurs des balises meta, l'encodage par exemple |
| title | Titre de la page apparant en titre d'onglet dans le navigateur |
| body | Corps du document, défini le contenu qui sera affiché |
Un document HTML doit respecter les standards définis par le W3C, correspondant à la version déclarée dans le doctype.
Le nom respect des normes pose des problèmes :
Le W3C propose un service de validation des contenus web créés : W3C Validator