Chapitre 1
Chapitre 1
Chapitre 1
1. Introduction
Le mot HTML vient de l’anglais : HyperText Markup Language. Le HTML n’est pas un langage de
programmation mais c’est un langage standard qui permet de définir l'habillage d'un document (page Web). C’est à
dire : la façon dont il doit s'afficher à l'écran d'un navigateur.
Ainsi, une page HTML est un fichier texte enrichi de codes et de commandes appelées balises. Le fichier source
porte généralement l’extension : .htm ou .html
Même s’il existe des éditeurs WYSIWYG : What You See Is What You Get (Ce que vous voyez est ce que vous
obtenez), on peut écrire du code HTML à l’aide de n’importe quel éditeur de texte.
Le code source doit être sauvegardé sur le serveur Web. Il est envoyé vers les clients à l’aide du protocole
HTTP. Par la suite, le code HTML est interprété par le navigateur et l’affiche sur écran sous forme de : textes mis
en forme, images, animations, multimédias, …
Le code source est visible aux utilisateurs mais ils ne pourront pas le modifier (facilement) sur le serveur.
2. Notion de Balise
La balise en HTML est un mot clé du langage qui est encadré par les symboles < et >. Pour la plupart des
balises, il existe une balise de début et une balise de fermeture précédée par / : comme par exemple <html> ...
</html>. Par contre, certaines balises n’ont pas de balises fermantes : comme par exemple <img>, <br>, … Pour
d’autres, la balise fermante est facultative : comme par exemple <p>, <td> …
Il est possible d’imbriquer les balises de la manière suivante : <balise1><balise2> … <balisen> …
</balisen> … </balise2></balise1>. La fermeture se fait dans l’ordre LIFO (Pile). Par contre, l’imbrication qui
consiste à insérer une balise à l’intérieur d’une autre est interdite. Par exemple, ceci est faux : <balise1 …
<balise2> … >.
Page 1
Module : Programmation Web
Chapitre 1 : Langage HTML 4
Enseignant : H. BENKAOUHA
Le tableau suivant donne la liste des noms des couleurs de la palette Web (16 couleurs) :
La couleur Nom HTML Code RGB
Blanc White #FFFFFF
Argent Silver #C0C0C0
Gris Gray #808080
Noir Black #000000
Rouge Red #FF0000
Marron Maroon #800000
Jaune Yellow #FFFF00
Vert citron Lime #00FF00
Vert Green #008000
Olive Olive #808000
Cyan Aqua #00FFFF
Bleu gris Teal #008080
Bleu Blue #0000FF
Bleu marine Navy #000080
Magenta Fuchsia #FF00FF
Pourpre Purple #800080
Barre de titre
Barre des menus
Barre d’outils
Le titre défini par
Barre d’adresse la balise TITLE
Zone d’affichage
Page 3
Module : Programmation Web
Chapitre 1 : Langage HTML 4
Enseignant : H. BENKAOUHA
Name Content
"description" Un texte descriptif du contenu de la page Web. Cette description apparaîtra dans le
résultat pour plusieurs moteurs de recherche.
"keywords" Une suite de mots clés séparés par une virgule ou point virgule. Un utilisateur qui tape
un de ces mots clés dans un moteur de recherche, cette page a de grande chance d’être
trouvée. Un mot clé peut être un mot simple (taille) ou un mot composé (en-tête ou
grand père).
"date" Doit être de la forme : AAAA-MM-JJTHH:MM:SS+HH:MM. Où AAAA est l’année sur 4
positions, MM le mois sur 2 position (00 représente Janvier et 11 pour Décembre),
HH:MM:SS l’heure (en heures, minutes et secondes), après le signe + on donne le
décalage par rapport à l’heure GMT. Il est possible de ne mentionner que la date sans
l'heure, il suffit de la noter sous la forme AAAA-MM-JJ.
"author" Le nom de l'auteur (c'est à dire: du responsable du contenu).
"reply-to" L'adresse électronique (email) de contact.
"robots" "all" : Le robot indexe tout (par défaut).
"index" : Autoriser l’indexation de la page.
"none" : Pour empêcher les moteurs de recherche d’indexer (rajouter à la base de données) la
page actuelle. Ainsi, la page n’est pas affichée dans les résultats de recherche.
"noindex" : Equivalente à "none" seulement permet de suivre les liens de la page.
"nofollow" : Autorise le robot du moteur de recherche de transmettre le contenu du
fichier HTML actuel à sa base de données mais l’empêche cependant de visiter les
fichiers référencés par des liens dans la page actuelle.
"follow" : Permet l’indexation de la page actuelle et de suivre ses liens.
"revisit-after" "n days" où n est un entier positif. Pour indiquer aux moteurs de recherche de revenir
dans n jours pour relire le fichier complètement.
"copyRight" Les informations concernant la protection du contenu (Copyright).
"generator" Le nom de l’application qui a généré cette page.
"progId" L’identificateur du programme qui a généré cette page.
"title" Le titre de la page. Ceci n’est pas une redondance avec la balise <title> car il peut être
utile pour donner la traduction du titre dans d’autres langues.
Pour la description, les mots clés ou le titre, il est possible de noter plusieurs meta avec des langues différentes.
Il suffit de rajouter l’attribut lang="code_langue". Pour la valeur "code_langue" des codifications à deux lettres
ou à quatre lettres sont autorisées. Pour la première, une abréviation du nom de la langue à deux lettres : par
exemple en pour l'anglais, ar pour l’arabe, es pour l'espagnol, de pour l'allemand, fr pour le français ou it pour
l'italien. Pour la seconde, il est rajouté au code de la langue, une abréviation en deux lettres du pays : par exemple
en-us pour l’anglais américain, ar-dz pour l’arabe algérien.
http-equiv Content
"content-type" La valeur doit respecter la syntaxe suivante :
"type_mime; charset=code_jeu_caracteres".
Puisqu’il s’agit de page HTML, le type MIME est text/html.
Par exemple : "text/html; charset=iso-8859-1" ou "text/html;
charset=windows-1252"
"content-language" Langue du contenu de la page. Le code de la langue est donné en abréviation de 2
lettres ou 4 lettres comme ça été expliqué ci-dessus pour l’attribut lang.
"Content-Script-Type" La valeur doit être le type MIME du langage de script utilisé, par exemple :
"text/javascript".
"Content-Style-Type" La valeur doit être le type MIME du langage de styles utilisé, par
exemple :"text/css".
Les navigateurs sauvegardent les pages visitées localement (sur l'ordinateur de l'utilisateur), on parle alors de
cache du navigateur. L'inconvénient est que les données risquent de ne plus être d'actualité. Car, entre temps de
nouvelles mises à jour de la page se sont produites sur le serveur. Il est possible de forcer l'ordinateur serveur à
commander au navigateur de ne pas prendre les données dans une mémoire cache mais du serveur d'origine. Ceci
est recommandé dans les pages actualisées fréquemment.
La forme générale est la suivante : <meta http-equiv="expires" content="valeur">. La valeur de l’attribut
content varie selon le tableau ci-dessous :
content Description
"0" Recharger la page du serveur à chaque fois qu’elle est demandée par l’utilisateur.
"n" : Entier > 0 La page doit être rechargée à partir du serveur après n secondes.
"Day, JJ Mon AAAA A l'arrivée de la date et l'heure (mentionnées dans un format international) la page doit être
HH:MM:SS GMT" rechargée. Le jour de semaine et le mois doivent être donnés avec les trois premières lettres
de l’appellation en anglais. Par exemple : content="Thu, 01 Jan 2009 05:00:00 GMT".
A l’aide des META, il est possible aussi de lancer une autre page (rediriger) après un certain délai. La forme
générale est : <meta http-equiv="refresh" content="n; URL=http://adresse_complète">. Où n est un
nombre entier positif ou nul et après URL= on peut donner l’adresse en respectant la syntaxe des fichiers. Si le « ; »
ainsi que ce qui le suit ne sont pas rajoutés, c’est la page actuelle qui est rechargée.
Remarque :
Il ne faut pas trop abuser avec les balises META. Ceci risque de rendre la page trop volumineuse et lourde à
télécharger au niveau de l'utilisateur. Il faut savoir que ce n'est pas uniquement les META qui permettent de bien
classer la page dans les résultats des moteurs de recherche. Le contenu de la page joue un rôle très important.
3.2 Le corps
Le corps de la page HTML est défini par la balise <body>. La balise </body> marque sa fin. La plupart des
éléments insérés dans cette partie apparaîssent sur le navigateur. Ainsi, cette partie contient tous les éléments à
afficher : textes, images, …
Il faut savoir que dans cette partie, le formatage manuel (c’est à dire l’insertion des sauts de lignes, des espaces
supplémentaires…dans le code) est toujours ignoré. Nous verrons plus loin comment insérer ce genre d’éléments.
3.3 Le Commentaire
Comme dans tous les langages informatiques, on peut insérer des commentaires HTML. Pour cela, il y a aussi une
balise. Le commentaire peut être inséré n'importe où dans la page mais n’est pas pris en considération (affiché) par le
navigateur. Le texte du commentaire doit être inséré entre <!-- et -->.
Par exemple : <!-- ... le commentaire ... -->
Il faut savoir que le commentaire peut être sur une ou plusieurs lignes et peut contenir des balises HTML, mais
on ne peut pas imbriquer les commentaires.
4. Propriétés de la page
Plusieurs propriétés de la page peuvent être fixées à l’aide des attributs de la balise <body>. Ces attributs sont
facultatifs.
Page 5
Module : Programmation Web
Chapitre 1 : Langage HTML 4
Enseignant : H. BENKAOUHA
4.1 Le fond
On peut choisir une couleur de fond pour la page à l’aide de l’attribut bgcolor. La valeur de cet attribut obéit à
la syntaxe des couleurs (expliquée en début du chapitre).
Il est possible d’insérer une image de fond sur la page à l’aide de l’attribut background. Sa valeur obéit à la
syntaxe des fichiers. Par défaut l’image de fond défile avec le texte.
Conseil : Il faut toujours choisir une couleur de fond qui se rapproche de la couleur dominante de l’image de fond. Ceci
permettra à l’utilisateur de visualiser le contenu de la page en cas où l’image de fond ne s’affiche pas.
4.2 Couleurs par défaut des textes
On peut fixer la couleur par défaut du texte (qu’il soit simple ou lien) comme suit :
- La couleur par défaut du texte : On rajoute l’attribut text.
- La couleur par défaut des liens : On rajoute l’attribut link.
- La couleur par défaut des liens visités : On rajoute l’attribut vlink.
- La couleur par défaut des liens actifs : On rajoute l’attribut alink.
Les valeurs de tous ces attributs obéissent à la syntaxe de la couleur.
4.3 Direction du texte
Par défaut, l’écriture du texte est dirigée de gauche à droite. Pour modifier la direction on rajoute l’attribut
dir.="rtl" pour une direction de droite à gauche (page contenant du texte en Arabe, par exemple).
Balises Définition
<strong> …txt… </strong> ou <b> …txt… </b> Les deux permettent de mettre le texte en gras.
<em> …txt… </em> ou <i> …txt… </i> Les deux permettent de mettre le texte en italique.
<u> …txt… </u> Elle permet de souligner un texte.
<sup> …txt… </sup> Elle met le texte en exposant.
<sub> …txt… </sub> Elle met le texte en indice.
5.2 Mises en forme particulières
Il existe aussi d’autres mises en forme (particulières) données par le tableau suivant:
Balise Description
<hi> … </hi>. Permet d’insérer un titre de niveau i. La valeur de i va de 1 à 6.
<code> … </code> Pour insérer un code.
<kbd> … </kbd> Pour insérer un texte en format clavier.
<var> … </var> Pour insérer une variable (mathématique).
<cite> … </cite> Pour insérer une citation.
<dfn> … </dfn> Pour insérer une définition.
<samp> … </samp> Pour insérer un exemple.
<blockquote> … </blockquote> Affiche le texte mis entre ses balises sous forme de bloc en retrait.
<address> … </address> Pour insérer une adresse.
<tt> … </tt> Imprimé (style machine à écrire).
<pre> … </pre> Texte pré formaté. Les espaces, les sauts et même les balises apparaîtront
tels qu’ils ont été écrits entre <pre> et </pre>.
<big> … </big> Pour agrandir de +1 la taille du texte.
<small> … </small> Pour réduire de -1 la taille du texte.
5.3 Remarques
- Il faut faire attention à la fermeture de balises : ordre « LIFO / Pile ».
- En cas de conflit entre balises, la balise la plus proche sera appliquée.
- Il y a d’autres balises comme <blink> (texte clignotant) et <strike> (texte barré) qui sont déconseillées.
5.4 Exemple
Soit la partie <body> d’un code HTML ci-dessous (coté gauche) qui donne l’affichage ci-dessous (à droite) :
<h1>Titre de niveau 1</h1>
<h2>Titre de niveau 2</h2>
<h3>Titre de niveau 3</h3>
<h4>Titre de niveau 4</h4>
<h5>Titre de niveau 5</h5>
<h6>Titre de niveau 6</h6>
<font size="3">
<code>code</code><br>
<kbd>clavier</kbd><br>
<var>variable</var><br>
<cite>citation</cite><br>
<dfn>définition</dfn><br>
<samp>exemple</samp><br>
On va insérer <blockquote> un petit bloc en retrait
</blockquote>pour jouer le rôle de citation
<address>adresse</address>
<tt> imprimé ...</tt>
<pre> texte
préformaté ... </pre>
texte normalement de taille 3 :
<big> texte agrandi </big>,
<small>texte réduit</small>
</font>
Page 7
Module : Programmation Web
Chapitre 1 : Langage HTML 4
Enseignant : H. BENKAOUHA
5.5 Insertion des caractères spéciaux
Certains caractères ne s’affichent pas comme les symboles réservés du HTML (le < et le >), les espacements
supplémentaires ou les caractères accentués non reconnus par tous les navigateurs. Les tableaux ci-dessous
donnent les principaux codes HTML associés aux symboles et caractères spéciaux.
Tableau de quelques caractères accentués : ≤ ≤ ≤
Caractère Code textuel Code numérique ≥ ≥ ≥
A â â ≠ ≠ ≠
   & & &
