HTML : Un Langage Fondamental pour le Web
L'HTML (HyperText Markup Language) est un langage de description (ou de balisage) qui permet de créer la structure et le contenu des pages web. Il est interprété par les navigateurs pour afficher des documents hypertextes.
Historique et Rôle Principal
- Origine : Inventé en 1989, le HTML a émergé avec le début du Web pour présenter des documents et établir des liens hypertextes entre eux.
- Support : Il est supporté et développé par le W3C (World Wide Web Consortium).
- Côté Client : C'est un langage exécuté côté client, tout comme le CSS et le JavaScript.
- Séparation des préoccupations : Dans une page web, il est crucial de séparer :
- L'aspect information : contenu (textes, images, sons, vidéos, liens) et sa structuration.
- L'aspect présentation : forme (affichage sur grand écran, smartphone, imprimante, etc.).
HTML se concentre principalement sur l'aspect information et la structure.
Fonctionnalités Clés
Le HTML permet de :
- Structurer le texte (divisions, titres, paragraphes, tableaux, listes).
- Créer des hyperliens (ou hyperliens).
- Insérer des images.
- Insérer des composants multimédia : sons, vidéos.
- Créer des formulaires de saisie.
Note : HTML offre des fonctionnalités de mise en forme basiques. Pour des mises en forme avancées, les feuilles de style CSS sont recommandées.
Structure d'un Document HTML
Un document HTML est un hypertexte décrit avec le langage HTML, il décrit le contenu des pages web.
Un hypertexte est un texte contenant des liens. Un lien peut être un mot ou une image cliquable permettant de se déplacer vers un autre emplacement du document, un autre document sur le même site, un document sur un autre site web, ou un autre service Internet (mail, ftp, etc.).
Création et Fichiers HTML
- Un document HTML est un simple fichier texte avec l'extension
.html (Ex: index.html). Un éditeur de texte simple suffit, mais un éditeur avec coloration syntaxique (comme Visual Studio Code) est plus confortable.
- Le navigateur ne signalera pas d'erreur de syntaxe, même si le fichier HTML en contient.
Structure Hiérarchique et Balises
Un fichier HTML a une structure d'éléments imbriqués réalisée grâce au balisage. Chaque balise (ou tag) a une signification que le navigateur comprend et exécute pour présenter le document.
- Le balisage associe généralement une balise ouvrante (
<nom_balise>) et une balise fermante (</nom_balise>).
- Certaines balises sont auto-fermantes (ou orphelines), n'ayant pas de balise fermante associée (Ex:
<img>, <br>). Elles insèrent un élément sans contenu.
- Les noms des balises ne sont pas sensibles à la casse (
<body> est équivalent à <BODY>).
- Une balise auto-fermante peut aussi être écrite
<balise/>.
Code Source Minimal Conforme
La structure minimale pour un document HTML5 est :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Titre de la page</title>
</head>
<body>
<!-- Contenu visible ici -->
</body>
</html>
<!DOCTYPE html> : Indique qu'il s'agit d'une page HTML5.
<html> : Renferme l'intégralité de la page web.
<head> : Contient des métadonnées non affichées à l'écran mais utilisées par le navigateur et les moteurs de recherche.
<title> : Définit le titre de la page affiché dans l'onglet du navigateur.
<meta charset="utf-8"> : Spécifie l'encodage des caractères.
<meta name="author" content="Mme Bousnina"> : Indique l'auteur.
<meta name="Keywords" content="web, html, css"> : Mots-clés pour les moteurs de recherche.
<link/> : Appelle une ressource externe (ex: une feuille de style CSS).
<body> : Renferme le contenu réellement visible par les internautes.
Sans les balises <html>, <head> et <body>, le document sera exécuté mais non valide selon le W3C et pourrait rencontrer des problèmes de référencement.
Imbrication des Balises
Commentaires HTML
Les commentaires HTML sont déclarés ainsi : <!-- Commentaire -->
- Ils sont visibles dans le code source mais ignorés par le navigateur.
- Utiles pour documenter le code et faciliter sa compréhension future.
Balises de Structure et de Contenu
Balises de Titres
Les balises <h1> à <h6> (heading) définissent les titres et sous-titres :
<h1> : Titre de premier niveau (grande taille, gras).
<h2> : Titre de deuxième niveau (taille légèrement plus petite), utile pour les sous-titres.
- Jusqu'à
<h6>, avec une taille de caractères décroissante.
Balise de Paragraphe
La balise <p> sert à définir un paragraphe.
- Les retours chariot dans un élément
<p> sont ignorés par le navigateur, le texte est affiché comme un bloc continu.
- Un paragraphe insère par défaut une ligne vide au-dessus et en dessous de son contenu.
Balise de Retour à la Ligne
La balise <br/> insère un saut de ligne sans créer un nouveau paragraphe. C'est une balise orpheline (pas de </br>).
Balise de Ligne Horizontale
La balise <hr/> crée une ligne horizontale, représentant un changement thématique. C'est une balise auto-fermante.
Autres Balises de Formatage de Texte
Il est recommandé d'utiliser des balises sémantiques lorsque cela est possible plutôt que des balises purement de présentation.
| Balise |
Effet |
Exemple |
Rendu |
<b> ou <strong> |
Gras (importance particulière pour <strong>) |
<b>Texte en gras</b> |
Texte en gras |
<u> |
Souligné |
<u>Texte souligné</u> |
Texte souligné |
<i> ou <em> |
Italique (emphase pour <em>) |
<i>Texte en italique</i> |
Texte en italique |
<s> |
Barré |
<s>Texte barré</s> |
Texte barré |
<mark> |
Surligné |
<mark>Texte surligné</mark> |
Texte surligné |
<sub> |
Indice |
H<sub>2</sub>O |
H2O |
<sup> |
Exposant |
10<sup>2</sup> |
102 |
<small> |
Police plus petite |
<small>Police plus petite</small> |
Police plus petite |
Caractères Spéciaux
Les caractères spéciaux sont des séquences reconnues et remplacées par le navigateur (Ex: " pour "
").
Balise Préformatée
La balise <pre> affiche le contenu exactement tel qu'il a été édité dans le code, conservant les retours à la ligne, les espaces et les tabulations.
<pre>
Là-haut sur la montagne, l'était un vieux chalet.
Murs blancs, toit de bardeaux,
Devant la porte un vieux bouleau.
</pre>
Attention : Il ne faut pas abuser de l'élément <pre> car il ne comporte aucune signification sémantique forte, ce qui n'est pas apprécié car il ne renforce pas le rôle du HTML.
Liens Hypertextes (Ancres)
Les liens HTML (balise <a>) créent des ponts entre pages du même site ou de sites différents, ou au sein de la même page.
Structure d'un Lien
Types de Liens
- Liens externes : Vers une page d'un autre site.
<a href="http://www.ummto.dz">UMMTO</a>
- Liens internes (locaux) : Vers une page du même site.
<a href="cv.html">curriculum vitae</a>
- Liens d'ancres : Permettent de naviguer au sein de la même page ou vers une ancre dans une autre page.
- Ancre dans la même page :
- Définir la cible avec un
id : <p id="ancre">Contenu</p>
- Créer le lien :
<a href="#ancre">Section</a>
- Ancre dans une autre page :
- Définir la cible avec un
id : <p id="ancre">Contenu</p>
- Créer le lien :
<a href="url/nom_du_fichier.html#ancre">Section</a>
Attribut target
L'attribut target de la balise <a> spécifie où le document lié doit être ouvert :
_blank : Ouvre le lien dans un nouvel onglet.
_self : Ouvre le lien dans le même onglet (valeur par défaut).
Listes HTML
Les listes HTML ordonnent ou hiérarchisent le contenu.
Types de Listes
Attributs des Listes
type :
- Pour
<ul> : disc (●), circle (○), square (■).
- Pour
<ol> : A, a, I, i, 1.
value (pour <li>) : Définit un rang de numérotation spécifique.
start (pour <ol>) : Démarre la numérotation à un rang spécifique.
Gestion des Images
La balise <img/> permet d'intégrer une image dans un document. C'est un élément de type inline.
Attributs Obligatoires et Recommandés
src : Obligatoire, spécifie le chemin vers l'image.
- Fichier local :
<img src="images/test.png">
- Fichier distant :
<img src="http://exemple.org/exemples/images/test.png">
alt : Recommandé pour l'accessibilité, propose un texte de remplacement si l'image ne peut pas être chargée ou pour les lecteurs d'écran. Utile pour les moteurs de recherche.
Chemins de Fichiers
- Chemin absolu : Emplacement complet d'un fichier depuis la racine (Ex:
D:/home/john/www/blog/index.php).
- Chemin relatif : Description de l'emplacement d'un fichier depuis l'emplacement du fichier actuel (Ex:
./images/back03.jpg).
- Pour la conception de sites, il est fortement recommandé d'utiliser des chemins relatifs pour garantir que les liens restent valables quel que soit le serveur d'hébergement.
Attributs Additionnels
width, height : Largeur et hauteur de l'image (généralement en pixels). Il est déconseillé de les utiliser pour redimensionner, préférer le CSS.
Note : Si les valeurs sont en pourcentage (Ex: width="50%"), cela représente le pourcentage de l'espace par rapport à la taille de son conteneur parent.
title : Texte affiché en info-bulle au survol de la souris.
Formats d'Images Courants
- JPEG (Joint Photographic Expert Group) :
- Format photo le plus répandu.
- Forte compression (supprime les informations invisibles à l'œil).
- Léger, temps de chargement optimisé.
- Qualité suffisante pour le digital.
- Universel.
- GIF (Graphics Interchange Format) :
- Utilisé pour les images animées.
- Idéal pour les réseaux sociaux.
- PNG (Portable Network Graphics) :
- Idéal pour les images à fond transparent, graphiques et logos.
- Bon taux de compression avec bonne qualité.
Règle d'or : Une bonne image vaut mieux qu'un long discours, mais une bonne image est plus longue à charger.
Tableaux HTML
L'élément <table> représente un tableau de données en deux dimensions.
Structure de Base
- Un tableau est défini par la balise
<table>.
- Les lignes sont définies par
<tr> (table row).
- Les cellules de données sont définies par
<td> (table data).
Cellules d'En-tête
L'élément <th> (table header) définit les cellules d'en-tête, qui sont généralement affichées en gras par les navigateurs.
Légende de Tableau
L'élément <caption> ajoute une légende (titre) à un tableau, elle peut être placée au-dessus ou au-dessous (selon l'attribut align).
Attributs de Tableau (Dépréciés pour la Mise en Forme)
Il est fortement conseillé de ne pas utiliser ces attributs pour la mise en forme et de privilégier le CSS.
- Pour
<table> :
border : Épaisseur de la bordure extérieure.
cellpadding : Espace entre bordures et contenu des cellules.
cellspacing : Marges entre cellules.
- Pour
<td> :
colspan : La cellule s'étend sur plusieurs colonnes.
rowspan : La cellule s'étend sur plusieurs lignes.
bgcolor : Couleur de fond de la cellule (déprécié).
Contenu Multimédia (Audio et Vidéo)
Intégration de Vidéos
La balise <video> inclut une vidéo dans une page web, avec des contrôles de lecture intégrés.
- Il est important de fournir plusieurs sources vidéo (MP4, WebM, Ogg) pour une compatibilité maximale entre navigateurs.
- Le texte entre
<video></video> est un message de secours si le navigateur ne peut pas lire la vidéo.
- L'attribut
src peut être utilisé directement : <video src="..."></video>.
Intégration d'Audio
La balise <audio> est similaire à <video> mais est spécifiquement pour les fichiers audio.
<audio controls autoplay muted loop>
<source src="audio.mp3" type="audio/mp3">
Votre navigateur ne supporte pas l'élément audio.
</audio>
Attributs Communs aux Balises <video> et <audio>
controls : Affiche les contrôles de lecture (lecture, pause, volume, etc.).
autoplay : Démarre la lecture automatiquement (peut être bloqué par certains navigateurs).
loop : Rejoue le média en boucle.
muted : Démarre le média en sourdine.
poster (pour <video>) : Affiche une image de prévisualisation avant la lecture.
track (pour <video>) : Permet d'ajouter des sous-titres ou légendes.
Intégration de Contenu Externe (Iframes)
La balise <iframe> inclut une autre page web à l'intérieur de la page actuelle. Elle permet d'intégrer du contenu externe (vidéos, cartes, widgets) de manière sécurisée.
- Pour intégrer des services comme Google Maps, il faut utiliser l'URL spécifique fournie par le service pour l'intégration.
Formulaires HTML
Les formulaires HTML (`