PROGRAMMATION WEB1
PROGRAMMATION WEB1
I. TITRE
Intitulé : PROGRAMMATION WEB
Titulaire : Cédric KALENGA LUBANGE
Licencié en Sciences Informatiques, Option Conception des Systèmes
d’Information
Année Académique : 2021 – 2022.
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
OBJECTIF GENERAL
OBJECTIFS SPÉCIFIQUES
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | II
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
Page |1
Par contre, l'étudiant en sciences informatiques que vous êtes doit connaître
les bases du fonctionnement d'un site web. Où se trouve l'application qui génère tout
ce qu'affiche le navigateur ? Et le navigateur lui-même, comment fait-il ? Quelles sont
les technologies mises en œuvre pour réaliser ce genre d'application ? Comment
combiner toutes ces technologies ? Voilà autant de questions auxquelles vous devez
pouvoir répondre.
Le Web est la notion centrale de ce cours et le mot le plus cité dans ces notes,
raison pour laquelle il est important de commencer par le définir avant d'aborder des
notions plus avancées.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
Page |2
La représentation du Web comme une toile vient des hyperliens qui lient les
pages web entre elles pour former ainsi un gigantesque réseau semblable à la toile
d'araignée.
Le Web est l'application d'Internet la plus populaire. Le Web a été inventé des
années après Internet, mais c'est le Web qui a favorisé l'utilisation d'Internet par le
grand public. Depuis, le Web est fréquemment confondu avec Internet dans le langage
vulgaire. Cependant, il faut toujours se rappeler qu'Internet représente un réseau
informatique, alors que le Web est une application qui fonctionne sur ce réseau, aux
côtés d'autres applications telles que la messagerie électronique, la messagerie
instantanée, etc.
Une ressource web est une entité informatique (fichier, dossier, boîte email)
accessible indépendamment d'autres ressources. Une ressource est dite locale si elle est
présente sur l'ordinateur de l'utilisateur, par opposition à une ressource distante (ou en
ligne, online), accessible à travers un réseau. Une ressource est dite en accès public si elle
est librement accessible depuis Internet.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
Page |3
• Scheme : https
• Authority : example.org
• Path : test/test1
• Query : search=test-question
• Fragment : part2
1) http ou https :
2) www. :
Le www. est de plus en plus rare, mais est toujours usité. Acronyme de
World Wide Web, il n’est pas rigoureusement nécessaire de l’inclure à son
adresse internet lorsqu’on crée son site. Cependant, si une adresse internet
est “enregistrée” avec un www., vous devez obligatoirement l’écrire lors
de votre recherche. Toutefois il est relativement aisé, via l’interface de
l’hébergeur ou depuis le fichier htaccess de votre site, de rediriger
l’adresse https://www.ispkamina.org vers l’adresse https://ispkamina.org,
ou l’inverse. Il faut en tout cas privilégier une adresse unique, avec ou sans
www (et rediriger l’autre sur cette adresse) pour ne conserver qu’une
version d’url sur le site, sans quoi on duplique les pages.
3) Le nom du domaine :
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
Page |4
4) L’extension :
Que ce soit .fr, .com, .net ou .org, entre autres, toute adresse internet se doit
de posséder une extension. Deux types d’extension d’URL existent :
Définitions
Une page web (ou page tout court) est un document destiné à être consulté
avec un navigateur web. Une page web est toujours constituée d'une ressource centrale
(généralement un document HTML) et d'éventuelles ressources liées
automatiquement accessibles (feuilles de style, scripts javascript, images, animations,
fichiers audios, vidéos, ...).
Un site web (ou site tout court) est un ensemble de pages web et d'éventuelles
autres ressources, liées dans une structure cohérente, publiés sous l'autorité d'une
entreprise, une administration, une association, ou un particulier et hébergée sur un
ou plusieurs serveurs web sur Internet.
Une page web statique est une page réalisée uniquement à l’aide du HTML et
du CSS. Son contenu ne peut pas être mis à jour automatiquement : il faut que le
créateur du site (le webmaster) modifie le code source pour y ajouter des nouveautés.
Ce n’est pas très pratique quand on doit mettre à jour la page plusieurs fois dans la
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
Page |5
même journée par exemple ! Un site web dont toutes les pages sont statiques est appelé
site web statique. Les sites statiques sont bien adaptés pour réaliser des vitrines, pour
présenter par exemple son entreprise, mais sans aller plus loin. Ce type de sites se fait
de plus en plus rare aujourd’hui, car dès que l’on rajoute un élément d’interaction
(comme un formulaire de contact ou de connexion), on ne parle plus de site statique
mais de site dynamique.
Une page web conçue entièrement en HTML est totalement statique et n’offre
aucune possibilité d’interagir avec le visiteur (l’internaute). Son contenu
informationnel ne peut se modifier automatiquement sans l’intervention du
Webmaster ; c’est-à-dire que ce dernier doit retirer la page du serveur, mettre à jour
son contenu, avec un éditeur de texte par exemple, et la recharger sur le serveur.
Une page web dont le contenu est régénéré (actualisé) automatiquement est
dite page web dynamique. Un site web ayant de pages dynamiques est appelé site web
dynamique ou application web.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
Page |6
Il existe plusieurs types d'applications web selon les usages qu'on en fait. On
trouvera : les sites web institutionnels, les sites web marchants, les réseaux sociaux, les
forums, les salons de chat, les moteurs de recherche, les sites de Webmail, les blogs,
etc.
Une technologie est toute réalisation humaine faite par application de théories
et connaissances tirées des sciences mathématiques et des sciences naturelles dans les
domaines techniques. Les technologies permettent de résoudre des problèmes et de
réaliser des tâches au quotidien. Par exemple : les technologies de l'information et de
la communication, les appareils ménagers, les nos vêtements, nos bijoux, sont des
technologies.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
Page |7
Le Web est basé sur le protocole HTTP et, comme la majorité des applications
Internet, il est architecturé en Client / Serveur.
Notions
Lorsque vous souhaitez visiter un site web, vous démarrez votre navigateur
préféré et tapez l’adresse dudit site dans la zone réservée à cette fin. À ce niveau, vous
vous êtes déjà probablement demandé ce qu’il se passe réellement pour que la page
recherchée vous parvienne.
Il existe une variante sécurisée du protocole HTTP, appelé HTTPS. HTTPS est
destiné à acheminer les requêtes et les réponses HTTP sur une base sécurisée de telle
manière qu'il est pratiquement impossible pour toute personne malveillante qui
intercepte les données de les exploiter. On l'utilise particulièrement lors du processus
d'identification sur un site, pendant la procédure de paiement en ligne et dans
beaucoup d'autres cas.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
Page |8
Les serveurs HTTP (logiciels) les plus populaires sont Apache HTTP Server
(plus de 60% de sites Web), Internet Information Services (IIS), Sun Java Web Server,
lighttpd, etc.
Fonctionnement du HTTP
HTML 1.0 : c’est la toute première version créée par Tim Berners-Lee,
l’inventeur du Web, en 1991.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
Page |9
HTML 5 : C’est une révolution logique du HTML 4.1 reposant sur les
technologies contemporaines éprouvées du courant Web 2.0. La spécification du
HTML 5 a commencé en 2003 grâce à un groupe de travail indépendant, mais ce n’est
qu’en 2007 que le W3C l’a officialisé en intégrant en son sein le groupe de travail
[Goetter, 2011]. Cette nouvelle version offre une large panoplie de nouveautés
permettant réellement d’entrer de plein pied dans la nouvelle ère du Web. Bien qu’elle
soit encore instable, mal prise en charge par bon nombre de navigateurs,
l’enseignement du HTML proposé dans ce cours sera basé sur cette version !
L’histoire du CSS débute, elle, en 1996 suite à l’idée lancée par William
Tunnicliffe : « il faut séparer le contenu de la mise en page ». Cela apporte de nombreux
avantages : l’apparence du site Web pourra être plus facilement mise à jour, les pages
seront plus rapides à charger, on pourra proposer plusieurs designs aisément, etc.
CSS 2.1 est la version révisée de CSS 2 qui est apparu en 2004 ;
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 10
Une page Web conforme aux standards doit être créée en distinguant au
minimum deux parties :
Les standards HTML et CSS sont aujourd’hui incontournables pour tous ceux
qui veulent concevoir un site Web de manière professionnelle et, tous les étudiants en
sciences informatiques et les professionnels du Web se doivent d’acquérir ou de mettre
à jour leurs connaissances sur ces tech- niques.
Malheureusement pour les clients du serveur web (les navigateurs), ils sont
incapables de comprendre autre chose que du XHTML, du CSS et du Javascript. Seul
le serveur peut communiquer avec l’interpréteur PHP. Avant de retourner la réponse
au client, il faut donc que le serveur demande à PHP d’interpréter le script et de
générer le XHTML correspondant, tout en actualisant les parties dynamiques du
contenu, ce qui sera finalement retourné au client.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 11
Outils
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 12
Les outils les plus utilisés sont : l'éditeur de texte, le navigateur web, les
environnements intégrés de développement web et les environnements serveurs
d'hébergement web.
Éditeur de texte
Un éditeur de texte est logiciel destiné à la création des fichiers textes. Chaque
OS fournit, par défaut, un éditeur, tant son usage est pratiquement indispensable pour
certaines tâches d’administration du système. Un éditeur de texte se distingue d’un
traitement de texte comme MS Word, par le fait qu’il est orienté lignes de code plutôt
que paragraphes, et que les fichiers textes ne contiennent pas de mise en forme (police,
interligne, alignement, ...).
Navigateur web
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 13
réalisation de votre site. Pour cela, vous devez installer un environnement serveur
contenant un serveur HTTP configuré avec PHP. Pour un débutant, la tâche pourra
s’avérer difficile.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 14
II.1. Introduction
Le système des DNS (Domain Name System) est inventé à son tour pour
permettre de nommer les machines plutôt que d’avoir à mémoriser leur adresse IP.
En 1984, le Cern (Organisation européenne pour la recherche nucléaire) adopte le
même type de réseau pour ses échanges internes, puis l’étend et le relie à un laboratoire
américain via Internet. C’est en son sein que l’équipe de Tim Berners-Lee,
chargée de réorganiser l’information, invente un nouveau protocole, simple et
abordable, destiné à la mise en ligne de pages possédant des liens hypertextes. Dès
lors, l’usage devient public et l’on baptise toutes ces pages reliées entre elles, telle une
grande toile mondiale : « World Wide Web ». Il s’agit d’ailleurs du nom du premier
navigateur dont la paternité revient à Tim Berners-Lee.
Les premières versions de HTML voient le jour dans les années 1990, dérivées
de la grande famille des langages SGML (Standard Generalized Markup Language). Il
ne s’agit cependant pas de normes (il n’y a aucune spécification HTML 1.0), car le
langage reste en pleine évolution, principalement motivée par les développements des
navigateurs. Les pages utilisent le protocole HTTP (HyperText Transfer Protocol) pour
transiter sur le réseau et établir le dialogue entre le navigateur et le serveur. L’IETF
(Internet Engineering Task Force) héberge les premiers groupes de travail HTML.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 15
En 1995, le W3C publie HTML 2.0 (sans les ajouts spécifiques à Netscape
Navigator 2) et débute le brouillon HTML 3.0 qui ne débouchera pas directement sur
des implémentations concrètes. JavaScript, langage de programmation créé pour
ajouter de l’interactivité aux pages web, est inventé pour le compte de Netscape par
Brendan Eich. Microsoft s’aperçoit à son tour de l’existence d’Internet, crée la première
version d’Internet Explorer pour Windows (basée sur Mosaic), suivie de près par sa
version 2.0 supportant entre autres une variante de JavaScript nommée JScript, les
frames et les cookies. En 1996, un nouveau standard nommé CSS (Cascading Style
Sheets – feuilles de style en cascade) est officialisé pour régir tout ce qui concerne la
présentation des documents et séparer la forme du contenu. Il mettra un peu moins de
dix années à s’imposer. Internet Explorer passe en version 3.0 en intégrant déjà
quelques fonctionnalités des CSS.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 16
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 17
Le processus est alors assez inhabituel puisque les deux entités, W3C et
WhatWG collaborent sur le projet HTML 5 avec des approches différentes, parfois
quelques accrochages sur la méthode, mais avec un pragmatisme certain grâce à la
constitution très forte des équipes par des membres d’éditeurs de navigateurs.
Entre-temps, Apple a lancé Safari pour Mac (2003) puis Windows (2009) pour
fournir un navigateur de qualité à sa base d’utilisateurs grandissante, en déclinant le
moteur KHTML en WebCore/WebKit. Google, devenu le plus célèbre moteur de
recherche et acteur majeur du Web, développe son propre navigateur Google Chrome
à partir de septembre 2008 sur la base d’un projet libre nommé Chromium, à un rythme
extrêmement soutenu. Google souhaite privilégier la simplicité de navigation et les
performances à l’exécution. Ces navigateurs alternatifs s’approprient petit à petit la
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 18
plus grande part du marché. Mozilla Firefox dans sa version 3.0 devance peu à peu
Internet Explorer dans certaines régions du monde et s’affirme comme une alternative
de prédilection avec de nombreux projets gravitant autour du moteur Gecko.
Les navigateurs mobiles, versions dérivées de leurs grands frères, confèrent aux
smartphones et tablettes tactiles la possibilité d’accéder au Web depuis que les
capacités des réseaux sans fil permettent un débit d’accès acceptable et que la mobilité
entre dans les mœurs. Ils font alors appel à des comportements de navigation
différents découlant des temps de chargement et de la navigabilité au doigt.
Microsoft sort finalement de sa léthargie et reprend un rythme de développement
honorable avec Internet Explorer 7 en 2006 pour l’occasion de la sortie de Windows
Vista.
Internet Explorer 8 pointe le bout de son nez en mars 2009. En juillet, le W3C
annonce le non-renouvellement du groupe de travail XHTML 2.0 pour réunir les forces
autour du groupe de travail HTML et clarifier sa position. Tandis que CSS 3 voit ses
modules complétés progressivement, la spécification HTML 5 est désormais adoptée
formellement comme langage de prédilection pour le Web par le W3C et le WhatWG.
Dès lors, tous les navigateurs s’y mettent et dopent chacune des versions publiées.
Début 2011, Microsoft publie Internet Explorer 9, précédé de peu par Opera 11.
Mozilla décide d’adopter un nouveau modèle de développement basé sur plusieurs
canaux (Aurora, version Bêta, version Finale) pour diffuser les nouveautés plus
rapidement. La numérotation des versions s’emballe à la façon de Chrome.
À la rentrée 2011, Microsoft surprend tout le monde en confirmant son intérêt pour les
standards du web, et sa volonté de les exploiter à un haut niveau via le moteur
d’Internet Explorer 10. Windows 8 est dévoilé avec une nouvelle interface baptisée
Metro, qui interprète directement HTML 5, CSS 3 et JavaScript pour créer des
applications.
Pourquoi HTML 5 ?
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 19
Une balise HTML est un élément que l'on va ajouter au texte de départ pour
dire au navigateur de quelle manière l'afficher. Elle n'est pas affichée telle quelle
dans le navigateur, elle est interprétée par celui-ci. Elle est toujours délimitée par
les signes < et > (ou chevron).
<> </>
Une balise peut en plus comporter de zéro à plusieurs attributs. Les attributs
sont des informations complémentaires qui la caractérisent. Ils se présentent sous
la forme nom attribut="valeur". Attention à ne pas confondre un attribut HTML et
une propriété CSS !
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 20
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Ma Première page HTML</title>
</head>
<body>
</body>
</html>
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 21
NB : Il ne faut pas confondre cet élément dont le contenu ne figure pas dans la
zone de rendu, et la balise <h1> qui relève d’un titre de premier niveau et qui n’est pas
obligatoirement liée au véritable titre du document.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>Ceci est au fait mon tout premier exemple avec le HTML</p>
</body>
</html>
Il existe en HTML deux types d'éléments : les éléments en ligne et les éléments
de type bloc. Chaque balise ouverte doit être fermée, cependant il existe des
exceptions.
• Les éléments en ligne (balises simples) sont destinés à être placés au fil du
texte. Il s'agit par exemple des éléments d'emphase (em), des images (img),
des liens (a)... Normalement, ces éléments n'ont pas vocation à être placés
sur une page, mais à être affichés dans le contexte de l'élément parent qui les encadre.
Un élément en ligne ne peut contenir que des éléments en ligne
ou du texte.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 22
• Les éléments de type bloc (balises doubles) sont ceux qui, par défaut, ont un
rendu visuel « en bloc » sur un navigateur graphique : c'est le cas par
exemple des titres (h1...6), des paragraphes (p), des tableaux (table)... Ils
peuvent être positionnés sur une page. À l'écran, ces éléments sont précédés
et suivis d'un retour à la ligne. Les éléments de type bloc peuvent contenir
des éléments en ligne. Tous les éléments de type bloc, sauf les paragraphes
et les titres, peuvent de plus contenir d'autres éléments de type bloc.
Ce sont des balises qui sont dites "vides", c'est-à-dire qu'elles ne vont contenir
aucune autre balise HTML. Ces balises n'ont pas besoin d'être fermées.
<img src="adresse_de_votre_image">
Mauvaise imbrication
<b><u>Ici les balises ne sont</b> pas correctement imbriquées, c'est une erreur.
</u>
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 23
Les attributs
Les attributs modifient les propriétés des balises HTML. Un élément peut
comporter zéro ou plusieurs attributs, choisis parmi un ensemble spécifique à cet
élément ou un ensemble commun à tous les éléments HTML.
Dans certains cas de figure, ils sont essentiels, tels que l’attribut src pour img, précisant
le nom du fichier image à afficher dans la page.
<img src=photographie.jpg>
Dans d’autres cas, ils peuvent être facultatifs, tels que class ou id, qui
permettent de nommer les éléments pour interagir avec ceux-ci, ou pour leur affecter
des propriétés de style.
<p id=introduction>
Ils font partie intégrante de la balise ouvrante, avec une syntaxe très simple :
• S’il s’agit d’un attribut booléen, la présence seule de l’attribut suffit à lui
donner du sens, quelle que soit sa valeur. Notons dans cette catégorie checked, qui
définit l’état par défaut d’une case à cocher. Sa présence coche la case (par exemple
avec checked, checked=true, checked=1, checked=checked,
checked=icanhascheezburger). Son absence la laisse « vide ».
Les commentaires
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--Ceci est un premier commentaire sur une seule ligne-->
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 24
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--Ceci est un premier commentaire sur une seule ligne-->
<!--
Vous allez comprendre ici que HTML
vous donne
une
possibilité
de
<h1> à </h6>
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 25
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Ceci est un titre de niveau 1</h1>
<h2>Ceci est un titre de niveau 2</h2>
<h3>Ceci est un titre de niveau 3</h3>
<h4>Ceci est un titre de niveau 4</h4>
<h5>Ceci est un titre de niveau 5</h5>
<h6>Ceci est un titre de niveau 6</h6>
</body>
</html>
Bien qu’il ne soit pas invalide de sauter des niveaux (par exemple passer de
<h2> à <h5>), cette pratique est fortement déconseillée par la spécification HTML, car
la conversion vers d’autres types de contenu ou la constitution d’une liste cohérente
de la hiérarchie du document peuvent devenir problématiques.
Le HTML, je vous l’ai dit, sert à différencier d’un point de vue sémantique les
différents objets que l’on peut rencontrer et dont on peut avoir besoin (titre,
paragraphe, espace, image, etc.).
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 26
Pour faire cela, le HTML va utiliser des éléments. Et le moment est arrivé pour
nous d’apprendre à créer des paragraphes, des titres, et à faire des retours à la lignes
en HTML. Pour créer des paragraphes, tout d’abord, on va utiliser l’élément p. On
peut créer autant de paragraphes que l’on souhaite dans une page. Pour chaque
nouveau paragraphe, il faut rouvrir une balise <p>. A chaque nouveau paragraphe, un
retour à la ligne est automatiquement effectué.
Si maintenant vous désirez créer un retour à la ligne à l’intérieur même d’un
paragraphe, il faudra utiliser l’élément br (diminutif de break). Cet élément est
constitué d’une seule balise orpheline, qu’on notera donc <br/>.
Encore une fois, si vous vous demandez l’intérêt de ces éléments, il est avant
tout dans l’optimisation du référencement de votre site. En effet, normalement, vous
devriez avoir ciblé des mots clefs et essayer d’être bien référencé sur ces mots là. Les
balises strong et em vous aident à atteindre ce but, entre autres.
Enfin, l’élément mark est utilisé pour faire ressortir du contenu. Ce contenu ne
sera pas forcément considéré comme important, mais cette balise peut servir dans le
cas de l’affichage de résultats suite à une recherche d’un de vos visiteurs par exemple.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 27
Voilà donc pour les éléments dits de base, il est maintenant tant de s’attaquer
à des éléments relativement plus complexes, et nous allons commencer avec les listes.
Les listes HTML sont prévues pour dresser des énumérations possédant une
valeur sémantique. Les structures disponibles pour une liste ordonnée (liste
numérotée) et non ordonnée (liste à puces) sont constituées par les éléments <ol> et
<ul> au sein desquels chaque élément individuel est un <li>. Elles sont couramment
employées pour la conception de menus de navigation, qui ne sont en réalité que des
énumérations de liens. Lorsqu’il s’agit de rédiger une liste de définitions, l’élément
<dl> peut être utilisé en conjonction avec <dt> et <dd>.
En HTML, les listes vont avoir deux grands intérêts pour nous : on va pouvoir
les utiliser pour créer des menus ou, dans leur forme brute, pour mieux présenter du
contenu pour un blog par exemple. Il existe trois grands types de listes en HTML : les
listes ordonnées, les listes non-ordonnées et un dernier type un peu particulier : les
listes de définition. Nous allons commencer avec les listes ordonnées et non-
ordonnées.La différence entre les listes ordonnées et non-ordonnées est que les listes
ordonnées possèdent un aspect de subordination, d’ordre logique, de classement
tandis que ce n’est pas le cas pour les listes non-ordonnées.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 28
Une liste ordonnée (ordered list en anglais) est équipée de puces numérotées
automatiquement par le navigateur. Le conteneur <ol> est toujours parent de zéro ou
plusieurs éléments de liste <li>.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Aujourd'hui nous allons parler des listes ordonnées</h1>
<ol>
<li>Orange</li>
<li>Mandarine</li>
<li>Citron</li>
</ol>
</body>
</html>
</ol>
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 29
La liste non ordonnée (unordered list en anglais) <ul> partage le podium avec
<ol> bien qu’elle soit plus fréquemment utilisée. Comme son nom l’indique, son
contenu n’est pas spécialement trié et son ordre peut être changé sans altérer
significativement son sens.
<ul>
<li>Orange</li>
<li>Mandarine</li>
<li>Citron</li>
</ul>
Si vous avez bien suivi les précédentes explications, vous savez déjà que <li>
est un élément (list item en anglais) de liste ordonnée <ol> ou non ordonnée <ul>. Il
remplit cette même fonction pour l’élément <menu> (voir du côté des éléments
interactifs).
4. <!DOCTYPE html>
5. <html lang="en">
6. <head>
7. <meta charset="UTF-8">
8. <meta http-equiv="X-UA-Compatible" content="IE=edge">
9. <meta name="viewport" content="width=device-width, initial-
scale=1.0">
10. <title>Document</title>
11. </head>
12. <body>
13. <h1>Aujourd'hui nous allons parler des listes ordonnées</h1>
14. <ol>
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 30
15. <li>Orange</li>
16. <li>Mandarine</li>
17. <li>Citron</li>
18.
19. </ol>
20. </body>
21. </html>
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 31
Comme vous le voyez, si on n’oublie pas d’élément, les listes restent très
simples à utiliser et à manipuler. J’espère que vous comprenez mieux désormais
l’importance de bien indenter son code ! C’est tout pour les listes, n’hésitez pas à vous
entraîner afin d’être certain de bien maitriser tout ce que l’on a vu jusqu’ici car le
prochain chapitre est capital : nous allons apprendre à créer des liens.
Tout d’abord, il faut savoir qu’il existe différents types de liens. Pour l’instant,
nous allons nous concentrer sur les eux types les plus « classiques » : les liens internes
et les liens externes. Quelle différence entre ces deux types de liens ? Un lien interne
est un lien créé entre deux pages d’un même site web tandis qu’un lien externe est un
lien menant d’un site web vers un autre site web. Dans tous les cas, pour créer un lien,
nous allons utiliser l’élément « a » accompagné de son attribut href (pour Hypertext
Reference) qui sert à indiquer la cible (c’est à dire la destination) du lien.
Quel que soit le type de liens créés, la seule chose qui va changer va être ce que
l’on va indiquer en valeur pour l’attribut href. Commençons donc avec les liens
internes. Nous avons trois cas à distinguer :
• 1er cas : La page à partir de laquelle on fait un lien et celle vers laquelle on fait
un lien se trouvent dans le même dossier. Dans ce premier cas, il suffit de
préciser le nom de la page dans l’attribut href.
• 2ème cas : La page vers laquelle on souhaite faire un lien se trouve dans un
sous-dossier. Dans ce cas, il faudra en tenir compte et inclure le nom du sous-
dossier dans la valeur de l’attribut href.
• 3ème cas : La page vers laquelle on veut faire un lien se trouve dans un dossier
parent. Dans ce cas, nous devrons rajouter
« ../ » dans la valeur de l’attribut href.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 32
J’ai donc créé quatre pages en HTML (j’ai simplement écrit la structure
minimale pour chacune d’entre elles afin de les rendre valide). J’ai placé les pages
page1.html et page2.html dans le même dossier, la page page3.html dans un sous-
dossier relativement à ma page page1.html et la page page4.html dans un dossier
parent par rapport à ma page page1.html.
Je vais donc maintenant créer des liens de ma page page1.html vers mes pages
page2.html, page3.html et page4.html grâce à l’élément a et à l’attribut href :
Et voilà, c’est fini ! Si vous ouvrez votre page page1.html, celle-ci doit
maintenant ressembler à cela :
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 33
Lorsque vous ou vos visiteurs cliquerez sur « page 2 », « page 3 » ou « page 4 », vous
serez redirigés vers la page en question. Pour créer des liens externes, maintenant,
vous allez voir que c’est beaucoup plus simple : il suffit d’indiquer l’URL complète de
la page vers laquelle on veut faire un lien en valeur de l’attribut href. En pratique,
pour faire un lien vers la page d’accueil de Wikipédia par exemple, on écrira :
Et voilà, c’est tout pour les liens externes. Simple, non ? À noter qu’il existe
pour les liens internes et externes des attributs facultatifs qui peuvent modifier le
comportement par défaut de ces liens. C’est par exemple le cas de l’attribut target qui
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 34
est selon moi indispensable à connaître. L’attribut target va vous permettre de choisir
si vous voulez que la cible de votre lien s’ouvre dans une nouvelle fenêtre / nouvel
onglet ou pas. Pour que la cible de votre lien s’ouvre dans une nouvelle fenêtre ou un
nouvel onglet, on attribuera la valeur _blank à l’attribut target. Un exemple
immédiatement en image :
Attribut à retenir donc, car celui-ci peut s’avérer très utile dans de nombreux
cas (lorsque vous ne voulez pas que vos visiteurs quittent votre site par exemple).
Notez en revanche que vous ne pouvez pas choisir si le lien va s’ouvrir dans un nouvel
onglet ou dans une nouvelle fenêtre.
Les liens internes et externes sont très certainement les types de liens les plus
courants, mais c’est loin d’être les seuls ! En effet, on peut utiliser les liens pour faire
bien d’autres choses. Dans ce nouveau chapitre, nous allons nous concentrer sur les
liens de type « ancre », les liens pour envoyer un mail et les liens pour télécharger un
fichier. Commençons avec les liens de type ancre. Les liens de type ancre sont des liens
menant à un autre endroit d’une même page web. Ils peuvent être utile dans le cas
d’une page web très longue pour donner à vos visiteurs un accès rapide à une section
en particulier par exemple.
Vous comprendrez qu’il va donc tout d’abord nous falloir rajouter quelques
lignes de textes dans notre page HTML pour pouvoir tester les ancres (sinon, on n’en
verra pas l’effet). Attention, soyez attentif, ça se complique un peu à partir de là ! Pour
créer une ancre, on commence par rajouter un attribut id à une balise ouvrante HTML
à l’endroit où l’on veut envoyer le visiteur. On peut attribuer n’importe quelle valeur
à cet attribut, le mieux étant de choisir une valeur qui fasse sens.
Ensuite, on crée le lien cliquable en soi qui va amener à notre id. Pour cela, on
utilise toujours notre élément a avec son attribut href (on ne réinvente pas la roue à
chaque fois), mais cette fois ci on va devoir placer un dièse avant d’écrire la valeur de
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 35
l’attribut href. La valeur inscrite pour l’attribut href doit être strictement la même que
celle donnée à notre id. Comme rien ne vaut un bon dessin, voici l’illustration en image
:
Faites attention à bien choisir des valeurs différentes pour chaque id sinon
votre lien ne saura pas où ramener ! Pour envoyer un mail, maintenant, on donne tout
simplement une valeur de type « mailto : » à notre attribut href comme ceci :
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 36
Notez que si vous cliquez sur le lien, rien ne devrait se passer (tout au moins,
sur Mac, rien ne se passe) tout simplement car vous possédez déjà le fichier.
Cependant, vos visiteurs pourront tout à fait télécharger votre fichier une fois votre
page hébergée sur serveur. Ça y est, on en a enfin fini (pour le moment tout au moins)
avec les liens ! N’hésitez pas à prendre une petite pause et à revoir cette partie à tête
reposée car c’est vraiment très important et, si vous comprenez la mécanique des liens,
vous n’aurez aucun mal à comprendre le reste.
Les tableaux
Les tableaux en HTML ne servent et ne doivent être utilisés que pour organiser des
données. Pour créer un tableau, il va nous falloir utiliser au minimum trois éléments
: les éléments table, tr et td. L’élément table définit le tableau en soi. A l’intérieur de
cet élément table, on va utiliser l’élément tr (table raw) pour ajouter des lignes à notre
tableau.
Enfin, on utilise l’élément td (table data) pour ajouter des cellules dans nos lignes.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 37
Si l’on insert plusieurs éléments td à l’intérieur d’un élément tr, des colonnes vont se
créer automatiquement à l’intérieur de notre ligne. Voyons un premier exemple
ensemble :
Voilà, nous venons de créer notre premier tableau ! Cependant, celuici ne ressemble
pas vraiment à l’image que vous vous faisiez d’un tableau je suppose… Et c’est normal
: nous ne l’avons pas encore mis en forme !
Tout d’abord, nous allons commencer par ajouter des bordures à notre tableau. Pour
cela, nous allons utiliser les propriété CSS border, et border-collapse. On connaît déjà
la propriété border qui va nous permettre de créer des bordures autour de chaque
cellule de notre tableau. Ensuite, pour « coller » ces différentes bordures entre elles,
nous allons utiliser la propriété border-collapse.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 38
Cette propriété accepte trois valeurs : collapse (les bordures des cellules se collent),
separate (valeur par défaut) et inherit. Cela ressemble déjà beaucoup plus à un tableau
!
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 39
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 40
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 41
Ici, nous avons fusionné les cellules des deux colonnes « Nom » et « Prénom » en une
pour « Dupont Martin » et les cellules de deux lignes pour « 24 ans ».
Les formulaires
• <input> avec les types tel, url, email, search, date, time, datetime,
datetimelocal, month, week, number, range, color ;
• <output> ;
• <keygen> ;
• <meter> ;
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 42
• <progress> ;
• <datalist>.
Tout aussi importants, de nouveaux attributs ont été introduits, applicables à
l’ensemble des contrôles de formulaire ou à certains seulement.
Tableau Récapitulatif des valeurs possibles pour l’attribut type de la balise <input>
Type Rôle HTML
5
text Champ de texte
button Bouton
file Fichier
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 43
<form method="post>
Identifiant : <input type="text" name="login">
Mot de passe : <input type="password" name="mdp">
<input type="submit" value="Valider">
</form>
text
Le type text est le champ de formulaire le plus classique qui soit. Comme son
nom le suggère, il permet la saisie d’un texte (relativement court pour des raisons de
lisibilité, car visuellement le contrôle est monoligne et d’une largeur déterminée).
password
Confrère de text, un champ d’entrée de mot de passe password est un
équivalent dont les caractères sont remplacés visuellement par des astérisques
ou des points.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 44
Son comportement est semblable en tous points à celui d’un champ texte
classique, à l’exception de la désactivation par défaut du copier sur son contenu.
Néanmoins, il est très facile de lire sa valeur en JavaScript ou via un inspecteur DOM,
ce n’est donc pas un champ dont le contenu est sécurisé. À la validation du formulaire,
il est également transmis en clair sur le réseau – hors utilisation d’un protocole de
cryptage avec HTTPS.
tel
Premier parmi la série des nouveaux types inaugurés par HTML 5, tel est une
déclinaison d’un champ texte par défaut indiquant au navigateur que l’on
s’attend à saisir un numéro de téléphone.
Safari Mobile pour iOS reconnaît très bien cette spécificité en affichant un
clavier approprié pour faciliter l’entrée d’une série de chiffres.
Champ de téléphone
url
Dans la même famille, le Working Group HTML en a profité pour prévoir un
champ texte destiné à recevoir une adresse de type URL absolue.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 45
Champ d’adresse
URI/URL
À partir d’Opera 11, ce champ est automatiquement préfixé par http:// à la fin
de son édition, si l’on oublie de préciser le protocole. Il est cependant tout à fait autorisé
d’en indiquer d’autres, tels que ftp:// ou mailto: puisque ces familles de protocoles
correspondent aussi à des URL.
email
Un champ de type email est un autre champ texte spécialisé, destiné à recevoir
une adresse e-mail.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 46
hidden
Un élément <input> de type hidden est un champ caché pour l’utilisateur, mais
dont la valeur est validée avec le formulaire. Il s’agit généralement d’une valeur issue
d’un script exécuté côté serveur (par exemple PHP) ou côté client (JavaScript).
Bien qu’il soit masqué à l’affichage, on peut tout à fait prendre connaissance
de son existence (nom et valeur) en consultant le code source de la page HTML. Ce
n’est donc pas un champ totalement secret, ni totalement fiable puisque sa valeur peut
être modifiée aisément par l’utilisateur en JavaScript ou avec une extension appropriée
intervenant sur le DOM (par exemple Firebug sous Mozilla Firefox). Son contenu doit
toujours être validé côté serveur après la validation du formulaire.
radio
Un bouton radio est un contrôle de formulaire, faisant partie d’un groupe
d’autres boutons radio. Ils possèdent tous le même attribut name en tant que
lien : un seul bouton radio peut être coché parmi leur ensemble, à un moment
donné.
<p>
<input type="radio" name="genre" value="masculin" id="m">
<label for="m">Je suis un homme</label>
<input type="radio" name="genre" value="feminin" id="f">
<label for="f">Je suis une femme</label>
</p>
<p>
Souhaitez-vous recevoir la newsletter ?
<input type="radio" name="newsletter" value="oui" id="newsletter-oui"
checked>
<label for="newsletter-oui">Oui</label>
<input type="radio" name="newsletter" value="non" id="newsletter-non">
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 47
<label for="newsletter-non">Non</label>
</p>
Un ensemble de boutons radio peut disposer de l’un d’entre eux coché par
défaut, en lui adjoignant l’attribut checked. Les formulations associées peuvent
différer, mais il est en général toujours possible d’utiliser <label> pour bien
marquer le texte lié à chacun des choix.
checkbox
Cousines éloignées des boutons radio, les cases à cocher sont des éléments de
formulaire qui ne sont pas peu fières d’être totalement indépendantes les unes
des autres.
<p>
<input type="checkbox" name="anonyme" value="1" id="ano">
<label for="ano">Je souhaite rester anonyme</label>
</p> <p>
<input type="checkbox" name="enquete" value="moutarde-chandelier"
id="hypothese" checked="checked">
<label for="hypothese">Je pense que le colonel Moutarde a utilisé le
chandelier
</label>
</p>
Figure 5–11
Cases à cocher
button
Un bouton classique peut être créé avec un élément <input> de type button. Il
est possible de lui adjoindre un gestionnaire d’événement JavaScript pour déclencher
une action. Ce type de bouton ne valide pas le formulaire.
Bouton quelconque
reset
Un contrôle de type reset est un simple bouton réinitialisant tous les champs
du formulaire à leur état initial.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 48
submit
La variante de bouton de type submit est la plus utile, car elle permet de
valider le formulaire. Bien entendu, il existe des fonctions JavaScript pour produire un
résultat équivalent, mais ce bouton est nativement prévu à cet usage. Il déclenche la
validation complète du formulaire qui le contient, et son envoi à l’adresse spécifiée
dans l’attribut action de ce formulaire.
<form method="post" action="identification.php">
<label for="login">Identifiant :</label>
<input type="email" id="login">
<input type="submit" value="Valider">
</form>
Bouton de validation
Le texte figurant sur ce bouton est défini par son attribut value.
image
Les formulaires ne comprennent pas uniquement des champs texte et des
boutons. Une image cliquable est parfaitement intégrable à l’aide du type
image. En revanche, elle peut couvrir deux types d’usage :
• soit pour la sélection de coordonnées (x,y) sur cette image ;
• soit pour jouer le rôle de « bouton graphique » pour valider le formulaire.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 49
date
Avec le type date, débute une liste de plusieurs contrôles pour l’entrée de
données temporelles. La syntaxe des dates et heures est définie par la RFC 3339.
month
Ce champ permet de sélectionner un mois et une année. Il ne peut s’agir d’une
simple sélection de mois parmi un ensemble de douze choix uniques (de janvier à
décembre), mais bien d’un mois du calendrier relié à une année précise. La valeur texte
est composée de l’année sur quatre chiffres, séparée par un tiret du mois sur deux
chiffres, entre 01 (janvier) et 12 (décembre).
Champ de sélection de
mois sous Chrome
number
Un champ de type number consacre son existence aux valeurs numériques,
éventuellement situées dans un intervalle spécifié par les attributs min et max.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 50
Champ de sélection de
valeur numérique
color
Grâce au type color, l’élément <input> devient un contrôle pour la sélection
d’une couleur, ou plutôt d’un code couleur stocké dans son attribut value. Le
format est sous la forme hexadécimale que l’on retrouve déjà au sein de HTML
et CSS, débutant par un dièse suivi de 6 caractères alphanumériques entre 0 et
9, A et F.
<!-- blanc -->
<input type="color" name="couleur1" value="#FFFFFF">
Attention: les codes couleur HTML (tels que white, lime, chocolate) ne sont pas
autorisés.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 51
Principe général
L’application d’une feuille de style CSS s’effectue lorsque celle-ci est liée au document
par la balise <link>, présente dans la section <head>. Plusieurs feuilles de style peuvent
être chargées de la sorte pour un seul document.
Il est aussi envisageable de déclarer directement des instructions CSS entre les balises
<style> et </style>, situées également dans <head> ou dans une portion du document,
mais cette façon de faire ne facilite pas la maintenance ni la mise en cache.
Dans le fichier de la feuille de style, on retrouve une ou plusieurs déclarations CSS.
Elles comprennent un sélecteur dont le rôle est de cibler les éléments concernés par
chaque déclaration, suivi d’un bloc entre accolades regroupant les propriétés à
appliquer.
Dans ce premier chapitre, nous allons voir ensemble ce que sont les sélecteurs, les
propriétés et les valeurs en CSS. Pour rappel, le CSS sert à modifier l’apparence de nos
pages web en appliquant des styles au contenu en HTML. Un sélecteur, tout d’abord,
va servir à déterminer à quel(s) élément(s) HTML ou à quel type d’éléments on
souhaite appliquer un style particulier. Si l’on souhaite appliquer un style particulier
à tous nos paragraphes, par exemple, on utilisera le sélecteur « p ».
Une propriété va nous servir à modifier le style d’un élément en ciblant un critère bien
particulier comme la taille d’un texte, sa police ou sa couleur par exemple. Une valeur,
enfin, va venir compléter une propriété et va en déterminer le comportement. Pour la
propriété servant à changer la couleur d’un texte par exemple, la valeur va être la
nouvelle couleur à appliquer. Voici ci-dessous une illustration concrète de ce que l’on
vient de dire :
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 52
Dans cet exemple, nous utilisons le sélecteur simple « p », ce qui signifie que nous
souhaitons appliquer un style particulier à tous les paragraphes de nos pages. Nous
utilisons les propriétés « color » (qui sert à modifier la couleur d’un texte) et « font-size
» (pour changer la taille d’un texte). Cela signifie donc que nous travaillerons sur la
couleur et la taille de nos paragraphes. Enfin, nous indiquons que nous voulons que
tous nos paragraphes s’affichent en bleu grâce à la valeur « blue » et que notre texte ait
une taille de 16px avec la valeur « 16px ».
Où écrire le CSS ?
Nous avons trois possibilités pour écrire notre CSS. L’une d’elles est préférable aux
deux autres et nous allons immédiatement voire pourquoi. Nous pouvons écrire le
CSS :
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 53
Deuxième méthode maintenant : écrire du CSS dans la balise ouvrante d’un élément
HTML. Pour faire cela, nous allons devoir utiliser un attribut style et lui affecter en
valeur nos propriétés CSS :
Vous remarquerez que l’on respecte la syntaxe du CSS à l’intérieur de l’attribut style
en utilisant les deux points et les points virgules. Attention cependant : dans notre
premier cas, on utilisait l’élément style tandis que dans le cas présent, style est un
attribut.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 54
Troisième et dernière méthode enfin (la méthode recommandée) : écrire le code CSS
dans un fichier séparé. Pour faire cela, nous allons déjà devoir ouvrir un nouveau
fichier dans notre éditeur de texte et l’enregistrer au format « .css ». Vous pouvez le
nommer « style.css ». Pensez bien à enregistrer ce fichier dans le même dossier que
votre fichier HTML dont vous souhaitez modifier le style, sinon vous risquez d’avoir
des problèmes (nous expliquerons plus tard dans ce cours pourquoi). Une fois que
vous avez fait cela, retournez sur votre page HTML. Nous allons maintenant devoir
lier nos deux fichiers HTML et CSS. On va faire cela à l’aide d’un élément link que
nous allons placer dans l’élément head de cette manière :
L’élément link est représenté sous forme de balise orpheline et doit être accompagné
de ses deux attributs « rel » et « href ». L’attribut rel sert à préciser le style du fichier
lié (dans notre cas c’est une feuille de style, donc « stylesheet » en anglais). L’attribut
href, que vous connaissez déjà, sert à faire le lien en soi. Si notre fichier avait été placé
dans un dossier parent ou dans un sous-dossier par rapport à notre fichier HTML, il
aurait fallu refléter cela dans la valeur de notre attribut href (rappelez vous de la leçon
sur les liens relatifs !). Finalement, nous n’avons plus qu’à écrire notre code CSS dans
le fichier style.css :
Si vous désirez voir le résultat immédiatement et pouvoir travailler avec vos différents
fichiers sur une même page, je vous conseille une nouvelle d’utiliser JsBin.com (ce que
je ferai très souvent dans la suite de ce cours).
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 55
Enchaînons avec les commentaires en CSS. On a déjà vu que l’on pouvait commenter
en HTML. Cela est également possible en CSS. Plus qu’une possibilité, c’est même une
obligation selon moi. En effet, les fichiers CSS deviennent rapidement très long
(beaucoup plus que les fichiers HTML par exemple) donc si vous ne commentez pas
efficacement vous risquez d’être très vite perdu. De plus, si vous distribuez votre code,
je pense que la personne sera contente d’avoir quelques lignes de commentaires pour
l’aider à trouver ce qu’elle cherche au milieu de 2000 lignes de code !
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 56
Ce type de sélecteur doit être préféré tant que possible pour des raisons d’optimisation
et de performance du code. En effet, ils requièrent moins de code et sont donc moins
gourmands en énergie que des sélecteurs plus complexes. Votre page mettra ainsi
moins de temps à charger. Le problème reste qu’on est quand même très limité avec
des sélecteurs simples : comment faire pour appliquer un style différent à deux
éléments de même type, deux paragraphes par exemple ? Ce n’est tout simplement
pas possible. Et c’est pour cela que l’on a créé les attributs class et id.
Ensuite, on retourne sur notre fichier CSS. On va devoir commencer notre déclaration
par un point là où on a utilisé un attribut class et par un dièse si l’on a utilisé l’attribut
id. Après le point ou le dièse, on écrit la valeur de l’attribut en question pour former
notre sélecteur. Enfin, on écrit le code CSS voulu. Voilà ce que ça donne en pratique :
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 57
En revanche, on peut utiliser plusieurs attributs class identiques (c’est à dire ayant la
même valeur) par page. C’est d’ailleurs une des méthodes que nous utiliserons pour
appliquer un même style à différents éléments.
Notez que, dans l’exemple précédent, utiliser deux attributs class n’est pas la meilleure
solution (nous verrons mieux lorsque nous étudierons les sélecteurs avancés). J’ai écrit
cela seulement pour vous montrer que ça fonctionne. Nous voilà déjà un peu moins
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 58
Pour commencer, vous devez bien comprendre que les éléments div et span ne
possèdent aucune valeur sémantique, ce qui va à l’encontre même du rôle du HTML.
Ainsi, vous ne devez les utiliser que lorsque vous n’avez pas d’autre choix. Les
éléments div et span vont nous servir de containers. Nous allons nous en servir pour
entourer des blocs de code et ainsi pouvoir attribuer des styles particuliers à ces blocs.
L’utilisation des éléments div et span est très simple : il suffit d’entourer le bloc de code
voulu avec une paire de balises ouvrante et fermante div ou span comme cela :
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 59
Tout comme pour class et id, il existe une différence entre div et span : div est un
élément de type block tandis que span est un élément de type inline.
En HTML, tout élément est soit de type block, soit de type inline. Par exemple, div est
un élément de type block tandis que span est un élément de type inline. Les éléments
de type block sont fondamentalement différents des éléments de type inline en HTML
et il est essentiel de bien comprendre les différences entre ces deux types si vous voulez
un jour créer un site Internet, ne serait-ce que pour des raisons de mise en page.
Voyons immédiatement ces différences ensemble :
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 60
Afin que vous compreniez bien la différence entre les deux types d’éléments, voyons
ensemble quelques exemples d’éléments de type inline ou block pour que vous
puissiez observer leur comportement.
Illustrons ce que nous venons de dire en regardant par exemple de plus près le
comportement des éléments p et em :
On voit bien dans l’exemple ci-dessus les différences citées dans cette partie entre les
éléments de type block et inline. J’ai mis des bordures autour des paragraphes afin que
vous soyez bien convaincu qu’un élément de type block occupe toujours toute la
largeur disponible.
Maintenant que nous avons fait un premier tour d’horizons des possibilités offertes
par le CSS et que nous savons comment appliquer un style à n’importe que bloc de
code HTML, je peux vous parler des sélecteurs avancés. Les sélecteurs avancés sont
l’une des grandes forces du CSS. En effet, grâce à eux, nous allons pouvoir cibler du
contenu très précisément et assez simplement.
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 61
Il faut savoir qu’il existe de très nombreux sélecteurs avancés en CSS et que je ne vous
présenterai dans ce cours que les plus utiles selon moi et les plus utilisés. N’hésitez pas
à vous renseigner davantage si cela vous intéresse !
N’hésitez pas à faire quelques tests par vous même et à vous entraîner un peu pour
bien maîtriser ces quelques sélecteurs avancés, cela pourra vous être très utile par la
suite.
L’héritage est une notion centrale et fondamentale du CSS. L’héritage signifie que tout
élément HTML va hériter des styles de ses parents (c’est le fameux « cascading »). En
HTML, si un élément A est inclus dans un élément B ; l’élément A s’appellera l’enfant
et l’élément B sera le parent de l’élément A. Ainsi, si l’on applique un style à l’élément
B, l’élément A en héritera automatiquement. Voici un exemple de ce que j’avance ci-
dessous :
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375
P a g e | 62
Ici, l’élément body est le parent des éléments h1 et p, puisque les éléments h1 et p sont
bien contenus dans l’élément body. Ainsi, lorsqu’on applique un style à l’élément body
(ici, mettre le texte en rouge), les éléments p et h1 héritent automatiquement de ce style.
Cela laisse une question en suspens : que se passe-t-il lorsque l’on donne deux ordres
contradictoires à un élément parent et à son enfant en CSS (par exemple, donner une
couleur rouge au parent et bleue à l’enfant) ?
Le CSS possède ici sa logique et le style appliqué sera celui le plus proche de l’élément
en question. Cela signifie que si on applique un style à un élément enfant, c’est bien ce
style qui lui sera appliqué.
Cette notion d’héritage est assez simple à comprendre mais est très puissante et est à
la base du CSS, retenez la donc bien !
Dispensé par Ir. Cédric KALENGA LUBANGE : +243 995 504 660 / +243 817 621 375