Cours HTML
Cours HTML
STI
Sciences Info
2025-2026
On distingue une balise ouvrante ( <title> ) et une balise fermante ( </title> ) qui indique que le titre se termine. Cela
signifie pour l'ordinateur que tout ce qui n'est pas entre ces deux balises… n'est pas un titre.
<img />
Les attributs
Les attributs sont un peu les options des balises. Ils viennent les compléter pour donner des informations
supplémentaires.
L'attribut se place après le nom de la balise ouvrante et a le plus souvent une valeur, comme ceci :
<balise attribut="valeur">
À quoi cela sert-il ? Prenons la balise <img /> que nous venons de voir. Seule, elle ne sert pas à grand chose. On pourrait
rajouter un attribut qui indique le nom de l'image à afficher :
<img src="[Link]" />
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Titre</title>
</head>
<body>
</body>
</html>
Sciences Info
2025-2026
Insérer un commentaire : Un commentaire est une balise HTML avec une forme
bien spéciale :
Le doctype : Elle est indispensable car c'est elle qui indique qu'il s'agit bien d'une page web HTML.
Ce n'est pas vraiment une balise comme les autres (elle commence par un point d'exclamation), vous pouvez considérer que
c'est un peu l'exception qui confirme la règle.
La balise <html> : C'est la balise principale du code. Elle englobe tout le contenu de votre page. Comme vous
pouvez le voir, la balise fermante </html> se trouve tout à la fin du code !
L'en-tête <head> et le corps <body> : Une page web est constituée de deux parties :
• L'en-tête <head> : cette section donne quelques informations générales sur la page comme son titre, l'encodage
(pour la gestion des caractères spéciaux), etc. Cette section est généralement assez courte. Les informations que
contient l'en-tête ne sont pas affichées sur la page, ce sont simplement des informations générales à destination de
l'ordinateur. Elles sont cependant très importantes !
• Le corps <body> : c'est là que se trouve la partie principale de la page. Tout ce que nous écrirons ici sera affiché à
l'écran. C'est à l'intérieur du corps que nous écrirons la majeure partie de notre code.
Sciences Info
2025-2026
La balise de liaison <link>
Définit la relation entre le document actuel et une ressource externe.
<script>
alert("Bonjour") ;
</script>
Sciences Info
2025-2026
Organiser le texte et le média
Les paragraphes <p>
La plupart du temps, lorsqu'on écrit du texte dans une page web, on le fait à l'intérieur de paragraphes. Le langage HTML
propose justement la balise <p> pour délimiter les paragraphes.
Les listes
Les listes nous permettent souvent de mieux structurer notre texte et d'ordonner nos informations.
Nous allons découvrir ici deux types de listes :
• Les listes non ordonnées ou listes à puces ;
• Les listes ordonnées ou listes numérotées ou encore énumérations.
<ul>
<li> Football</li>
<li> Handball</li>
<li> Volleyball</li>
</ul>
Sciences Info
2025-2026
<ol>
<li>Je me lève.</li>
<li>Je prend mon petit déjeuner.</li>
<li>Je vais au lycée.</li>
</ol>
Sciences Info
2025-2026
L’attribut target
<a href="[Link]" target="pr2">Aller vers ma page</a>
L’attribut target indique où le lien va être ouvert, elle peut prendre les valeurs suivantes :
• Un nom d’une iframe, comme l’exemple ci-dessus.
• _self : le contexte de navigation actuel c’est-à-dire la page où se trouve le lien.
• _blank : une nouvelle page ou onglet.
• _parent : le contexte de navigation parent c’est-à-dire dans la page parent.
• _top : le contexte de navigation le plus haut c’est-à-dire dans la page du parent plus haut.
Ensuite, il suffit de créer un lien comme d'habitude, mais cette fois l'attribut href contiendra un dièse (#) suivi du nom de
l'ancre.
<a href="#mon_ancre">Aller vers l'ancre</a>
<p>Voici une photo que j'ai prise lors de mes dernières vacances
: <br>
<img src="images/[Link]" alt="Photo de montagne" />
</p>
Sciences Info
2025-2026
Les figures <figure> et <figcaption>
<figure> spécifie un conteneur autonome qui peut contenir un élément qui est généralement une image.
<figcaption> définit une légende pour cet élément.
<figure>
<img src="images/[Link]" alt="Photo de montagne" />
<figcaption>
Montagne
</figcaption>
</figure>
Parfois, il est indispensable de donner plusieurs formats du vidéo ou de l’audio pour que le navigateur ou l’utilisateur
choisit laquelle des formats est adéquate pour lui. Donc, dans ce cas on a recours à la balise <source> pour avoir plusieurs
sources du même média. La balise <source> contient les attributs suivants :
• src : pour spécifier le fichier source de vidéo ou de l’audio (obligatoire).
• type : indique le type de la ressource (optionnel).
• media : indique une requête media (hors programme). Elle mentionné seulement avec la balise
<picture> (hors programme aussi).
<video controls>
<source src="media/cours1.mp4" type="video/mp4"/>
<source src="media/[Link]" type="video/webm"/>
</video>
<audio controls>
<source src="media/synphonie9.mp3" type="audio/mp3"/>
Sciences Info
2025-2026
On peut ajouter des autres attributs soit au vidéo ou à l’audio comme :
• autoplay : indique que le média doit automatiquement être lancée. Le vidéo
• muted : le son est coupé. "media/cours1.mp4"
apparait sur le navigateur avec
ces contrôles, il va être lancé
<video src="media/cours1.mp4" controls autoplay muted></video> automatiquement avec le son
coupé.
Citation <cite>
Utilisé pour mentionner le titre d’un œuvre (livre, film, chanson, …)
Adresse <address>
Utilisé pour mentionner l’adresse physique ou numérique.
Sciences Info
2025-2026
Divulgation des détails <details> et <summary>
La balise <details> sert à révéler ou cacher une information (texte, table, image, …) lors du clic sur un élément
contenu dans la balise <summary>. Si l’attribut open est présent, l’information à révéler est visible
initialement.
<details> A
<summary>Les détails ici</summary>
Dans cette zone, vous verrez toutes les détails.</details>
<details open>
<summary>Les détails ici</summary> B
Dans cette zone, vous verrez toutes les détails.</details>
open absent ➔ A est l’état initial || open présent ➔ B est l’état initial || par un clic, A mène vers B et B mène vers A
<form oninput="[Link]=parseInt([Link])+parseInt([Link])">
<input type="number" name="a"/> +
<input type="number" name="b"/> =
<output name="result"></output>
</form>
Les conteneurs
Cadre intégré <iframe>
Utilisé pour intégrer une page HTML dans une autre. Une page HTML qui contient une cadre <iframe> est considéré
comme contexte de navigation parent pour ce cadre. Les attributs nécessaires pour cette balise sont :
• src : l’adresse de la page HTML qui remplira ce cadre (peut être une URL).
• name : un nom pour la cadre qui va servir après comme target pour les éléments <a> ou <form>.
Sciences Info
2025-2026
Les balises universelles <span> et <div>
Il arrivera parfois que vous ayez besoin d'appliquer une class (ou un id) à certains mots qui, à l'origine, ne sont pas
entourés par des balises. En effet, le problème de class, c'est qu'il s'agit d'un attribut. Vous ne pouvez donc en mettre que sur
une balise. Si, par exemple, je veux modifier uniquement « bienvenue » dans le paragraphe suivant :
<p>Bonjour et bienvenue sur mon site !</p>
Cela serait facile à faire s'il y avait une balise autour de « bienvenue ». Par chance, on a inventé… la balise <span>.
En fait, on a inventé deux balises dites universelles, qui n'ont aucune signification particulière. Il y a une différence
minime (mais significative !) entre ces deux balises :
• <span> </span> : c'est une balise de type inline, c'est-à-dire une balise que l'on place au sein d'un paragraphe de
texte, pour sélectionner certains mots uniquement.
• <div> </div> : c'est une balise de type block, qui entoure un bloc de texte. Les balises <p>, <h1>, etc. sont de la même
famille. Ces balises ont quelque chose en commun : elles créent un nouveau « bloc » dans la page et provoquent
donc obligatoirement un retour à la ligne.
Sciences Info
2025-2026
Les tableaux
Pour créer des tableaux dans notre page HTML, on a recouru aux balises suivantes :
• <table> : permet de définir un tableau (obligatoire).
• <caption> : permet de définir une légende (titre) pour le tableau. <table>
• <thead> : délimite l’entête du tableau. <caption>Front-end web developer course
• <tbody> : délimite le corps du tableau. 2021</caption>
• <tfoot> : délimite le pied du tableau. <thead>
<tr> <th>Person</th>
• <tr> : définit une ligne dans le tableau (obligatoire). <th>Most interest in</th>
• <th> : définit une cellule d’entête (ou spécial) dans le tableau. <th>Age</th> </tr>
• <td> : définit une cellule dans le tableau (obligatoire). </thead>
<tbody>
<tr> <th>Chris</th>
<td>HTML tables</td>
<td>22</td> </tr>
<tr> <th>Dennis</th>
<td>Web accessibility</td>
<td>45</td> </tr>
<tr> <th>Sarah</th>
<td>JavaScript frameworks</td>
<td>29</td> </tr>
<tr> <th>Karen</th>
<td>Web performance</td>
<td>36</td> </tr>
</tbody>
<tfoot>
<tr> <th colspan="2">Average age</th>
• Les balises ci-dessous donnent une structure au tableau. Pour <td>33</td>
une bonne mise en forme, le CSS est indispensable. </tr>
</tfoot>
• L’attribut colspan sert à fusionner plusieurs colonnes dans </table>
une seule (ici 2).
• Il existe aussi l’attribut rowspan qui sert à fusionner plusieurs
lignes dans une seule.
Sciences Info
2025-2026
Les évènements
Les évènements permettent d’effectuer une action à des moments bien précis, cette action peut être :
• Un code HTML comme onfocus="[Link]=[Link]+[Link]"
La différence entre oninput et onchange est que oninput se déclenche directement au moment où la valeur de
l’élément change alors que onchange ne se déclenche pas immédiatement lorsque la valeur de l’élément change
mais attend que cet élément perde le focus pour se déclencher, autrement : onchange = oninput and onblur
Sciences Info
2025-2026
event : mot clé passé en [Link] : fait référence à la touche [Link] : fait référence au code ASCII
paramètre, fait référence à la appuyée (si touche R appuyée, de la touche appuyée (si touche R
touche appuyée [Link] donne KeyR) appuyée, [Link] donne 82
Sciences Info
2025-2026
Les éléments de formulaire
Ouvrir un formulaire <form>
La balise <form> sert comme conteneur dee éléments de formulaire. Les attributs possibles pour cette balise sont :
• name : affecte un nom au balise.
• action : détermine l’emplacement (local ou URL) du fichier (généralement de type PHP) qui va traiter le formulaire
après sa validation.
• method : indique par quel moyen les données de formulaire seront envoyées. Il existe deux méthodes :
o "get" : c'est une méthode en général assez peu adaptée car elle est limitée à 255 caractères. Les
informations seront envoyées dans l'adresse URL de la page (http ...).
o "post" : c'est la méthode la plus utilisée car elle permet d'envoyer un grand nombre d'informations.
Cette méthode est plus sécurisée car les données saisies dans le formulaire ne transitent pas par la barre
d'adresse.
• target : indique où le fichier d’action va être ouvert, elle peut prendre les valeurs suivantes :
• Un nom d’une iframe, comme l’exemple ci-dessus.
• _self : le contexte de navigation actuel c’est-à-dire la page où se trouve le lien.
• _blank : une nouvelle page ou onglet.
• _parent : le contexte de navigation parent c’est-à-dire dans la page parent.
• _top : le contexte de navigation le plus haut c’est-à-dire dans la page du parent plus haut.
Libellé <label>
La balise <label> permet de définir un libellé pour un élément de formulaire.
Sciences Info
2025-2026
<form name="f1">
<p><label>Nom :</label>
<input type="text" name="nm" id="nm" placeholder="Taper le nom" /></p>
<p><label>Prénom :</label>
<input type="text" name="pr" id="pr" disabled/></p>
<p><p><label>Mot de passe :</label>
<input type="password" value="hello"/></p>
</form>
Sciences Info
2025-2026
Champs de saisie numériques number et range
Un champ de saisie de type number ou range permet de saisir des nombres :
• number : pour saisir un nombre (entier ou décimal).
• range : pour saisir un nombre entier à l’aide d’un curseur à déplacer entre deux bornes.
Les attributs possibles sur ces champs de saisie sont :
• name : nom de l’élément.
• value : valeur de l’élément.
• readonly : l’élément est accessible en lecture seulement. On ne peut changer sa valeur.
• required : le remplissage de cet élément est obligatoire. Interdit de le laisser vide.
• disabled : désactiver l’élément, devient inaccessible et inchangeable.
• min : une valeur minimale du nombre à saisir.
• max : une valeur maximale du nombre à saisir.
<form name="f1">
<p><label>Age :</label>
<input type="number" name="ag" id="ag" min="10" max="100" /></p>
<p><label>Niveau :</label>
<input type="range" name="nv" id="nv" min="1" max="10" value="8"/></p>
</form>
<form name="f1">
<p><label>Date de naissance :</label>
<input type="date" name="dt" id="dt" min="2002-01-01"/></p>
<p><label>Rendez-vous :</label>
<input type="time" name="tm" id="tm" min="08:00" max="12:00"
value="09:30"/></p>
</form>
Sciences Info
2025-2026
<form name="f1">
<p><label>Genre :</label>
<input type="radio" name="gr" value="H" checked/>Homme
<input type="radio" name="gr" value="F"/>Femme </p>
<p><label>Connaissance :</label>
<input type="checkbox" name="ch1" value="HTML" checked/>HTML
<input type="checkbox" name="ch2" value="CSS" checked/>CSS
<input type="checkbox" name="ch3" value="SQL"/>SQL
</p>
</form>
Pour une famille de boutons radio (même name), on Pour les boutons checkbox, on envoie au serveur (pour le
envoie au serveur (pour le PHP) le couple (name : value) PHP) pour chaque bouton son propre couple (name :
où le name est le nom commun des boutons et le value checked) où le name est le nom du bouton et checked est une
est la valeur du bouton coché. valeur booléenne qui indique si ce bouton est coché ou non.
Dans l’exemple le formulaire soumet au serveur le Dans l’exemple le formulaire soumet au serveur les couples
couple ("gr" = "H"). ("ch1" = "true") ("ch2" = "true") ("ch3" = "false")
Sciences Info
2025-2026
<form name="f1">
<p><label>Nom&Prénom :</label>
<input type="text" name="np" id="np"/></p>
<p><label>Date Naissance :</label>
<input type="date" name="dn" name="dn"/></p>
<p><input type="reset" value="Annuler"/>
<input type="submit" value="Valider"/></p>
</form>
<form name="f1">
<p><label>Remarques :</label>
<textarea name="rq" id="rq" cols="30" rows="4"
maxlength="100"></textarea></p>
</form>
<form name="f1">
<p><label>Niveau :</label>
<select name="niv" id="niv">
<option value="niv1">1ère année</option>
<option value="niv2">2ème année</option>
<option value="niv3">3ème année</option>
<option value="niv4" selected>4ème année</option>
</select></p> Lycée Technique Mednine
</form>
Inform@tique Prof : ABDELKABIR Khaled
STI
Sciences Info
2025-2026
<form name="f1">
<p><label>Niveau :</label>
<input name="niv" id="niv" list="maliste"/>
<datalist id="maliste" >
<option value="niv1">1ère année</option>
<option value="niv2">2ème année</option>
<option value="niv3">3ème année</option>
<option value="niv4">4ème année</option>
<datalist></p>
</form>
<form name="f1">
<p><label>Niveau :</label>
<input name="niv" id="niv" list="maliste"/>
<datalist id="maliste" >
<option value="niv1">
<option value="niv2">
<option value="niv3">
<option value="niv4">
<datalist></p>
</form>
Sciences Info
2025-2026
Les éléments de structuration
Les balises suivantes servent à structurer la page Web en le décomposant en des parties dont chacune joue un
rôle spécifique. NOTER BIEN que la charge principale de structuration est supportée par le CSS qui aura la tâche de placer
chaque partie dans une zone spécifique.
Entête <header>
Généralement c’est la zone en haut de la page qui contient un logo, slogan ou bannière de site. Les <section> aussi
peuvent avoir des <header>.
Pied <footer>
Généralement c’est la zone en bas de la page qui contient les liens de contact, le nom de l'auteur ou les mentions
légales. Les <section> aussi peuvent avoir des <footer>.
Navigation <nav>
Regroupe tous les principaux liens de navigation du site. Vous y placerez par exemple le menu principal de votre
site.
Section <section>
Regroupe des contenus en fonction de leur thématique. Elle englobe généralement une portion du contenu au centre
de la page.
Côté <aside>
Contient des informations complémentaires au document que l'on visualise. Ces informations sont généralement
placées sur le côté. Il peut y avoir plusieurs blocs <aside> dans la page.
Article <article>
Sert à englober une portion généralement autonome de la page. C'est une partie de la page qui pourrait ainsi être
reprise sur un autre site. C'est le cas par exemple des actualités (articles de journaux ou de blogs).
Sciences Info
2025-2026
Zone Principale <main>
Représente le contenu dominant d'un document. La zone de contenu principale se compose de contenu directement
lié ou développant le thème central d'un document ou la fonctionnalité centrale d'une application.
<header>
<h1>ARCAN</h1>
<h2>Carnets de voyage</h2>
</header>
<nav>
<ul>
<li><a href="#">Accueil</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">CV</a></li>
</ul>
</nav>
<section>
<aside>
<h1>À propos de l'auteur</h1>
<p>C'est moi, Arcan ! Je suis né un 23 novembre 2005.</p>
</aside>
<article>
<h1>Je suis un grand voyageur</h1>
<p>Bla bla bla bla (texte de l'article)</p>
</article>
</section>
<footer>
<p>Copyright Arcan - Tous droits réservés<br>
<a href="#">Me contacter !</a></p>
</footer>
Attribut d’identifient : id
Spécifie un identifiant unique pour un élément. A NE PAS affecter le même identifiant à deux éléments.
Sciences Info
2025-2026
Attribut de titre : title
Spécifie un titre pour cet élément qui sert comme des informations supplémentaires sur cet élément.