A à à " " "
À À À ´ ´ ´
Ç ç ç © © ©
Ç Ç Ç ® ® ®
É é é ™ ™ ™
É É É Tableau des symboles de monnaies :
Ê ê ê Caractère Code textuel Code numérique
Ê Ê Ê € € €
È è è £ £ £
È È È ¥ ¥ ¥
Ë ë ë Tableau de quelques caractères de l’alphabet grecque :
Î î î
Caractère Code textuel Code numérique
Ï ï ï α α
α
Ô ô ô β β
β
Ö ö ö γ γ
γ
œ œ œ Δ Δ
Δ
Û û û λ λ
λ
Ü ü ü μ μ
μ
U ù ù π π
π
Tableau de quelques symboles : Σ Σ Σ
Caractère Code textuel Code numérique φ φ φ
Espace   Ω Ω Ω
< < < ψ ψ ψ
> > >
6. Les séparateurs
Exemple :
Soit la portion de code HTML suivante :
<p align="left">P1
<hr width="100" size="7" noshade color="#FF0000">
Définit un nouveau paragraphe
<p align="right">P2
<hr align="left" width="80%" color="#000080">
L'alignement ne suit pas celui du paragraphe précédent
<p align="center">P3
<hr width="500" size="10" color="green">
Ni celui de la barre horizontale
Ceci donne l’affichage suivant :
7. Les listes
Page 9
Module : Programmation Web
Chapitre 1 : Langage HTML 4
Enseignant : H. BENKAOUHA
7.1.2 Début de numérotation
Par défaut la numérotation commence à partir de 1, a, A, i ou I. (Selon l’attribut type) Pour changer le numéro
du premier élément on utilise l’attribut start dans la balise <ol>. La valeur de start est un entier "n" et ça
commence de :
− n si la numérotation, est ordinaire.
− La valeur correspondante à n en chiffres romains, si le type est "I" ou "i".
− La nème lettre de l’alphabet, si le type est A ou a.
8. Les liens
Il y a deux types de liens (appelés aussi références) qu’on peut définir sur un texte ou une image : internes et
externes.
8.1 Les liens internes :
Ils désignent un point précis, repéré par une balise, dans le corps même du document. En d’autres termes, ça va
générer un déplacement dans la même page. La réalisation d’un lien interne se fait en deux étapes : la définition de
l’étiquette et la définition de la référence. On fixe un endroit dans le document (la cible).
On définit une étiquette à cet endroit (une ancre) comme suit : <a name="nom_étiquette">...</a>. On peut ne
rien mettre entre <a> et </a>.
On définit le lien (la référence) sur un texte ou une image comme suit : <a href="#nom_étiquette">...</a>.
En cliquant sur ce texte ou cette image, il y aura déplacement dans la page (sur le navigateur) vers l’endroit
étiqueté.
8.2 Les liens externes :
Ils spécifient simplement une autre page HTML, un document multimédia ou l'accès à un service comme le e-
mail ou le FTP. On définit le lien sur un texte ou une image comme suit : <a href="fichier">...</a>. La valeur
de href obéit à la syntaxe de fichier, comme elle peut spécifier un autre service si la valeur de href est :
− "ftp://url" : va vers un le serveur ftp spécifié par l’url.
− "mailto:adr_email?subject=objet_message" : l’application mail est lancée pour l’envoi d’un email à
l’adresse définie par adr_email avec le champ objet contenant la chaîne de caractères objet_message.
On peut omettre l’objet en écrivant "mailto:adr_email".
Remarques :
➢ On peut combiner lien externe avec interne avec href="fichier#etiquette".
➢ D’autres propriétés des liens seront données dans la partie de ce chapitre qui traite des cadres.
Page 11
Module : Programmation Web
Chapitre 1 : Langage HTML 4
Enseignant : H. BENKAOUHA
9.4 Alignement
L’attribut d’alignement de la balise <img> concerne particulièrement le texte qui est près de l’image. Il s’agit de
l’attribut align dont les valeurs sont : "left", "right", "center", "top", "bottom" ou "middle". Le tableau ci-
dessous explique chacune des valeurs :
ALIGN Explication
"left" L’image est mise complètement à gauche par rapport au texte qui est près d’elle.
"right" L’image est mise complètement à droite par rapport au texte qui est près d’elle.
"center" L’image est centrée et le texte qui est près d’elle va l’entourer.
"top" Le texte de la même ligne que l’image s’affiche en haut et laisse un vide en bas de l’image : décalage
par rapport à la ligne suivante.
"bottom" Le texte de la même ligne que l’image s’affiche en bas et laisse un vide en bas de l’image : décalage
par rapport à la ligne précédente.
"middle" Le texte de la même ligne que l’image s’affiche en haut par rapport à l’image et laisse un vide en haut
et en bas de l’image : décalage par rapport aux lignes précédente et suivante.
9.5 Remarque
• Les extensions autorisées des fichiers images sont : .gif .jpg .jpeg et .png.
• En insérant une image, il faut faire attention aux droits d’auteurs. Il faut utiliser ses propres images ou les images
libres de droit. Il faut aussi prendre en considération la liberté individuelle (protection de la vie privée des
personnes) et la propriété des biens.
• Il est conseillé de donner à width et height des valeurs égales à la largeur et la hauteur réelles de l’image.
• Si on veut utiliser une miniature ou un agrandissement de l’image, il vaut mieux la miniaturiser ou
l’agrandir dans un logiciel de traitement d’images et insérer la nouvelle image dans la page.
• De préférence, il faut éviter d’utiliser des images de grande taille (dimension et poids) dans la page Web.
• On peut utiliser une petite image compressée sur la page et faire un lien vers l’image de grande qualité.
Page 13
Module : Programmation Web
Chapitre 1 : Langage HTML 4
Enseignant : H. BENKAOUHA
Ce code donne l’affichage suivant :
Width="450" de Table
Cellpadding="25"
Height="425"
de Table
Border="5"
Cellspacing="10"
Cellpadding="25"
Cellspacing="10"
10.4 Propriétés des cellules
10.4.1 Alignement dans la cellule
On peut fixer l’alignement des éléments insérés à l’intérieur d’une cellule d’un tableau à l’aide des attributs
align et valign de <td> (ou <th>). Le premier définit l’alignement horizontal ("left", "right" ou "center") et le
second l’alignement vertical ("top", "bottom" ou "middle").
Page 15
Module : Programmation Web
Chapitre 1 : Langage HTML 4
Enseignant : H. BENKAOUHA
valeur de l’attribut COLS ou ROWS. Chaque cadre est défini par la balise <Frame> comme on peut avoir au lieu d’un
cadre, une autre décomposition à l’aide d’un autre <Frameset>.
L’espace réservé (hauteur ou largeur) est défini par :
− Le nombre de pixels (entier > 0)
− Un pourcentage (entier > 0 suivi de %)
− * : pour utiliser tout l’espace restant.
Par exemple : <Frameset rows="100,*,150,10%">. Ceci définit une décomposition de la page en 4 lignes. La
première ligne aura une hauteur de 100 pixels, la troisième de 150 pixels, la quatrième de 10% de la hauteur de la
zone d’affichage de la fenêtre du navigateur et la deuxième occupera l’espace restant sur la zone d’affichage du
navigateur.
11.2 Propriétés des Cadres
Le tableau ci-dessous résume brièvement les propriétés de la page des cadres :
Balise Attribut Valeur Description
<Frameset> FrameSpacing entier0 Espacement entre cadres
<Frame> Name libre Nom du cadre
<Frame> SRC fichier Page HTML associée au cadre
<Frame> Target nom d’un Cadre d’ouverture par défaut des liens. Le nom du cadre doit
cadre. exister.
<Frame> Scrolling auto, Définit si les barres de défilements doivent être affichées (yes)
yes ou non (no) ou selon le contenu du cadre (auto)
ou no
<Frame> Noresize Sans valeur Interdire de redimensionner le cadre.
<Frame> MarginHeight entier0 Marges internes du cadre en hauteur (haut et bas).
<Frame> MarginWidth Entier0 Marges internes (à droite et à gauche) du cadre.
11.3 Page de remplacement
Il existe des navigateurs qui ne reconnaissent pas les cadres. La solution est d’insérer juste avant la dernière
</frameset> le corps de la page qui s’affiche au lieu des cadres entre <noframes> et </noframes>.
11.4 Exemple
On veut obtenir des cadres comme le montre le schéma ci-dessous. On a 2 lignes de cadres et la 2ème ligne
composée de 2 colonnes de cadres.
Page 17
Module : Programmation Web
Chapitre 1 : Langage HTML 4
Enseignant : H. BENKAOUHA
12.1.2 L’action
Si les données du formulaire doivent être envoyées au serveur pour les traiter, il faut donner le nom de
l’application qui récupérera le formulaire. On utilise l’attribut action dont la valeur obéit à la syntaxe des fichiers.
la même forme :
12.2.4 Les champs <input> fichier
Il s’agit des champs de type : "file". Il permet d’envoyer dans le formulaire un fichier à partir de la machine
utilisateur vers le serveur. Il affiche une zone textuelle et un bouton de parcours. On peut rajouter les attributs
suivants :
− size : Comme pour le champs "text", elle définit la taille de la zone textuelle en nombre de caractères.
− accept : Permet de définir un filtre. C’est à dire le type de fichier autorisé.
Page 19
Module : Programmation Web
Chapitre 1 : Langage HTML 4
Enseignant : H. BENKAOUHA
12.3 Formulaires (Complément) :
Il existe d’autres attributs et balises formulaires permettant une facilité d’utilisation et une meilleure mise en
forme. Par exemple, l’attribut tabindex peut être rajouté à toute balise d’un élément du formulaire. Sa valeur est un
entier positif. Il définit l’ordre de sélection de cet élément lorsque la touche TABULATION du clavier est utilisée
pour parcourir le formulaire.
Par contre, les balises <fieldset> et <legend> permettent une meilleure présentation du formulaire :
− <fieldset> et </fieldset> : permet de créer des blocs à l’intérieur du même formulaire.
− <legend> et </legend> : Pour définir le titre du bloc.