Web1 Notes
Web1 Notes
[Link]
PROGRAMMATION WEB 1
Notes de cours
Décembre 2024
Objectifs du Cours
En troisième année de licence, le cours de Programmation Web1 poursuit les objectifs ci-après :
- Exploiter le cadre conceptuel du Web ;
- Concevoir les pages Web ;
- Mettre en page les pages Web ;
- Mettre en forme le site Web ;
- Exécuter le code PHP de base.
Bibliographie Sélective
1. Matthieu Nebra, Apprenez à créer votre site web avec HTML5 et CSS3, 2013, 248 pages.
2. Christophe Porteneuve, Bien développer pour le Web 2.0, Bonnes pratiques 2è édition, EYROLLES, Paris,
2008, 673 pages.
3. Mathieu Nebra, Réussir son site web avec HTML et CSS, 2è édition, EYROLLES, Paris, 2008, 316 pages.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours -2-
INTRODUCTION
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours -3-
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours -4-
1.2.2. Mise en page
Le langage HTML permet aux navigateurs Web d'adapter le rendu de chaque page aux
conditions locales de consultation : dimensions de la fenêtre, fontes de caractères disponibles,
préférences du visiteur. Entre un téléphone portable et une station de travail en passant par l'ordinateur
personnel, ces conditions varient considérablement.
On appelle « design fluide » les méthodes de design qui permettent aux pages de s'adapter
aux conditions de consultation. Inversement, on appelle « design fixe » la méthode qui consiste à
figer la taille de chaque élément de la page et à n'obtenir un rendu idéal que dans une fenêtre de
dimensions précises, avec une taille de fonte précise.
1.2.3. Consultation
Une page web se consulte soit en entrant directement son adresse Web dans un navigateur
Web, soit en suivant un hyperlien se trouvant dans une autre page. Les navigateurs les plus utilisés
affichent la page sur moniteur d'ordinateur, dans une fenêtre, et permettent de l'imprimer. Cependant,
le langage HTML, à la base de la plupart des pages Web, a été conçu pour permettre la consultation
avec des dispositifs variés : écrans de toute taille, terminal en mode texte, imprimante, dispositif
braille, synthétiseur vocal. Le terme page est donc généralement réducteur, de par son potentiel
d'interactivité avec l'utilisateur.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours -5-
Il ne faut pas confondre les adresses web avec les adresses électroniques ni les adresses IP. La
dénomination adresse Internet peut désigner une adresse web, mais elle est en fait totalement
ambiguë.
1.4.1. Définition
Un site web, ou simplement site, est un ensemble de pages web et de ressources liées et
accessible par une adresse web. Un site est hébergé sur un serveur web accessible via le réseau
mondial internet ou un intranet local. L'ensemble des sites web constituent le World Wide Web.
On parle parfois de "site internet" au lieu de "site web". On devrait parler de website à
destination d'internet, mais par abus de langage, l'expression site internet reste souvent utilisée. Les
websites ne sont pas forcément accessibles sur Internet. Par exemple, les intranet peuvent contenir un
ou plusieurs sites web non accessibles via internet.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours -6-
Il existe plusieurs langages pour créer ces pages : PHP, Java, C#, Ruby, voire d'autres comme
C++, Python et Visual Basic via l'interface CGI.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours -7-
• HTML (HyperText Markup Language) : Il a fait son apparition dès 1991 lors du lancement du
Web. Son rôle est de gérer et organiser le contenu. C'est donc en HTML que vous écrirez ce qui
doit être affiché sur la page : du texte, des liens, des images…
• CSS (Cascading Style Sheets, aussi appelées Feuilles de style) : le rôle du CSS est de gérer
l'apparence de la page web (agencement, positionnement, décoration, couleurs, taille du texte…).
Ce langage est venu compléter le HTML en 1996.
Vous pouvez très bien créer un site web uniquement en HTML, mais celui-ci ne sera pas très
beau : l'information apparaîtra « brute ». C'est pour cela que le langage CSS vient toujours le
compléter.
Le HTML définit le contenu tandis que le CSS permet de définir la présentation : couleurs,
image de fond, marges, taille du texte…
Comme vous vous en doutez, le CSS a besoin d'une page HTML pour fonctionner. C'est pour
cela que nous allons d'abord apprendre les bases du HTML avant de nous occuper de la décoration
en CSS.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours -8-
formulaires, etc. Mais surtout, cette version permet pour la première fois d'exploiter des feuilles
de style, notre fameux CSS.
• HTML 5 : c'est la dernière version. Encore assez peu répandue, elle fait beaucoup parler d'elle
car elle apporte de nombreuses améliorations comme la possibilité d'inclure facilement des
vidéos, un meilleur agencement du contenu, de nouvelles fonctionnalités pour les formulaires,
etc. C'est cette version que nous allons découvrir ensemble.
B. Versions de CSS
• CSS 1 : dès 1996, on dispose de la première version du CSS. Elle pose les bases de ce langage
qui permet de présenter sa page web, comme les couleurs, les marges, les polices de caractères,
etc.
• CSS 2 : apparue en 1999 puis complétée par CSS 2.1, cette nouvelle version de CSS rajoute de
nombreuses options. On peut désormais utiliser des techniques de positionnement très précises,
qui nous permettent d'afficher des éléments où on le souhaite sur la page.
• CSS 3 : c'est la dernière version, qui apporte des fonctionnalités particulièrement attendues
comme les bordures arrondies, les dégradés, les ombres, etc.
On peut tout à fait créer un site web uniquement avec Bloc-notes, le logiciel d'édition de texte
intégré par défaut à Windows. Il y a cependant des logiciels plus puissants aujourd'hui et personne
n'utilise vraiment Bloc-notes.
On peut classer ces logiciels de création de site web en deux catégories :
• Les WYSIWYG (What You See Is What You Get = Ce Que Vous Voyez Est Ce Que Vous Obtenez)
: ce sont des programmes qui se veulent très faciles d'emploi, ils permettent de créer des sites web
sans apprendre de langage particulier. Parmi les plus connus d'entre eux : Mozilla Composer,
Microsoft Expression Web, Dreamweaver… et même Word. Leur principal défaut est la qualité
souvent assez mauvaise du code HTML et CSS qui est automatiquement généré par ces outils. Un
bon créateur de site web doit tôt ou tard connaître HTML et CSS.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours -9-
• Les éditeurs de texte : ce sont des programmes dédiés à l'écriture de code. On peut en général les
utiliser pour de multiples langages, pas seulement HTML et CSS. Ils se révèlent être de puissants
alliés pour les créateurs de sites web !
Voici quelques conseils, selon que vous êtes sous Windows, Mac OS X ou Linux.
Il faut faire la manipulation suivante : allez dans le menu Langage > H > HTML. Cela
permettra au logiciel de savoir que l'on va taper du HTML. Il existe d'autres éditeurs disponibles sous
Windows. Si Notepad++ ne vous convient pas, vous pouvez essayer : jEdit, PSpad, ConTEXT, … et
bien d'autres si vous recherchez « Éditeur de texte » sur le Web.
1.5.3. NAVIGATEUR
Faites simplement un double-clic sur le fichier et votre navigateur affiche le texte que vous
avez écrit comme dans la fenêtre suivante :
En fait, pour créer une page web, il ne suffit pas de taper simplement du texte comme on vient
de le faire. En plus de ce texte, il faut aussi écrire ce qu'on appelle des balises, qui vont donner des
instructions à l'ordinateur comme « aller à la ligne », « afficher une image », etc.
[Link]. Balises
Les pages HTML sont remplies de ce qu'on appelle des balises. Celles-ci sont invisibles à
l'écran pour vos visiteurs, mais elles permettent à l'ordinateur de comprendre ce qu'il doit afficher.
Les balises se repèrent facilement. Elles sont entourées de « chevrons », c'est-à-dire des
symboles < et >, comme ceci : <balise>
On distingue deux types de balises : les balises en paires et les balises orphelines.
a) Les balises appariées ou en paires
Elles s'ouvrent, contiennent du texte, et se ferment plus loin. Voici à quoi elles ressemblent en
HTML:
<titre>Ceci est un titre</titre>
La balise ouvrante <balise> dit au navigateur : « L’élément commence ici.» tandis que la
balise fermante </balise> dit au navigateur : « L’élément se termine là. »
b) Les balises orphelines ou isolées
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 12 -
Ce sont des balises qui servent le plus souvent à insérer un élément à un endroit précis (par
exemple une image). Il n'est pas nécessaire de délimiter le début et la fin de l'image, on veut juste dire
à l'ordinateur « Insère une image ici ». En HTML une balise orpheline s'écrit comme ceci :
<image />
[Link]. Attributs
Les attributs sont 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">
Prenons la balise <image /> 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 :
<image nom="[Link]" />
L'ordinateur comprend alors qu'il doit afficher l'image contenue dans le fichier [Link].
Dans le cas d'une balise fonctionnant « par paire », on ne met les attributs que dans la balise ouvrante
et pas dans la balise fermante. Par exemple :
<citation auteur="Neil Armstrong" date="21/07/1969">C'est un petit pas pour l'homme, mais un
bond de géant pour l'humanité.</citation>
Ce code indique que la citation est de Neil Armstrong et qu'elle date du 21 Juillet 1969.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 13 -
Vous noterez que les balises s'ouvrent et se ferment dans un ordre précis. Les balises doivent
être fermées dans le sens inverse de leur ouverture.
Ci-dessous, nous expliquons les balises utilisées dans le code précédent :
a) Le doctype < !DOCTYPE html>
La toute première ligne s’appelle 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.
b) La balise < html> ----- < / 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.
c) 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 un peu courte donne quelques informations générales très
importantes sur la page comme son titre, l'encodage (pour la gestion des caractères spéciaux), etc.
Ces informations ne sont pas affichées sur la page mais sont à destination de l’ordinateur.
• 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.
Pour le moment, le corps est vide (nous y reviendrons plus loin). Intéressons-nous par contre
aux deux balises contenues dans l'en-tête.
d) L'encodage (charset)
Code : HTML
<meta charset="utf-8" />
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 14 -
Cette balise indique l'encodage utilisé dans votre fichier .html. Sans rentrer dans les détails,
l'encodage indique la façon dont le fichier est enregistré. C'est lui qui détermine comment les
caractères spéciaux vont s'afficher (accents, idéogrammes chinois et japonais, caractères arabes, etc.).
Il y a plusieurs techniques d'encodage portant des noms bizarres et utilisées en fonction des
langues : ISO-8859-1, OEM 775, Windows-1253… Une seule, cependant, devrait être utilisée
aujourd'hui autant que possible : UTF-8. Cette méthode d'encodage permet d'afficher sans aucun
problème pratiquement tous les symboles de toutes les langues de notre planète. C'est pour cela qu’il
est indiqué utf-8 dans cette balise.
e) Le titre principal de la page
<title>
C'est le titre de votre page, probablement l'élément le plus important. Toute page doit avoir
un titre qui décrit ce qu'elle contient. Il est conseillé de garder le titre assez court (moins de 100
caractères en général). Le titre ne s'affiche pas dans votre page mais en haut de celle-ci (souvent dans
l'onglet du navigateur). Enregistrez votre page web et ouvrez-la dans votre navigateur. Vous verrez
que le titre s'affiche dans l'onglet.
f) Commentaires
Un commentaire en HTML est un texte qui sert simplement de mémo. Il n'est pas affiché, il
n'est pas lu par l'ordinateur, cela ne change rien à l'affichage de la page. Cela vous permettra de vous
rappeler comment fonctionne votre page si vous revenez sur votre code source après un long moment
d'absence. Voici la balise utilisée pour insérer un commentaire n’importe où dans le code.
<!-- Ceci est un commentaire -->
N.B. Pour voir le code HTML de la page une fois mise en ligne, il suffit de cliquer-droit sur la page
puis, dans le menu contextuel qui s’affiche, sélectionner la commande « Code source de la page ».
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 15 -
2.1. PARAGRAPHES
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.
Ex. <p>Bonjour le monde !</p> : Début du paragraphe <p> et </p> Fin du paragraphe.
2.3. TITRES
Lorsque le contenu de la page va s'étoffer avec de nombreux paragraphes, il va devenir
difficile pour vos visiteurs de se repérer. C'est là que les titres deviennent utiles.
En HTML, on est verni, on a le droit d'utiliser six balises différentes pour indiquer les
niveaux :
• <h1> </h1> : signifie « titre très important ». En général, on s'en sert pour afficher le titre de la
page au début de celle-ci.
• <h2> </h2> : signifie « titre important ».
• <h3> </h3> : pareil, c'est un titre un peu moins important (on peut dire un « sous-titre »).
• <h4> </h4> : titre encore moins important.
• <h5> </h5> : titre pas important.
• <h6> </h6> : titre pas important du tout.
Code : HTML
<html>
<head>
<meta charset="utf-8" />
<title>Niveaux de titres</title>
</head>
<body>
<h1>Titre super important</h1>
<h2>Titre important</h2>
<h3>Titre un peu moins important (sous-titre)</h3>
<h4>Titre pas trop important</h4>
<h5>Titre pas important</h5>
<h6>Titre vraiment pas important du tout</h6>
</body>
</html>
Grâce au langage CSS, vous pourrez dire « Je veux que mes titres importants soient centrés,
rouges et soulignés ». Pour le moment, en HTML, nous ne faisons que structurer notre page. Nous
rédigeons le contenu avant de nous amuser à le mettre en forme.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 16 -
2.4. MISE EN VALEUR
Au sein de vos paragraphes, certains mots sont parfois plus importants que d'autres et vous
aimeriez les faire ressortir. HTML vous propose différentes balises de mise en valeur du texte de
votre page.
a) La balise <em>
Pour mettre un peu en valeur votre texte, vous devez utiliser la balise <em> </em>. Son
utilisation est très simple : encadrez les mots à mettre en valeur avec ces balises. Reprenons l’exemple
précédent en mettant certains mots en valeur :
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>MISE EN VALEUR</title>
</head>
<body>
<p>Bonjour et bienvenue sur mon site !<br /> Je mets les mots suivants <em>en valeur</em> comme vous le
remarquez</p>
</body>
</html>
Comme vous pouvez le voir, utiliser la balise <em> a pour conséquence de mettre le texte en
italique mais ne reste pas la balise qui met un texte en italique. En fait, c'est le navigateur qui choisit
comment afficher les mots. On lui dit que les mots sont assez importants et, pour faire ressortir cette
information, il change l'apparence du texte en utilisant l'italique.
b) La balise <strong>
Pour mettre un texte bien en valeur, on utilise la balise <strong> qui signifie « fort », ou «
important » si vous préférez. Elle s'utilise exactement de la même manière que <em>.
La balise <strong> ne signifie pas « mettre en gras » mais « important ». On pourra décider
plus tard, en CSS, d'afficher les mots « importants » d'une autre façon que le gras si on le souhaite.
2.5. MARQUAGE DU TEXTE
La balise <mark> permet de faire ressortir visuellement une portion de texte. L'extrait n'est
pas forcément considéré comme important mais on veut qu'il se distingue bien du reste du texte. Cela
peut être utile pour faire ressortir un texte pertinent après une recherche sur votre site par exemple.
2.6. LISTES
Les listes nous permettent souvent de mieux structurer notre texte et d'ordonner nos
informations. Les listes utilisent une combinaison d’au moins deux éléments :
• Un élément de balisage qui dit au navigateur que ce qui suit est une liste ;
• Des éléments de balisage qui disent au navigateur que ce qui suit est un élément de la liste.
Nous allons découvrir ici trois types de listes :
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 18 -
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 20 -
Utilisez l'attribut id pour donner un nom à l'ancre. Cela nous servira ensuite pour faire un lien
vers cette ancre. Par exemple :
Code : HTML
<h2 id="mon_ancre">Titre</h2>
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.
Exemple : Code HTML
<a href="#mon_ancre">Aller vers l'ancre</a>
Normalement, si vous cliquez sur le lien, cela vous amènera plus bas dans la même page (à
condition que la page comporte suffisamment de texte pour que les barres de défilement se déplacent
automatiquement). Voici un exemple de page comportant beaucoup de textes et utilisant les ancres :
Code : HTML
<h1>Mes langages préférés</h1>
<p>Aller directement à la partie traitant de :<br />
<a href="#html">En savoir plus sur html</a><br />
<a href="#css"> En savoir plus sur css</a><br />
<a href="#javascript"> En savoir plus sur javascript</a><br /></p>
<h2 id="html">Historique de HTML avec détails possibles</h2>
<p>... (beaucoup de texte) ...</p>
<h2 id="css">Historique de CSS avc details possibles</h2>
<p>... (beaucoup de texte) ...</p>
<h2 id="javascript">Historique de Javascript avec détails possibles</h2>
<p>... (beaucoup de texte) ...</p>
2.8. IMAGES
Il existe différents formats d'image que l'on peut utiliser sur des sites web, et on ne doit pas
les choisir au hasard. En effet, les images sont parfois volumineuses à télécharger, ce qui ralentit le
temps de chargement de la page.
Quand vous avez une image, vous avez la possibilité de l'enregistrer dans plusieurs « formats
» différents. Le poids (en Ko, voire en Mo) de l'image sera plus ou moins élevé selon le format choisi
et la qualité de l'image va changer. Par exemple, le logiciel de dessin Paint vous propose de choisir
entre plusieurs formats lorsque vous enregistrez une image :
• Le format JPEG (Joint Photographic Expert Group) très répandu sur le Web, est conçu pour
réduire le poids des photos (c'est-à-dire la taille du fichier associé), qui peuvent comporter plus
de 16 millions de couleurs différentes.
• Le format PNG (Portable Network Graphics) est le plus récent de tous. Ce format est adapté à
la plupart des graphiques. Le PNG a deux gros avantages : il peut être rendu transparent et il
n'altère pas la qualité de l'image. Il y a la version PNG 8 bits : 256 couleurs et la version PNG 24
bits : 16 millions de couleurs (autant qu'une image JPEG).
• Le format GIF est assez vieux, qui a été néanmoins très utilisé (et qui reste très utilisé par
habitude). Aujourd'hui, le PNG est globalement bien meilleur que le GIF : les images sont
généralement plus légères et la transparence est de meilleure qualité. Je vous recommande donc
d'utiliser le PNG autant que possible.
Le format GIF est limité à 256 couleurs (alors que le PNG peut aller jusqu'à plusieurs millions
de couleurs). Néanmoins, le GIF conserve un certain avantage que le PNG n'a pas : il peut être animé.
N.B. Les formats non cités ici sont à bannir car ils ne sont pas compressés, donc trop gros.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 22 -
La balise <img /> est utilisée pour insérer une image. Elle doit être accompagnée de deux
attributs obligatoires :
- src : il permet d'indiquer où se trouve l'image que l'on veut insérer. Vous pouvez soit mettre un
chemin absolu (ex. : [Link] soit mettre le chemin relatif (ce qu'on fait le
plus souvent). Ainsi, si votre image est dans un sous-dossier images, vous devrez taper :
src="images/[Link]"
- alt : cela signifie « texte alternatif ». On doit toujours indiquer un texte court qui décrit ce que
contient l'image. Ce texte sera affiché à la place de l'image si celle-ci ne peut pas être téléchargée
(cela arrive), ou dans les navigateurs de personnes handicapées (non-voyants) qui ne peuvent
malheureusement pas « voir » l'image. Cela aide aussi les robots des moteurs de recherche pour
les recherches d'images. Pour la fleur, on mettrait par exemple : alt="Une fleur".
Les images doivent se trouver obligatoirement à l'intérieur d'un paragraphe (<p></p>). Voici
un exemple d'insertion d'image :
Code : HTML
<p>Ceci est une montagne située au Nord Kivu :<br /> <img src="images/[Link]" alt="Photo de montagne" />
</p>
Bref, l'insertion d'image est quelque chose de très facile pour peu qu'on sache indiquer où se
trouve l'image, comme on avait appris à le faire avec les liens.
La plus grosse « difficulté » (si on peut l’appeler ainsi) consiste à choisir le bon format
d'image. Ici, c'est une photo donc c'est évidemment le format JPEG qu'on utilise.
L'attribut permettant d'afficher une bulle d'aide est le même que pour les liens : il s'agit de
title.
Code : HTML
<p>Ceci est une montagne située au Nord Kivu :<br /> <img src="images/[Link]" alt="Photo de montagne"
title="Bon massif" /> </p>
Rmq : Evitez à tout prix les accents, majuscules et espaces dans vos noms de fichiers et de dossiers.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 23 -
3.2.2. Class et Id
Pour que certains paragraphes seulement soient écrits d'une manière différente, on peut utiliser
les attributs spéciaux qui fonctionnent sur toutes les balises : class et id. Les deux attributs sont
quasiment identiques. Il y a seulement une petite différence. Pour le moment, et pour faire simple, on
ne va s'intéresser qu'à l'attribut class.
Class est un attribut que l'on peut mettre sur n'importe quelle balise, aussi bien titre que
paragraphe, image, etc.
Code : HTML
<h1 class=""> </h1>
<p class=""> </p>
<img class="" />
En fait, vous devez écrire un nom qui sert à identifier la balise. Ce que vous voulez, du
moment que le nom commence par une lettre.
Code : HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="[Link]" />
<title>Premiers tests du CSS</title>
</head>
<body>
<h1>Mon super site</h1>
<p class="introduction">Bonjour et bienvenue sur mon site !</p>
<p>Pour le moment, mon site est un peu <em>vide</em>.Patientez encore un peu !</p>
</body>
</html>
Maintenant que c'est fait, votre paragraphe est identifié. Il a un nom : introduction. Vous allez
pouvoir réutiliser ce nom dans le fichier CSS pour dire : « Je veux que seules les balises qui ont
comme nom 'introduction' soient affichées en bleu ».
Pour faire cela en CSS, indiquez le nom de votre classe en commençant par un point, comme
ci-dessous :
Code : CSS
.introduction
{
color: blue;
}
Id fonctionne exactement de la même manière que class, à un détail près : il ne peut être utilisé
qu'une fois dans le code. D'ailleurs, nous avons déjà vu l'attribut id dans le chapitre sur les liens (pour
réaliser des ancres). En pratique, nous ne mettrons des id que sur des éléments qui sont uniques dans
la page, comme par exemple le logo :
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 26 -
Code : HTML
<img src="images/[Link]" alt="Logo du site" id="logo" />
Si vous utilisez des id, lorsque vous définirez leurs propriétés dans le fichier CSS, il faudra
faire précéder le nom de l'id par un dièse (#) :
Code : CSS
#logo
{
/* Indiquez les propriétés CSS ici */
}
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 27 -
3.2.4. Sélecteurs avancés
En CSS, le plus difficile est de savoir cibler le texte dont on veut changer la forme. Pour cibler
(on dit « sélectionner ») les éléments de la page à modifier, on utilise ce qu'on appelle des sélecteurs.
Vous en avez déjà utilisé quelques-uns un peu plus tôt dans ce chapitre, résumons-les pour
commencer.
Les sélecteurs (p, h1, em, class, id) que nous avons vus précédemment, sont de loin les plus
couramment utilisés. Il faut les connaître par cœur. Il existe des dizaines d'autres façons de cibler des
balises en CSS. Nous n'allons pas toutes les voir car il y en a beaucoup et certaines sont complexes,
mais voici déjà de quoi vous permettre d'être plus efficaces en CSS.
a) * (sélecteur universel) : sélectionne toutes les balises sans exception.
Code : CSS
*
{
}
b) AB : une balise contenue dans l’autre
Code : CSS
h3 em
{
}
Sélectionne toutes les balises <em> situées à l'intérieur d'une balise <h3>. Notez qu'il n'y a pas de
virgule entre les deux noms de balises.
c) A + B : une balise qui en suit une autre
Code : CSS
h3 + p
{
}
Sélectionne la première balise <p> située après un titre <h3>.
d) A[attribut] : une balise qui possède un attribut
Code : CSS
a[title]
{
}
Sélectionne tous les liens <a> qui possèdent un attribut title.
e) A[attribut="valeur"] : une balise, un attribut et une valeur exacte
Code : CSS
a[title="Cliquez ici"]
{
}
Idem, mais l'attribut doit en plus avoir exactement pour valeur « Cliquez ici ».
f) A[attribut*="Valeur"] : une balise, un attribut et une valeur
Code : CSS
a[title*="ici"]
{
}
Idem, l'attribut doit cette fois contenir dans sa valeur le mot « ici » (peu importe sa position).
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 28 -
3.3. FORMATAGE DU TEXTE
Le « formatage du texte » n'a rien à voir avec la destruction de toutes les données présentes
sur votre disque dur. Cela signifie simplement que l'on va modifier l'apparence du texte (on dit qu'on
le « met en forme »).
Pas de surprise particulière : nous sommes toujours dans le CSS et nous allons réutiliser ce
que nous venons d'apprendre dans le chapitre précédent. Nous allons donc travailler directement au
sein du fichier .css que nous avons créé.
Ici nous allons découvrir de nombreuses propriétés CSS : nous allons voir comment modifier
la taille du texte, changer la police, aligner le texte…
3.3.1. Taille
Pour modifier la taille du texte, on utilise la propriété CSS font-size. Deux types de taille sont
proposés :
a) Taille absolue (en pixels, en centimètres ou millimètres).
Cette méthode est très précise mais il est conseillé de ne l'utiliser que si c'est absolument
nécessaire, car on risque d'indiquer une taille trop petite pour certains lecteurs. Pour indiquer une
taille absolue, on utilise généralement les pixels.
Pour avoir un texte de 16 pixels de hauteur, vous devez donc écrire :
Code : CSS
p
{
font-size: 14px; /* Paragraphes de 14 pixels */
}
h1
{
font-size: 40px; /* Titres de 40 pixels */
}
b) Taille relative (en pourcentage, « em » ou « ex ») : Cette technique souple s'adapte plus facilement
aux préférences de taille des visiteurs. C'est la méthode recommandée car le texte s'adapte alors plus
facilement aux préférences de tous les visiteurs. La valeur relative peut être indiquée par les mots
anglais suivants :
• xx-small : minuscule ;
• x-small : très petit ;
• small : petit ;
• medium : moyen ;
• large : grand ;
• x-large : très grand ;
• xx-large : euh… gigantesque.
Code : CSS
p
{
font-size: small ;
}
h1
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 29 -
{
font-size: large ;
}
Cette technique a un défaut : il n'y a que sept tailles disponibles (car il n'y a que sept noms).
Heureusement, il existe d'autres moyens.
De préférence, indiquer la taille en « em » :
• Si vous écrivez 1em, le texte a une taille normale.
• Si vous voulez grossir le texte, vous pouvez inscrire une valeur supérieure à 1, comme 1.3em.
• Si vous voulez réduire le texte, inscrivez une valeur inférieure à 1, comme 0.8em.
Exemple :
Code : CSS
p
{
font-size: 0.8em;
}
h1
{
font-size: 1.3em;
}
D'autres unités sont disponibles. Vous pouvez essayer le « ex » (qui fonctionne sur le même
principe que le em mais qui est plus petit de base) et le pourcentage (80%, 130%…).
3.3.2. Police
En effet, il se pose un problème : pour qu'une police s'affiche correctement, il faut que tous
les internautes l'aient. Si un internaute n'a pas la même police que vous, son navigateur prendra une
police par défaut (une police standard) qui n'aura peut-être rien à voir avec ce à quoi vous vous
attendiez.
La bonne nouvelle, c'est que depuis CSS 3, il est possible de faire télécharger
automatiquement une police au navigateur.
A. Modification de la police
La propriété CSS qui permet d'indiquer la police à utiliser est font-family. Seulement, pour
éviter les problèmes si l'internaute n'a pas la même police que vous, on précise en général plusieurs
noms de Police, séparés par des virgules :
Code : CSS
p
{
font-family: Impact, "Arial Black", Arial, Verdana, sans-serif;
}
Cela signifie que le navigateur essaiera d’abord d’utiliser : «Impact ou, si elle n'y est pas,
Arial Black, ou sinon Arial, ou sinon Verdana, ou si rien n'a marché, il mettra une police standard
(sans-serif) ».
En général, il est bien d'indiquer un choix de trois ou quatre polices (+ serif ou sans-serif) afin
de s'assurer qu'au moins l'une d'entre elles aura été trouvée sur l'ordinateur du visiteur.
N.B. Si le nom de la police comporte des espaces, il faut l'entourer de guillemets comme c’est fait
pour « Arial Black».
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 30 -
Voici une liste de polices qui fonctionnent bien sur la plupart des navigateurs :
• Arial ;
• Arial Black ;
• Comic Sans MS ;
• Courier New ;
• Georgia ;
• Impact ;
• Times New Roman ;
• Trebuchet MS ;
• Verdana.
B. Style de police
Il existe en CSS une série de propriétés classiques de mise en forme du texte. Nous allons
découvrir ici comment afficher le texte en gras, italique, souligné… et au passage nous verrons qu'il
est même possible d'aller jusqu'à le faire clignoter !
1°) Mise en italique
En CSS, pour mettre en italique, on utilise font-style qui peut prendre trois valeurs :
• italic : le texte sera mis en italique.
• oblique : le texte sera passé en oblique (les lettres sont penchées, le résultat est légèrement
différent de l'italique proprement dit).
• normal : le texte sera normal (par défaut). Cela vous permet d'annuler une mise en italique. Par
exemple, si vous voulez que les textes entre <em> ne soient plus en italique, vous devrez écrire :
Code : CSS
em
{
font-style: normal;
}
Ainsi, dans l'exemple suivant, nous nous servons de font-style pour mettre en italique tous
mes titres <h2> :
Code : CSS
h2
{
font-style: italic;
}
2°) Mise en gras
La propriété CSS pour mettre en gras est font-weight et prend les valeurs suivantes :
• bold : le texte sera en gras ;
• normal : le texte sera écrit normalement (par défaut).
Voici par exemple comment écrire les titres en gras :
Code: CSS
h1
{
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 31 -
font-weight: bold;
}
3°) Soulignement et autres décorations
La propriété CSS associée porte bien son nom : text-decoration. Elle permet, entre autres, de
souligner le texte, mais pas seulement. Voici les différentes valeurs qu'elle peut prendre :
• underline : souligné.
• line-through : barré.
• overline : ligne au-dessus.
• blink : clignotant. Ne fonctionne pas sur tous les navigateurs (Internet Explorer et Google Chrome,
notamment).
• none : normal (par défaut).
Ce code CSS va vous permettre de tester les effets de text-decoration :
h1
{
text-decoration: blink;
}
.souligne
{
text-decoration: underline;
}
.barre
{
text-decoration: line-through;
}
.ligne_dessus
{
text-decoration: overline;
}
3.3.4. Flottants
Le CSS nous permet de faire flotter un élément autour du texte. On dit aussi qu'on fait un «
habillage ».
La propriété y relative est float (« flottant » en anglais) appliquée à une balise. Cette propriété
peut prendre deux valeurs très simples :
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 32 -
• left : l'élément flottera à gauche.
• right : l'élément flottera à droite.
Pour faire flotter une image, par exemple, nous devons taper dans un premier temps, dans un
paragraphe :
Code : HTML
<p><img src="[Link]" class="imageflottante" alt="Image flottante" /> Ceci est un texte normal de paragraphe, écrit
à la suite de l'image et qui l'habillera car l'image est flottante. </p>
Voici le seul bout de code CSS qu'on ait besoin de taper, qui permet de faire flotter l'image à
gauche :
Code : CSS
.imageflottante
{
float: left;
}
Il existe en fait une propriété CSS qui permet de dire : « Stop, ce texte doit être en-dessous du
flottant et non plus à côté ». C'est la propriété clear, qui peut prendre ces trois valeurs :
• left : le texte se poursuit en-dessous après un float: left;
• right : le texte se poursuit en-dessous après un float: right;
• both : le texte se poursuit en-dessous, que ce soit après un float: left; ou après un float: right;.
Pour simplifier, on va utiliser tout le temps le clear: both, qui marche après un flottant à
gauche et après un flottant à droite (cela fonctionne donc à tous les coups). Pour illustrer son
fonctionnement, on va prendre ce code :
Code : HTML
<p><img src="[Link]" class="imageflottante" alt="Image flottante" /></p>
<p>Ce texte est écrit à côté de l'image flottante. </p>
<p class="dessous">Ce texte est écrit sous l'image flottante. </p>
Et ce code CSS :
.imageflottante
{
float: left;
}
.dessous
{
clear: both;
}
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 33 -
a) Notation hexadécimale
Seize couleurs, c’est un peu limité alors qu’il y a de millions de couleurs. Heureusement, il
existe en CSS plusieurs façons de choisir une couleur parmi toutes celles qui existent. La première
montrée est la notation hexadécimale. Elle est couramment utilisée sur le Web mais il existe aussi
une autre méthode que nous verrons plus loin.
Un nom de couleur en hexadécimal, cela ressemble à : #FF5A28. Pour faire simple, c'est une
combinaison de lettres et de chiffres qui indiquent une couleur. On doit toujours commencer par écrire
un dièse (#), suivi de six lettres ou chiffres allant de 0 à 9 et de A à F.
Ces lettres ou chiffres fonctionnent deux par deux. Les deux premiers indiquent une quantité
de rouge, les deux suivants une quantité de vert et les deux derniers une quantité de bleu. En
mélangeant ces quantités (qui sont les composantes Rouge-Vert-Bleu de la couleur) on peut obtenir
la couleur qu'on veut.
Ainsi, #000000 correspond à la couleur noire et #FFFFFF à la couleur blanche. Mais
maintenant, ne me demandez pas quelle est la combinaison qui produit de l'orange couleur « coucher
de soleil », je n'en sais strictement rien.
Voici par exemple comment on fait pour appliquer aux paragraphes la couleur blanche en
hexadécimal :
Code : CSS
p
{
color: #FFFFFF;
}
b) Méthode RGB
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 34 -
En anglais, Rouge-Vert-Bleu s'écrit Red-Green-Blue, ce qui s'abrège en «RGB». Comme
avec la notation hexadécimale, pour choisir une couleur, on doit définir une quantité de rouge, de vert
et de bleu.
Là, vous allez voir que c'est beaucoup plus pratique et qu'avec un logiciel de dessin tout simple
comme Paint, vous pouvez trouver la couleur que vous désirez. Voici la marche à suivre :
1. Lancez le logiciel Paint depuis le menu Démarrer.
2. Rendez-vous dans la section Modifier les couleurs.
3. Une fenêtre s'ouvre. Dans la zone qui apparaît à droite, faites bouger les curseurs pour sélectionner
la couleur qui vous intéresse. Supposons que vous soyez pris d'une envie folle d'écrire vos titres <h1>
en rose bonbon. Sélectionnez la couleur dans la fenêtre, comme à la figure suivante.
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 35 -
En CSS, si vous appliquez un style à une balise, toutes les balises qui se trouvent à l'intérieur
prendront le même style. C'est en fait simple à comprendre et intuitif. La balise <body>, vous le savez,
contient entre autres les balises de paragraphe <p> et de titre <h1>.
Si j'applique une couleur de fond noire et une couleur de texte blanche à la balise <body>,
tous mes titres et paragraphes auront eux aussi un arrière-plan de couleur noire et un texte de couleur
blanche… C'est ce phénomène qu'on appelle l'héritage : on dit que les balises qui se trouvent à
l'intérieur d'une autre balise « héritent » de ses propriétés.
Pour définir une autre valeur de l’attribut, il faut alors attribuer une autre valeur à la balise
concernée comme dans l’exemple suivant :
Code : CSS
body
{
background-color: black;
color: white;
}
mark
{
/* La couleur de fond prend le pas sur celle de toute la page */
background-color: red;
color: black;
}
Sur le texte de la balise <mark>, c'est la couleur de fond rouge qui s'applique. En effet, même
si le fond de la page est noir, c'est la propriété CSS de l'élément le plus précis qui a la priorité.
D. Images de fond
La propriété permettant d'indiquer une image de fond est background-image. Comme valeur,
on doit renseigner url("nom_de_l_image.png"). Par exemple :
Code : CSS
body
{
background-image: url("[Link]");
}
E. Options disponibles pour l'image de fond
On peut compléter la propriété background-image que nous venons de voir par plusieurs autres
propriétés qui permettent de changer le comportement de l'image de fond.
background-attachment : fixer le fond
La propriété CSS background-attachment permet de « fixer » le fond. L'effet obtenu est
intéressant car on voit alors le texte « glisser » par-dessus le fond. Deux valeurs sont disponibles :
• fixed : l'image de fond reste fixe ;
• scroll : l'image de fond défile avec le texte (par défaut).
Code : CSS
body
{
background-image: url("[Link]");
background-attachment: fixed; /* Le fond restera fixe */
}
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 36 -
3.4. BORDURES ET OMBRES
Le CSS vous offre un large choix de bordures pour décorer votre page. De nombreuses
propriétés CSS vous permettent de modifier l'apparence de vos bordures : border-width, border-color,
border-style… La super-propriété border qui regroupe l'ensemble de ces propriétés.
Pour border, on peut utiliser jusqu'à trois valeurs pour modifier l'apparence de la bordure :
- La largeur : indiquez la largeur de votre bordure. Mettez une valeur en pixels (comme 2px).
- La couleur : c'est la couleur de votre bordure. Utilisez, comme on l'a appris, soit un nom de
couleur (black, red,…), soit une valeur hexadécimale (#FF0000), soit une valeur RGB (rgb(198,
212, 37)).
- Le type de bordure : là, vous avez le choix. Votre bordure peut être un simple trait, ou des
pointillés, ou encore des tirets, etc. Voici les différentes valeurs disponibles :
o none : pas de bordure (par défaut) ;
o solid : un trait simple ;
o dotted : pointillés ;
o dashed : tirets ;
o double : bordure double ;
o groove : en relief ;
o ridge : autre effet relief ;
o inset : effet 3D global enfoncé ;
o outset : effet 3D global surélevé.
Ainsi, pour avoir une bordure bleue, en tirets, épaisse de 3 pixels autour de mes titres, je vais
écrire :
Code : CSS
h1
{
border: 3px blue dashed;
}
Si vous voulez mettre des bordures différentes en fonction du côté (haut, bas, gauche ou
droite), vous pouvez le faire sans problème. Dans ce cas, vous devrez utiliser ces quatre propriétés :
• border-top : bordure du haut ;
• border-bottom : bordure du bas ;
• border-left : bordure de gauche ;
• border-right : bordure de droite.
Pour ajouter une bordure uniquement à gauche et à droite des paragraphes, on écrira :
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 37 -
Code : CSS
p
{
border-left: 2px solid black;
border-right: 2px solid black;
}
La propriété border-radius va nous permettre d'arrondir facilement les angles de n'importe
quel élément. Il suffit d'indiquer la taille (« l'importance ») de l'arrondi en pixels :
Code : CSS
p
{
border-radius: 10px;
}
On peut aussi préciser la forme de l'arrondi pour chaque coin. Dans ce cas, indiquez quatre valeurs :
Code : CSS
p
{
border-radius: 10px 5px 10px 5px;
}
Les valeurs correspondent aux angles suivants dans cet ordre :
1. en haut à gauche ;
2. en haut à droite ;
3. en bas à droite ;
4. en bas à gauche.
Enfin, il est possible d'affiner l'arrondi de nos angles en créant des courbes elliptiques). Dans
ce cas, il faut indiquer deux valeurs séparées par une barre oblique (slash, caractère /). Le mieux est
certainement de tester pour voir l'effet :
Code : CSS
p
{
border-radius: 20px / 10px;
}
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 38 -
4.3. MARGES
Il faut savoir que tous les blocs possèdent des marges (exprimées en pixels). Il existe deux
types de marges :
• les marges intérieures (espace entre le texte et la bordure) définies par la propriété padding ;
• les marges extérieures (espace entre la bordure et le bloc suivant) définies par la propriété margin.
Pour bien voir les marges, appliquez les valeurs suivantes aux paragraphes :
Code : CSS
p
{
width: 350px;
border: 1px solid black;
text-align: justify;
padding : 12px ; /* Marge intérieure de 12 pixels */
margin: 50px; /* Marge extérieure de 50px */
}
Voici la liste des propriétés pour margin :
• margin-top : marge extérieure en haut ;
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 40 -
• margin-bottom : marge extérieure en bas ;
• margin-left : marge extérieure à gauche ;
• margin-right : marge extérieure à droite.
Et la liste pour padding :
• padding-top : marge intérieure en haut ;
• padding-bottom : marge intérieure en bas ;
• padding-left : marge intérieure à gauche ;
• padding-right : marge intérieure à droite.
N.B. La propriété overflow permet à ce que le texte ne dépasse pas des limites du paragraphe. Il va
falloir lui affecter comme valeur overflow : auto ; pour que le navigateur décide lui-même.
EXEMPLE D’UNE PAGE WEB CONÇUE AVEC HTML5, MISE EN FORME AVEC CSS3 PUIS
AFFICHÉE PAR GOOGLE CHROME
Cet exemple porte sur la conception d’une page web contenant un aperçu général du site. Il reprend la
plupart de balises HTML5 et des propriétés CSS3 que nous avons parcourues dans la deuxième partie de ce
support. Nous signalons, par ailleurs, que ce n’est pas tout. Les étudiants peuvent encore aller plus loin. Les
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 41 -
codes ont été pris de l’éditeur Notepad++ par des captures d’écran pour que le lecteur se rende compte qu’il y
a indentation.
CODE : HTML
CODE : CSS
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 42 -
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 43 -
-----------------------------------------------
Notes rassemblées par : CT Janvier SINDAMBIWE, Doctorant
Email : ngoga10janvier@[Link]
Programmation Web1/Notes de cours - 44 -
INTRODUCTION......................................................................................................................................... - 2 -