### Syntaxe d'une balise

Reprenons l'exemple précédent de page HTML :

Exemple : une page html
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Exemple de page</title> </head> <body> <p>Je suis un exemple de document HTML.</p> <ul> <li>On utilise <strong>des balises</strong> pour marquer la structure du document.</li> <li>Les balises ont une <strong>syntaxe particulière</strong>.</li> <li>Elles permettent de donner du sens aux informations en définissant par exemple ici un paragraphe et une liste.</li> </ul> <p><img src="info.png">C'est le <a href="http://w3c.org">W3C</a> qui définit les balises.</p> </body> </html>

Les balises (ou marqueurs, ou tags) qui permettent de définir les informations en les délimitant sont clairement identifiables car elles ont une syntaxe particulière qui les différencie du texte et du contenu à proprement parler.

Une balise est composée des parties suivantes :

- le caractère <
- un nom
- le caractère >

Le nom de la balise est généralement un terme ou l'abbrévation d'un terme anglais. Dans l'exemple on trouve `head` pour en-tête du document, `title` pour titre du document, `body` pour corps du document, `p` pour paragraph (paragraphe), `ul` pour unordered list (liste non ordonnée), `li` pour list item (ligne de liste).

Le nom des balises n'est pas sensible à la casse et peut être écrit en minuscules, en majuscules ou dans un mélange des deux.
`<body>` est équivalent à `<BODY>` qui est équivalent à `<Body>` qui est équivalent à `<BoDy>`, etc.

### Elément

Pour pouvoir entourer l'information qu'elles décrivent, les balises HTML fonctionnent par paires.

Un élément HTML est constitué par :

Une balise de fin est la même balise que la balise d'ouverture, le nom de la balise étant précédé du caractère /.

- une balise de début
  (ou balise d'ouverture),
- du contenu,
- une balise de fin
  (ou balise de fermeture).

Les éléments vides : area, base, br, col, embed, hr, img, input, keygen, link, meta, param, source, track, wbr.

Certains éléments (peu nombreux) n'ont pas de contenu. ce sont des éléments vides et ils n'ont pas de balise de fermeture.
C'est le cas par exemple des images qui sont simplement référencées dans le code avec la balise `<img>`. Le contenu proprement dit de l'image (du contenu binaire) est téléchargé puis inclus par le navigateur à la position définie par la balise `<img>` au moment de l'affichage de la page.
La balise `<br>` est un autre exemple. Cette balise permettant de forcer un saut de ligne dans du texte, elle définit le point précis où sera fait le saut de ligne n'a pas à délimiter une information.

Dans certaines situations, la balise de fin n'est pas obligatoire et le navigateur en "ajoutera" une automatiquement. Pour éviter tout effet inattendu dans le rendu de la page, je vous conseille de toujours fermer les balises qui ne définissent pas des éléments vides.