HTML
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 :
- Ne jamais restructurer un document pour en modifier la présentation en HTML (ex ajout de
br
pour passer des lignes) - Respecter la normalisation et vérifier son code avec le validateur W3C
Elément
Balises
Standards
Auto-fermantes
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.
block et inline
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>
Attributs
Les attributs d'un élément définissent ses caractéristiques, ils sont apposés sur la balise ouvrante de l'élément :
Guillemets ou quotes
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
Attributs booléens
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" />
Attributs universels
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
Structure d'une page
La structure de base d'une page HTML dépend de la version HTML déclarée dans le doctype
HTML5
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é |
Normalisation
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 :
- D'interprétation par le navigateur
- De référencement par les moteurs de recherche
- D'image pour l'entreprise (concepteur du site et/ou entreprise éditrice)
- D'accès à l'information
Elements et balises
- La liste des balises permettant de définir les éléments d'une page est pré-définie (elle n'est pas extensible).
- Les balises doivent repsecter une certaine hiérarchie (ul/li, table/tr/td…)
- Les balises doivent être fermées dans l'ordre dans lequel elles ont été ouvertes
Attributs
- La liste des attributs supportés par un type de balise est prédéfinie
- Les valeurs des attributs doivent respecter un certain domaine (type, plage ou liste de valeurs possibles)
Validation
Le W3C propose un service de validation des contenus web créés : W3C Validator