Académique Documents
Professionnel Documents
Culture Documents
DÉVELOPPEMENT WEB
HTML : Hyper Text Markup Language
-----------------------
[objet] <balise>
Commentaire : balise particulière
<!-- ceci est un commentaire -->
Hyper Text Markup Language : Concept de balises
▪ Les balises doivent être ouvertes puis fermées récursivement, comme des parenthèses
([...]f(...)g)
▪ Tout ce qui est entouré par deux balises s’appelle élément
▪ Un élément peut éventuellement contenir du texte, liens, balises...
▪ Un texte en clair (non-entouré par une balise) est affiché
▪ Les balises non reconnues seront ignorées (non-affichées)
▪ Les commentaires en HTML sont ignorés par le navigateur
▪ Les commentaires ne sont pas affichés mais restent visibles dans le code source de la page
et ne doit donc jamais contenir une information confidentielle.
Hyper Text Markup Language : Structure d’une
page HTML
▪ Le contenu d’une page HTML est compris entre deux balises html
▪ Une page HTML est composée de deux parties
➢ une entête : head
➢ un corps : body
<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
</html>
Hyper Text Markup Language : Structure d’une
page HTML
II. DOCTYPE
▪ Ce n’est pas une balise
▪ C’est facultatif
▪ C’est une directive permettant de préciser qu’il s’agit d’un document HTML et indiquant
sa version
<html lang="en">
<!-- HTML4.01 transitional -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
Sans la balise <meta name =‘viewport’ Avec la balise <meta name =‘viewport’
Hyper Text Markup Language : Structure d’une
page HTML
IV. La balise <body>
▪ La balise <body> contient toutes les données visible de votre site web
<body>
les informations qui seront affichées dans le navigateur
</body>
➢ texte
➢ tableau
➢ image/vidéo/document
➢ menu
➢ lien
➢ formulaire
➢ liste
➢ ...
Hyper Text Markup Language : Structure d’une
page HTML
IV. La balise <body>
▪ Exemple :
<head>
<meta charset="UTF-8">
<meta name="description" content="Cours HTML">
<meta name="keywords" content="cours, html, ensa">
<meta name="author" content="Bouksim Mohcine">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Cours HTML 2021</title>
</head>
<body>
<p>
Bonjour, ceci est notre 1er page
</p>
</body>
Hyper Text Markup Language : Attributs d’une balise
Attribut
▪ Les éléments vont également pouvoir contenir des attributs qu’on va alors placer au sein de la
balise ouvrante de ceux-ci. Pour certains éléments, les attributs vont être facultatifs tandis que pour
d’autres ils vont être obligatoires pour garantir le bon fonctionnement du code HTML. On leur
associe donc des attributs.
▪ Les attributs vont en effet venir compléter les éléments en les définissant plus précisément ou en
apportant des informations supplémentaires sur le comportement d’un élément.
▪ Certains attributs :
➢ prennent une seule valeur
➢ prennent plusieurs valeurs chacune attribuée a une clé
➢ ne prennent pas de valeur
Hyper Text Markup Language : Attributs d’une balise
<input type=text>
Remarque :
Avec HTML5, la valeur d’un attribut peut être entourée par des guillemets, des
apostrophes comme elle peut ne pas être entourée si elle ne contient pas d’espace.
Hyper Text Markup Language : Attributs d’une balise
Exemple :
▪ style="font-size:60%;" : pour la taille du texte
▪ style="text-align:center;" : pour l’alignement du texte
▪ style="font-family:arial;" : pour le font du texte
▪ ...
<body>
<p style="font-size:250%; text-
align:center;font-
family:arial;color: red;" >
Note 1er page web
</p>
</body>
Hyper Text Markup Language : Organisation du texte
▪ <p>...</p> : pour délimiter un paragraphe
▪ <br> : retour à la ligne
▪ <b>...</b> : pour mettre un texte en gras
▪ <u>...</u> : pour souligner un texte
▪ <i>...</i> : pour mettre un texte en italic
▪ <hr> : pour afficher une ligne horizontal
▪ <strong>...</strong> : pour mettre un texte bien en valeur (le même résultat que <b>)
▪ <em>...</em> : pour mettre un texte un peu en valeur (le même résultat que <i>)
▪ <mark>...</mark> : pour marquer un texte
Hyper Text Markup Language : Organisation du texte
▪ <abbr> : abréviation
▪ <address> : adresse formatée (en italique)
▪ <cite> : citation (en italique)
▪ <code> : élément de code informatique
▪ <pre> : texte pré-formaté
▪ <del> : texte supprimé dans un document (barré)
▪ <ins> : texte insère dans un document (souligné)
▪ <sub> : texte en indice
▪ <sup> : texte en exposant
Hyper Text Markup Language : Organisation du texte
Exemple :
Exemple :
<h1>Titre 1</h1>
<h2>Titre 2</h2>
<h3>Titre 3</h3>
<h4>Titre 4</h4>
<h5>Titre 5</h5>
<h6>Titre 6</h6>
Hyper Text Markup Language : Les listes
▪ Les listes vont nous permettre de lister plusieurs éléments en les groupant sous
un dénominateur commun qu’est la liste en soi. Les navigateurs et les moteurs
de recherche vont donc comprendre qu’il y a une relation entre les différents
éléments de la liste.
▪ Il existe deux grands types de listes en HTML : les listes ordonnées et les listes
non-ordonnées. Il existe également un troisième type de liste un peu particulier
et moins utilisé : les listes de définitions.
Hyper Text Markup Language : Les listes
▪ La syntaxe utilisé :
➢ <ul>...</ul> : une liste non-ordonnée (non-numérotée)
➢ <ol>...</ol> : une liste ordonnée
➢ <li>...</li> : un élément d’une liste
➢ <dl>...</dl> : une liste de description
➢ <dt>...</dt> : un terme d’une liste
➢ <dd>...</dd> : la description d’un terme
Hyper Text Markup Language : Les listes
<ul>
<li>Oujda</li>
<li>Rabat</li>
<li>Casablanca</li>
</ul>
Hyper Text Markup Language : Les listes
<ul>
<li>France</li>
<li>Italie
<ul>
<li>Milan</li>
<li>Turin</li>
</ul>
</li>
<li>Espagne</li>
</ul>
Hyper Text Markup Language : Les listes
<ol>
<li>Oujda</li>
<li>Rabat</li>
<li>Casablanca</li>
</ol>
Hyper Text Markup Language : Les listes
Exemple :
<ol type="a">
<li>Oujda</li>
<li>Rabat</li>
<li>Casablanca</li>
</ol>
Exemple :
<ol start="5">
<li>Barcelone</li>
<li>Marseille</li>
<li>Manchester</li>
</ol>
Exemple :
<figure>
<img src="image.jpg" alt="image personnelle" height="128" width="200">
<figcaption>Mosquée Hassan II</figcaption>
</figure>
Hyper Text Markup Language : Les liens
❑ Les liens en HTML vont nous servir à créer des ponts entre différentes pages d’un
même site ou de sites différents. Le principe d’un lien est le suivant : en cliquant sur une
ancre (qui est la partie visible par l’utilisateur d’un lien et qui peut être un texte comme
une image), nos utilisateurs vont être redirigés vers une page cible.
❑ Il existe deux types principaux de liens hypertextes en HTML :
➢ Les liens internes qui vont servir à naviguer d’une page à l’autre dans un même site ;
➢ Les liens externes qui vont envoyer les utilisateurs vers une page d’un autre site.
Hyper Text Markup Language : Les liens
❑ Quel que soit le type de liens que l’on souhaite créer en HTML (liens internes, des liens
externes, ou des liens vers un autre endroit d’une même page), nous utiliserons toujours
l’élément a qui est l’abréviation de « anchor » ou « ancre » en français accompagné de
son attribut href pour « hypertext reference » ou « référence hypertexte » en
français.
❑ Syntaxe: : <a>...</a> : insérer un lien (interne ou externe)
❑ pour créer un lien vers un autre document local ou distant
➢ <a href="http://monsite.fr"> monsite </a> ou
➢ <a href="page2.html"> Page 2 </a>
❑ href est l’attribut de l’élément <a> le plus important puisqu’il indique la destination du
lien
Hyper Text Markup Language : Les liens
➢ Lien pour télécharger un fichier
<a href="monfichier.zip">Download</a>
<a href="inscription.html">Inscription</a>
❑ Jusqu’à présent, lorsque nous cliquions sur les liens créés en HTML, nous étions
immédiatement redirigés vers la nouvelle page et notre page cible s’ouvrait dans le
même emplacement (le même cadre ou « frame ») que le lien de départ.
❑ Dans certain cas on a besoin d’ouvrir le lien dans une nouvelle fenêtre a la place de la
fenêtre actuelle. On va pouvoir faire cela avec l’attribut target.
❑ L’attribut target va nous permettre de choisir où doit s’ouvrir notre page de
destination. En pratique, nous utiliserons très souvent la valeur _blank qui spécifie que
la nouvelle page doit s’ouvrir dans un nouvel onglet.
❑ L’élément a en HTML ne va pas uniquement être très utile pour créer des liens entre
différentes pages mais va également nous permettre de lier des ressources à nos pages.
❑ Dans ce nouveau chapitre, nous allons étudier deux autres utilisations courantes de cet
élément :
➢ Utiliser l’élément a pour permettre aux utilisateurs de nous envoyer un mail ;
➢ Utiliser l’élément a pour permettre aux utilisateurs de télécharger un fichier.
Hyper Text Markup Language : Les liens
❑ On peut utiliser l’élément a pour transmettre notre adresse mail à nos utilisateurs et
leur permettre de nous envoyer simplement un mail.
❑ Pour permettre l’envoi d’un mail en HTML, on va placer indiquer en valeur de
l’attribut href de notre élément a la valeur mailto : suivie de notre adresse email.
❑ Lorsqu’un visiteur va cliquer sur notre lien, sa messagerie par défaut va
automatiquement s’ouvrir. De plus, le champ destinataire sera automatiquement rempli
avec notre adresse email.
❑ Vous pouvez encore utiliser l’élément a pour permettre à vos visiteurs de télécharger
certains types de fichiers, comme des fichiers PDF ou Word par exemple.
❑ Pour la plupart des fichiers, il va simplement suffire d’indiquer leur adresse (relative ou
leur URL complète) en valeur de l’attribut href. Lorsqu’un utilisateur va cliquer sur le
lien, le fichier lié va s’ouvrir dans le navigateur.
❑ Cette première solution fonctionne mais pour certain fichier, demande à ce que
l’utilisateur fasse lui-même la démarche de télécharger le fichier. On va également
pouvoir « forcer » le téléchargement d’un fichier en ajoutant un attribut download
dans l’élément a tout en indiquant l’adresse du fichier en question en valeur de
l’attribut href..
Hyper Text Markup Language : Les liens
❑ Les tableaux en HTML vont nous permettre de présenter des données de manière organisée et
sous une certaine forme pour les structurer et les rendre compréhensibles pour les navigateurs,
moteurs de recherche et utilisateurs.
❑ Un tableau est un ensemble de lignes et de colonnes. L’intersection entre une ligne et une
colonne est une cellule de tableau.
❑ Pour créer un tableau fonctionnel en HTML, nous allons devoir utiliser à minima 3 éléments :
➢ Un élément table (« tableau » en français) qui va définir le tableau en soi ;
➢ Des éléments tr, pour « table row » ou « ligne de tableau » en français qui vont nous
permettre d’ajouter des lignes dans notre tableau ;
➢ Des éléments td, pour « table data » ou « donnée de tableau » en français qui vont nous
permettre d’ajouter des cellules dans nos lignes et ainsi de créer automatiquement de
nouvelles colonnes.
Hyper Text Markup Language : Les tableaux
❑ L’élément HTML table va représenter le tableau en soi. Cet élément est composé d’une paire
de balises ouvrante <table> et fermante </table> au sein desquelles nous allons placer les
différents autres éléments de notre tableau. Les éléments tr et td sont également représentés
sous la forme d’une paire de balises avec leur contenu entre les balises.
❑ Pour créer un tableau en HTML, il y a une chose que vous devez bien comprendre qui est que
les tableaux HTML vont être créés ligne par ligne.
❑ A chaque fois que nous voudrons ajouter une ligne dans notre tableau, nous utiliserons un
nouvel élément tr.
❑ Nous allons ensuite pouvoir ajouter autant d’éléments td au sein de chacune de nos lignes.
Chaque élément td va représenter une cellule dans le tableau.
Hyper Text Markup Language : Les tableaux
❑ Par exemple, pour créer un tableau en HTML contenant 2 lignes contenant chacune 2 cellules
(c’est-à-dire un tableau de 2 lignes, 2 colonnes), nous utiliserons notre élément table qui va
contenir 2 éléments tr et chaque élément tr contiendra 2 éléments td comme ceci :
<table >
<tr>
<td>BD</td>
<td>16</td>
</tr>
<tr>
<td>WEB</td>
<td>18</td>
</tr>
</table>
Hyper Text Markup Language : Les tableaux
❑ La balise <th> permet d’ajouter les entêtes a notre table et la balise <caption> pour
ajouter un titre a notre tableau. L’attribut border permet d’ajouter une bordure au tableau
<table border="1">
<caption>Moyenne par matière</caption>
<tr>
<th>Matière</th>
<th>Moyenne</th>
</tr>
<tr>
<td>BD</td>
<td>16</td>
</tr>
<tr>
<td>WEB</td>
<td>18</td>
</tr>
</table>
Hyper Text Markup Language : Les tableaux
<table border="1">
<tr>
<th>Nom</th>
<th colspan="2">Mail</th>
</tr>
<tr>
<td>Mohcine BOUKSIM</td>
<td>m.bouksim@ump.ac.ma</td>
<td>mohcine.bouksim@gmail.com</td>
</tr>
</table>
Hyper Text Markup Language : Les tableaux
Exemple : Fusionner des cellules d’un tableau (ligne)
<table border="1">
<tr>
<th>Nom</th>
<td> Mohcine BOUKSIM </td>
</tr>
<tr>
<th rowspan="2">Mail</th>
<td> m.bouksim@ump.ac.ma </td>
</tr>
<tr>
<td> mohcine.bouksim@gmail.com </td>
</tr>
</table>
Hyper Text Markup Language : Les tableaux
❑ Si vous devez créer des tableaux assez longs, il peut être judicieux de commencer à les
structurer en les subdivisant en plusieurs parties.
❑ On peut distinguer trois parties dans un tableau : le haut du tableau contenant généralement la
ligne d’en tête, le corps du tableau contenant les informations de notre tableau en soi et le pied
du tableau servant à calculer des totaux ou à rappeler les informations d’en tête si votre
tableau est vraiment long.
❑ Pour définir chaque partie d’un tableau, nous disposons d’un élément HTML spécifique :
➢ thead pour la tête du tableau ;
➢ tbody pour le corps du tableau ;
➢ tfoot pour le pied du tableau.
Hyper Text Markup Language : Les tableaux
<table border="1">
<thead>
<tr> <th>Mois</th>
<th>Loyer</th> </tr>
</thead>
<tbody>
<tr> <td>January</td>
<td>600$</td> </tr>
<tr> <td>February</td>
<td>700$</td> </tr>
</tbody>
<tfoot>
<tr> <td>Total</td>
<td>1300$</td> </tr>
</tfoot>
</table>
Hyper Text Markup Language : Formulaires
❑ Les formulaires HTML vont permettre à nos visiteurs de nous envoyer des données que nous
allons ensuite pouvoir manipuler et / ou stocker.
❑ Nous allons utiliser les formulaires pour permettre à des utilisateurs de s’inscrire sur notre site
(formulaires d’inscription), de se connecter (formulaire de connexion), de nous envoyer des
messages (formulaire de contact), de laisser des commentaires, etc.
❑ Les formulaires HTML vont pouvoir être composés de champs de texte (cas d’un champ de
formulaire demandant à un utilisateur de renseigner son adresse mail pour se connecter ou
pour s’inscrire sur le site par exemple), de listes d’options (choix d’un pays dans une liste de
pays par exemple), de cases à cocher, etc.
Hyper Text Markup Language : Formulaires
❑ Cependant, vous devez bien comprendre ici qu’on touche avec les formulaires aux limites du
langage HTML. En effet, nous allons tout à fait pouvoir construire nos formulaires en HTML,
mais le HTML ne va nous permettre ni de recueillir les données envoyées par nos visiteurs, ni
de les manipuler, ni de les stocker.
❑ Pour réaliser ces différentes opérations, il faudra utiliser d’autres types de langages comme le
PHP (pour la manipulation des données) et le MySQL (pour le stockage) par exemple qui vont
s’exécuter côté serveur.
Hyper Text Markup Language : Formulaires
❑ Pour créer un formulaire, nous allons utiliser l’élément HTML form. Cet élément form va avoir
besoin de deux attributs pour fonctionner normalement : les attributs method et action.
❑ L’attribut méthode va indiquer comment doivent être envoyées les données saisies par l’utilisateur.
Cet attribut peut prendre deux valeurs : get et post.
❑ Que signifient ces deux valeurs et laquelle choisir ? Les valeurs get et post vont déterminer la
méthode de transit des données du formulaire. En choisissant get, on indique que les données
doivent transiter via l’URL (sous forme de paramètres) tandis qu’en choisissant la valeur post on
indique qu’on veut envoyer les données du formulaire via transaction post HTTP.
❑ Concrètement, si l’on choisit l’envoi via l’URL (avec la valeur get), nous serons limités dans la
quantité de données pouvant être envoyées et surtout les données vont être envoyées en clair.
Evitez donc absolument d’utiliser cette méthode si vous demandez des mots de passe ou toute
information sensible dans votre formulaire.
Hyper Text Markup Language : Formulaires
Déclaration d’un formulaire :
▪ Exemple
<label for="nom">Nom :</label> <input type="text" name="nom" id="nom">
Hyper Text Markup Language : Formulaires
I. Zones de saisie
▪ Cases à cocher
<input type="checkbox" name="nom du choix" [checked]>
▪ Boutons radios
<input type="radio" name="nom du choix" [checked]>
▪ Listes déroulantes
<select name="liste">
<option value="valeur1" [selected]>valeur1</option>
...
<option value="valeurN">valeurN</option>
</select>
Hyper Text Markup Language : Formulaires
</optgroup>
</select>
Hyper Text Markup Language : Formulaires
<button type="button">Enregistrer</button>
<button type="reset">Enregistrer</button>
<button type="submit">Enregistrer</button>
Hyper Text Markup Language : Formulaires
<form method="post" action="traitement.php">
<fieldset><!-- Ajout un cadre -->
<legend>Nom complet</legend> <!-- partie nom prenom -->
<label for="nom">nom :</label>
<input type="text" id="nom"><br>
<label for="prenom">prenom :</label>
<input type="text" id="prenom"><br>
<label for="Email">Email :</label>
<input type="email" id="Email">
</fieldset>
<fieldset>
<legend>Ville</legend> <!-- partie sexe -->
<input type="radio" name="Casablanca" value="Casablanca">
<label for="Casablanca"> Casablanca </label><br>
<input type="radio" name="Oujda" value="Oujda">
<label for="Oujda"> Oujda </label><br>
<input type="radio" name="Rabat" value="Rabat">
<label for="Rabat"> Rabat </label>
</fieldset>
</form>
Hyper Text Markup Language : Formulaires
Hyper Text Markup Language : Audio
❑ Il existe différents formats de fichiers audio.
❑ Jusqu’à très récemment, toutefois, l’insertion de fichiers audio était beaucoup plus
complexe que l’insertion d’images pour la raison qu’aucun format de fichier audio n’était
universellement reconnu : chaque navigateur possédait sa liste de formats audio qu’il était
capable de lire.
❑ La raison ici était une question de brevets déposés sur des éléments servant à constituer les
différents formats audio ou sur les formats audio en soi, comme le brevet sur le MP3
effectif jusqu’en 2017. Ainsi, les navigateurs étaient soit obligés de posséder des licences
soit de payer des royalties pour pouvoir utiliser tel ou tel format audio.
❑ La situation s’est récemment beaucoup améliorée sur ce point-là et aujourd’hui certains
formats audio sont bien reconnus par la plupart des navigateurs.
Hyper Text Markup Language : Audio
▪ Pour Insérer un élément audio
<audio src="audio.mp3" controls ></audio>
▪ Ici, le navigateur va s’arrêter dès qu’il va rencontrer un format audio qu’il sait
lire et ignorer les autres formats fournis en dessous. Cette technique permet
de pouvoir lire un fichier audio sur (quasiment) tous les navigateurs.
Hyper Text Markup Language : Audio
▪ Attributs (les mêmes pour les audios et les vidéos):
➢ autoplay : L’attribut autoplay va nous permettre de lancer
automatiquement la lecture du fichier audio dès qu’il sera chargé. Il suffit
de le renseigner (même sans valeur explicite) pour que le fichier audio se
lance automatiquement. Notez que certains navigateurs (dont Chrome)
peuvent bloquer cet attribut car celui-ci est jugé mauvais pour vos
visiteurs.
➢ Controls: Si l'attribut est présent, le navigateur affichera des contrôles
pour que l'utilisateur puisse gérer la lecture, le volume, et le déplacement
du curseur de lecture.
Hyper Text Markup Language : Audio
▪ Attributs :
➢ Loop: Attribut booléen. S'il est renseigné, la lecture du fichier se fera en
boucle.
➢ Muted: Attribut booléen, indiquant si le son de l'élément audio est
initialement coupé. Sa valeur par défaut est false.
➢ src: L'URL du fichier audio à intégrer.
▪ Exemple :
<video controls>
<source src="video.mp4" type="video/mp4">
<source src="video.ogg" type="video/ogg">
oups, votre navigateur ne supporte pas le HTML5 video
</video>
Hyper Text Markup Language : Vidéo
▪ Pour les attributs, on garde les même attributs déjà vue pour les audios, on y
joute l’attribut :
➢ L’attribut poster va nous permettre de renseigner l’adresse d’une image
qui devra être utilisée comme image d’illustration de fond de la vidéo
avant que celle-ci ne soit chargée et lancée.
Hyper Text Markup Language : Div & Span
❑ Les éléments HTML div et span sont très spéciaux puisque ce sont deux
éléments HTML qui ne possèdent aucune valeur sémantique, c’est-à-dire
qu’ils ne servent pas à préciser la nature d’un contenu.
❑ Ces deux éléments sont en effet des conteneurs génériques qui ont été créés
pour nous permettre d’ordonner nos pages plus simplement ensuite en CSS.
❑ Les éléments div et span ne possèdent aucune valeur sémantique
❑ Les éléments HTML div et span ont été créés principalement pour
simplifier la mise en page de nos pages HTML en CSS c’est-à-dire pour
simplifier l’application de certains styles CSS.
Hyper Text Markup Language : Div
❑ Nous allons utiliser l’élément div comme conteneur pour différents
éléments afin de pouvoir ensuite facilement appliquer les mêmes styles CSS
à tous les éléments contenus dans notre div par héritage ou pour les mettre
en forme en appliquant un style spécifique au div
❑ Ici, le terme de « conteneur » est l’équivalent du terme « parent » : nous
allons simplement placer nos différents éléments à l’intérieur de nos balises
<div> et </div> puis appliquer les styles CSS directement au div.
Hyper Text Markup Language : Div
<head>
<style>
div{
color: red;}
</style>
</head>
<body>
<div>
<p>
lorem ipsum dolor sit amet, consectetur adipisicing elit.
</p>
<p>
Accusamus, aliquam, atque, autem beatae blanditiis eius.
</p>
</div>
</body>
Hyper Text Markup Language : Span
❑ L’élément span va lui servir de conteneur à un autre niveau : il va servir de
conteneur interne à un élément plutôt que de conteneur pour plusieurs
éléments.
❑ On va par exemple pouvoir placer une certaine partie du texte d’un titre ou
d’un paragraphe dans un élément span pour ensuite pouvoir lui appliquer un
style CSS particulier, chose qu’il nous était impossible de faire jusqu’à
présent.
Hyper Text Markup Language : Span
<head>
<style>
span{
color: red;}
</style>
</head>
<body>
<div>
<p>
lorem ipsum <span>dolor</span> sit amet, consectetur adipisicing
elit.
</p>
<p>
Accusamus, aliquam, atque, autem beatae blanditiis eius.
</p>
</div>
</body>