Cours de Programmation Web
Cours de Programmation Web
Objectif général
Etant donné que la technologie web prend de plus en plus une place importante dans
nos différentes sociétés ; surtout dans la gestion actuelle des entreprises, notre objectif en
enseignant ce cours, est qu’à la fin de notre enseignement, les étudiants qui auront
normalement suivi le cours soient en mesure de concevoir eux-mêmes sans une aide étrangère
un site web statique.
Tout d’abord, il faut savoir que le HTML et le CSS sont deux véritables standards et
n’ont donc, à ce titre, pas de concurrent comme cela peut être le cas pour le langage
PhP par exemple (concurrencé par Ruby on Rails et Django entre autres).
Ensuite, les langages HTML et CSS sont véritablement le socle de tout projet de
développement web. Que vous vouliez créer un site, e-commerce, un blog, une
application mobile ou quoique ce soit d’autre, vous serez obligé de passer par les
langages HTML et CSS
Les langages HTML et CSS sont, comme nous allons le voir, à la base de tout projet
de programmation web. Par extension, ce cours s’adresse à tous, du plus parfait néophyte à
l’expert ayant besoin d’un rafraichissement. Le HTML et le CSS sont des langages plutôt
simples à maîtriser et à comprendre. J’ai voulu dans ce livre vous apporter une approche
concrète et directe de ces langages. Ce cours offre une difficulté graduelle mais, en soi, il n’y
a jamais rien d’insurmontable.
En résumé, ce cours s’adresse :
Aussi bien au néophyte qu’à la personne expérimentée ;
A tous ceux qui veulent apprendre à coder en HTML et en CSS
Et voilà, vous venez, sans vous en rendre compte, de créer votre première page valide en
HTML ! Retenez bien ce schéma, il sera toujours le même quelque soit la page HTML que
vous créerez.
<html>
<body>
</body>
</html>
Explication de l’exemple:
Le texte entre <html > et < / html> décrit la page Web
Le texte entre <body > et < / body> est le contenu visible de la page
Le texte entre < h1 > et </ h1 > est affiché comme une rubrique
Le texte entre <p > et < / p> est affiché comme un paragraphe
Liens HTML
Liens HTML sont définis avec le tag <a>.
Exemple
<a href="http://www.yahoo.com">Yahoo!</a>
<br />
La balise de début est souvent appelée la balise d’ouverture. La balise de fin est souvent
appelée la balise de fermeture.
Syntaxe d’un élément HTML
Un élément HTML commence par une balise d'ouverture / balise de début
Un élément HTML se termine par une balise de fermeture/ balise de fin
Le contenu de l'élément est tout entre la balise de début et la balise de fin
Certains éléments HTML ont un contenu vide
Les éléments vides sont fermés dans la balise de début
La plupart des éléments HTML peuvent avoir des attributs
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 onpeut avoir besoin (titre, paragraphe,
espace, image, etc.).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 ligne 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/>.Pour créer des titres, on va utiliser les éléments h1, h2, h3,
h4, h5 eth6. Pourquoi autant d’éléments différents ?Pour pouvoir créer des titres de diverses
importances. Ainsi, un titreh1 sera considéré comme un titre très important tandis qu’un titre
h6 sera considéré comme très peu important. En pratique, on n’utilisera que très rarement les
titres de niveau h4, h5et h6. Si vous vous interrogez encore sur l’intérêt d’avoir tous ces
éléments, pensez que cela est très important pour le référencement entre autres. En effet : plus
vous serez clair et mieux un moteur de recherche vous comprendra, mieux vous serez
référencé.
1.4.1.1 Heading
Rubriques HTML sont définies avec les balises < h1 > à < h6>
Exemple
1.4.1.2 Paragraphes
Exemple
1.4.1.3 Break
Break HTML est défini avec la balise < br>.
Exemple
<strong>Strong</strong>
<strong>Strong</strong>
<em>Emphasis</em>
<em>Emphasis</em>
<mark>Mark</mark>
<mark>Mark</mark>
1.5Les Attributs des éléments HTML
Les attributs fournissent des informations supplémentaires sur les éléments
Les éléments HTML peuvent avoir des attributs
Les attributs fournissent des informations supplémentaires sur les éléments
Les attributs sont toujours spécifiés dans la balise de début
Attributs viennent en paires comme : nom / valeur, nom = "valeur".
Exemple
Exemple
Une liste non ordonnée est une liste d’éléments. Les éléments de liste sont marqués avec des
balles (généralement petits cercles noirs).
Une liste non ordonnée commence par la balise < ul>. Chaque élément de la liste commence
par la balise <li>.
<ul>
<li> Ceci est le premier</li>
<li> Ceci est le deuxième </li>
<li> Ceci est le troisième </li>
</ul>
Balises de listes
Balise Description
<a
A propos </a>
href="pages/apropos.html">
1.5.3 Le texte
Tout document Html contiendra en majorité du texte. Voyons comment l'agrémenter
par quelques balisesélémentaires.
Gras[Bold]
<B>...</B>
<STRONG>...</STRONG>
Italique[Italic]
<I>...</I>
<EM>...</EM>
Taille de caractère [Font size]
<FONT SIZE= ?>...</FONT>
Couleur decaractère[Font color]
<FONT COLOR="#$$$$$$">…</FONT>
A la ligne [Line break]
<BR> Aller à la ligne
Commentaires [Comments]
<!-- *** --> Ne pas afficher
Centrage [Center]
<CENTER></CENTER>
Ouvrez l'éditeur de texte et tapez ceci
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>texte simple<BR>
<B>texte en gras</B><BR>
<STRONG>texte en gras</STRONG><BR>
<I>texte en italique</I><BR>
<EM>texte en italique</EM><BR>
<B><I>texte en gras et en italique</I></B><BR>
<FONT SIZE=5>texte</FONT>
<FONT COLOR="#0000FF">en bleu</FONT>
<! --C'est fini-->
</BODY>
</HTML>
Vous aurez quelque chose ressemblant à ceci.
Quelques commentaires s’imposent ;
Le texte tout simple s'écrit sans balises. Il sera repris par le browser (navigateur)
avec la police et taille de caractèreschoisies dans sa configuration par défaut.
Le browser (navigateur) affiche le texte qu'on lui "dicte" en passant à la ligne
lorsque celui-ci atteint le bord de lafenêtre. Pour le forcer à passer outre à cette
règle de conduite et à faire un saut à la ligne comme vous lesouhaitez, il faut une
instruction particulière. C'est la balise <BR>. Celle-ci représente une
actionponctuelle et n'a donc pas besoin de balise de fin.
Le même browser (navigateur) ne tient compte que d'un seul espace entre les mots.
Ainsi pour lui
<FONT SIZE=5>texte</FONT>
<FONT COLOR="#0000FF">en bleu</FONT>
Est équivalent à
<FONT SIZE=5>texte</FONT><FONT COLOR="#0000FF">en
bleu</FONT>
Il n'est pas rare d'utiliser plusieurs balises pour un même élément de texte. Il faut
veiller à bien les imbriquer. Ainsi,
<B><I>...</I></B>
Est correct et
<B><I>...</B></I> risque de vous créer des ennuis.
La taille dans <FONT SIZE= ?> peut être indiquée de deux façons :
1 Avec un nombre de 1 à 7. La valeur par défaut étant 3.
2 De façon relative par rapport à la valeur par défaut (ici 0). Soit -3 -2 -1 0 +1 +2
+3.
Pour les puristes, les balises <I> et <EM>, <B> et <STRONG> ne sont pas
totalement équivalentes.
Vous verrez en poussant plus avant votre étude du langage Html que <EM> et
<STRONG>appartiennent aux définitions structurales (style logique) dont l'apparence dépend
des options reprisesdans la configuration du browser. Les balises <B> et <I> appartiennent
aux formats de présentation(style physique) dont l'apparence dépend de la volonté de l'auteur.
AliceBlue #F0F8FF
AntiqueWhite #FAEBD7
Aqua #00FFFF
Aquamarine #7FFFD4
Azure #F0FFFF
Beige #F5F5DC
Bisque #FFE4C4
Black #000000
BlanchedAlmond #FFEBCD
Blue #0000FF
BlueViolet #8A2BE2
Brown #A52A2A
BurlyWood #DEB887
CadetBlue #5F9EA0
Chartreuse #7FFF00
Chocolate #D2691E
Coral #FF7F50
CornflowerBlue #6495ED
Cornsilk #FFF8DC
Crimson #DC143C
Du texte encore...
Des balises de texte, il y en plein des valises ! Selon les versions du HTML (nous en
sommes à la versionHTML 5) et l'apparition des éditeurs Html évolués, certains tags sont
moins utilisés. D'autres aussi sont toutbonnement d'un emploi rare ou pour le moins
particulier.
En voici quelques-uns qui compléteront votre panoplie actuelle.
Le tag <BLOCKQUOTE>...</BLOCKQUOTE> introduit une citation.Son utilité
serait douteuse si le texte de cette citation n'était introduit avec un léger retrait à
gauche et à droite.Ce qui est bien pratique pour agrémenter la présentation.
Voici un texte normal sans blockquote.
Voici un texte avec blockquote. Remarquez le retrait.
Vous savez déjà que les browsers ne reconnaissent qu'un espace entre les mots. Ce
qui peut se révéler gênantdans certaines situations.
La balise <PRE>...</PRE> affiche un texte dit préformaté. Le browser prend ainsi
en compte tous les espaceset sauts de ligne définis à l'écran.Avant que les tableaux
ne soient reconnus par les browsers, les braves pionniers du Html devaient
employerce tag pour faire des tableaux.
Le tag <ADDRESS>...</ADDRESS> pour indiquer une adresse (généralement en
fin de document).Voici mon adresse avec cette balise :
Ville de Bunia
Q. Mudzipela, Av. Centre 2
RDC
La balise <U>...</U> souligne le texte.Comme, par convention, les éléments
servant d'hyperlien sont soulignés (c'est le même que dans les fichiers d'aide), on
évitera de souligner des éléments de texte pour lui donner de l'importance. On
préfèrera les mettreen gras ou dans un format ou une couleur de police différent. Il
ne faut donc pas en abuser.
La balise <BLINK>...</BLINK>. Permet d'afficher un texte clignotant. Ce tag est
un peu tourné en dérision car ilest rapidement ennuyeux. On lui préfèrera une
image animée qui peut être débranchée après quelquesclignotements.
Les tags <SUB>...</SUB> et <SUP>...</SUP> placent le texte respectivement en
indice et en exposant.Ainsi, <SUB>escalier</SUB>escalier<SUP>escalier</SUP>
aura comme résultat
escalier
escalier
escalier
Pour aligner du texte, on a utilisé l'attribut ALIGN ou le tag <CENTER>. Il existe
une balise permettantd'aligner différents éléments. C’est le tag :
<DIV align=left>...</DIV>
<DIV align=center>...</DIV>
<DIV align=right>...</DIV>
Cette alternative pour l'alignement horizontal du texte est parfois bien utile pour
définir l'alignement d'uneportion de texte.
Il existe encore bien d'autres balises que je vous invite à découvrir dans vos études suivantes.
On peut aussi prévoir un fond en image. Cette image (petite de préférence) est affichée en
mosaïque par lebrowser. Attention aux raccords... comme lorsque vous posez du papier peint.
Texture d'arrière-plan <BODY BACKGROUND="Adresse">
Ce qui peut nous donner :
<BODY BACKGROUND="PAPER.gif">
<H1>Bonjour</H1>
</BODY>
1.5.5 Les tableaux
En Html, les tableaux servent non seulement à aligner des chiffres mais surtout à
placer des éléments à l'emplacement que vous souhaitez. L'usage des tableaux est donc très
fréquent.
Un tableau est composé de lignes et de colonnes qui forment les cellules du tableau.
Les balises de base sont donc :
Définition du tableau [Table] <TABLE></TABLE> Début et fin de tableau
Définition d'une ligne [Table Row] <TR></TR> Début et fin de ligne
Définition d'une cellule [Table Data] <TD></TD> Début et fin de cellule
Un tableau à deux lignes et deux colonnes, et donc à quatre cellules se représente comme
suit :
<TABLE>
<TR><TD>1</TD><TD>2</TD></TR>
<TR><TD>3</TD><TD>4</TD></TR>
</TABLE>
Je souhaite que la première ligne prenne toute la largeur de la ligne. La première cellule doit
donc déborder sur 3cellules horizontales.
<CENTER>
<TABLE width=60% border=1>
<TR>
<TD colspan=3>cellule 1</TD>
</TR>
<TR><TD width=33%>cellule 1</TD><TD width=33%>cel 2</TD>
<TD width=34%>3</TD></TR>
</TABLE>
</CENTER>
Dans le même style, je souhaite que la première colonne prenne toute la hauteur de la
colonne. La premièrecellule doit donc déborder sur 2 cellules verticales.
<CENTER>
<TABLE width=60% border=1>
<TR>
<TD width=33% rowspan=2>cellule 1</TD>
<TD width=33%>cel 2</TD>
<TD width=34%>3</TD>
</TR>
<TR>
<TD width=33%>cel 2</TD>
<TD width=34%>3</TD>
</TR>
</TABLE>
</CENTER>
1.5.6 Formulaires
Les formulaires interactifs permettent aux auteurs de pages Web de doter leur page
web d'éléments interactifs permettant par exemple un dialogue avec les internautes, à la
manière des coupons-réponses présents dans certains magazines.
Chapitre 2: CSS
Vous allez enfin pouvoir modifier l’apparence de vos textes, rajouter des
bordures ou changer la disposition des éléments sur votre page. Mais avant tout, il
nous faut commencer avec quelques éléments de vocabulaire comme on l’avait fait
pour le HTML.
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 ».
Faîtes l’effort de bien retenir cette écriture, car nous allons sans cesse nous en
resservir à partir de maintenant.
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.
Voyons ensemble comment cela se passe en pratique pour chacune de ces trois
méthodes, puis je vous expliquerai pourquoi la dernière est la meilleure.
Commençons avec la première façon : écrire son code CSS dans l’élément head de
notre page HTML.
Pour faire cela, il suffit d’insérer un élément style dans notre élément head et de
placer nos déclarations CSS à l’intérieur de cet élément style comme ceci :
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.
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).
En fait, il existe une différence notable entre class et id : un attribut id avec une
valeur précise ne peut être utilisé qu’une fois dans une page, au contraire de class.
Id sera donc utilisé pour des éléments uniques dans une page web, comme le logo
de votre site par exemple.
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 limités. Cependant, nous ne pouvons pour le moment
appliquer un style qu’à un contenu entre balises. Effectivement, on ne pourrait pas
appliquer de style particulier au mot « attributs » de notre titre dans l’exemple
précédent.
Pour remédier à cela, on a inventé les deux éléments HTML div et span, que nous
allons étudier tout de suite.
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 :
Généralement, on attribuera une class ou un id à div et span afin de pouvoir différencier nos
différents div et span dans notre page. Ainsi, on peut désormais appliquer un style particulier à
n’importe quel bout de code dans notre page HTML.
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.
Block ? Inline ? Nous allons voir immédiatement ce que cela signifie.
2.6 Les éléments de type block et 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.
disponible
Peuvent être imbriqués les uns dans les Peuvent être imbriqués les uns dans les
autres et contenir des éléments de type inline autres mais ne peuvent pas contenir
d’éléments de type block
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.
p em
li a
table img
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.
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 !
Nous allons immédiatement commencer avec les propriétés de type « font- » (qui
signifie « police d’écriture » en français).
Les valeurs de type « relatives » sont appelées de la sorte car elles permettent au
texte de s’adapter relativement aux préférences de vos visiteurs. En clair, si vous
fixez la taille d’un texte à 100%, ce texte pourra avoir des tailles différentes selon
les réglages faits par vos visiteurs sur leurs navigateurs.
Ce type de valeur présente des avantages indéniables, et notamment le fait que tous
vos visiteurs devraient être capables de lire vos écrits sans difficulté. De plus, le
texte peut également s’adapter relativement aux autres éléments de votre page web.
Une valeur de type absolu, en revanche, va fixer la taille d’un texte définitivement.
Le grand avantage de ce type de valeur est que vous pouvez contrôler précisément
donc le rendu de votre texte et de votre page web.
Imaginez par exemple que nous ayons défini un font-style : italic pour tous les
paragraphes de notre page et un font-style : normal à un div en particulier.
Si l’on souhaite que les paragraphes héritent du même style que notre div,
l’utilisation de la valeur inherit est alors une excellente solution.
Certains d’entre vous vont certainement me dire « très bien, mais il était aussi
rapide dans ce cas d’indiquer un font-style = normal à notre attribut class normal ».
C’est tout à fait vrai.
Pour faire cela, le plus simple est d’utiliser inherit. Cela doit vous sembler peut-être
un peu tiré par les cheveux pour le moment, mais il arrive plus souvent que vous le
pensez qu’on devait faire des choses comme ça lorsque l’on crée un site !
Concernant les valeurs italic et oblique, vous pourrez constater par vous mêmes
qu’elles rendent un résultat visuellement quasi identique.
Sans vouloir rentrer dans une discussion de puriste, sachez juste que l’italique est un
état spécial d’une police, et qui n’est pas supporté par toutes les polices tandis que
l’oblique correspond à une inclinaison forcée de la version normale d’une police, et
peut donc être appliqué à toutes les polices.
A noter que certaines polices et certains navigateurs ne supportent pas les valeurs inférieures à
« normal » et supérieures à « bold ». Si votre valeur n’est pas supportée, la police s’affichera
dans la valeur la plus proche supportée (pour bolder, votre police s’affichera en bold par
exemple).
Je vous conseille vivement de n’utiliser que des valeurs numériques qui permettent
un meilleur étalonnage et sont plus souples selon moi. Notez que 400 correspond à
normal et 700 à bold.
Dans tous les cas, nous déclarerons plusieurs polices (on parle de « famille » de polices, d’où
le nom de cette propriété) afin de s’assurer qu’au moins une des polices mentionnées soit
supportée par vos visiteurs.
En effet, il existe toujours des versions de navigateurs et des ordinateurs ne
supportant pas certaines polices, d’où tout l’intérêt d’en déclarer plusieurs.
La première police déclarée sera le choix par défaut. Si elle n’est pas lue par votre
visiteur, alors on utilisera la seconde et etc.
Cette méthode reste très limitée car nous ne pouvons choisir que parmi seize noms de
couleurs qui sont les suivants :
Les valeurs que vous voyez sous le nom des couleurs sont des valeurs qu’on appelle
hexadécimales. Ce type de valeur va correspondre à notre deuxième méthode pour
fixer la couleur d’un texte.
« Hexadécimal » signifie « qui fonctionne en base 16 ». Pour le dire simplement, un
système hexadécimal est un système qui utilise 16 symboles pour compter, à savoir
dans notre cas les nombres de 0 à 9 et les lettres de A à F. La lettre A correspondra
ainsi à 10, B à 11, C à 12, D à 13, E à 14 et F à 15. Cela nous fait donc bien 16
symboles en comptant le zéro.
Ce système de comptage peut paraître complexe et assez étrange pour ceux qui
n’ont pas fait d’études de mathématiques, je veux bien le comprendre. Cependant,
je vous demande de ne pas en avoir peur et de le voir tel qu’il est : un système pour
compter de 0 à 15 en soi très simple.
Mais quel rapport avec nos couleurs donc ? En fait, on va pouvoir donner une valeur
hexadécimale en valeur de la propriété color, afin de choisir très précisément la couleur
voulue. Cette valeur devra commencer par un dièse, suivie de 6 symboles choisis entre 0 et F.
Les deux premiers symboles vont définir l’intensité de rouge de notre couleur, les
deux suivants l’intensité de vert et les deux derniers l’intensité de bleu. Vous
pouvez imaginer que cela se passe comme lorsque vous mélangez de la peinture
afin d’obtenir une couleur précise.
L’intérêt de ce type de valeur est de pouvoir choisir parmi plus de 16 millions de
nuances différentes. Si vous avez bien suivi, l’échelle d’intensité va de 0 à 255 pour
chaque binôme de valeurs, 00 étant l’intensité la plus faible et FF l’intensité la plus
forte.
N’hésitez pas à vous entraîner en faisant différents essais pour voir comment se
comporte la propriété color avec ce type de valeur et être bien certain de maîtriser
tout cela !
Le plus important est encore une fois de retenir que les deux premiers symboles
correspondent à l’intensité de rouge, les deux suivants à l’intensité de vert et les
deux derniers à l’intensité de bleu.
Enfin, le dernier type de valeurs que l’on peut utiliser est le type RGB (pour Red
Green Blue). Nous allons voir que ce type de valeurs et les valeurs hexadécimales
reposent sur la même base.
Cette fois-ci, nous allons devoir indiquer trois nombres compris entre 0 t 255 en
valeur. Le premier nombre correspond une nouvelle fois à l’intensité de rouge, le
second à l’intensité de vert et le troisième à l’intensité de bleu que l’on veut utiliser
pour former notre couleur finale.
Dans l’exemple suivant, on voit bien que mon paragraphe « pdiv » est aligné à
droite de son élément parent (c’est-à-dire le div qui fait lui-même 100px de large) et
non pas de la page. Le second paragraphe, n’ayant pour parent que l’élément body,
est donc bien lui centré sur la page.
Si nous avons utilisé une valeur de type nom de couleur ou hexadécimale avec la propriété
color, nous devrons utiliser la propriété opacity pour fixer l’opacité de nos textes.
Cette propriété prend une valeur entre 0 (totalement transparent) et 1 (totalement opaque).
Attention : n’oubliez pas qu’on utilise des points et non pas des virgules pour les nombres à
virgule étant donné qu’on utilise le système d’écriture anglo-saxon lorsque l’on code.
Si nous avons utilisé une valeur de type RGB avec la propriété color, nous pouvons
également maîtriser l’opacité de notre texte d’une façon plus simple, en utilisant
une valeur de type RGBa. Dans ce cas, il suffit de rajouter une valeur pour l’opacité
de notre texte après les trois valeurs de notre propriété RGB.
Exemple :
Pour modifier la largeur d’un élément, on utilise cette fois la propriété width. Cette
propriété prend les mêmes types de valeurs que height.
Illustrons tout cela par un exemple. J’ai ajouté des bordures afin que vous puissiez
bien voir la taille de chaque élément. Ne vous souciez pas de la propriété border
pour le moment.
Pour créer des bordures et les personnaliser, nous allons avoir besoin de trois
propriétés :
Une fonctionnalité longtemps attendue par les webmasters et les développeurs et qui a vu le
jour avec le CSS3 est la possibilité de créer des bordures arrondies.
Pour faire cela, nous allons utiliser la propriété border-radius. Cette propriété va prendre une
valeur : la taille de l’angle, en px.
Notez que l’on peut définir des angles différents pour chaque côté de nos bordures
en utilisant les mots clefs top-left, top-right, bottom-left et bottom-right.
Notez également que ces mots clefs sont souvent employés en CSS, ensemble ou séparément
(que top, ou que left par exemple). N’hésitez donc pas à les tester avec certaines propriétés
déjà vues ou que l’on va voir !
On peut considérer qu’un élément HTML possède toujours une bordure. Celle-ci peut être
explicite, c’est-à-dire matérialisée à l’aide des propriétés CSS vues précédemment ou
implicite (invisible).
La propriété padding va définir l’espace entre l’élément en soi et sa bordure. Cette propriété
doit être utilisée uniquement dans ce but, et jamais pour positionner des éléments dans une
page ou les uns par rapport aux autres.
On donnera généralement une valeur en px à padding. Notez que l’on peut définir des
espacements différents pour chaque marge intérieure de nos éléments en utilisant les
propriétés padding-right, padding-bottom, padding-left et padding-top.
Illustrons immédiatement ce que nous venons de dire :
Contrairement à la propriété padding, la propriété margin peut tout-àfait être utilisée pour
positionner des éléments dans une page ou les uns par rapport aux autres.
Nous attribuerons généralement des valeurs en px ou en % à cette propriété. Tout
comme la propriété padding, nous allons pouvoir des marges différentes de chaque
côté de nos éléments avec les propriétés margin-right, margin-bottom, margin-left et
margin-top.
Notez que les valeurs par défaut des marges intérieures et extérieures peuvent
légèrement différer d’un navigateur à un autre. Cela peut impacter le design général
de votre site pour certains de vos visiteurs.
Afin de s’assurer que chaque visiteur verra un résultat conforme à nos attentes, nous
pouvons utiliser un « reset CSS » pour notre padding et notre margin.
Dans ce cas là, c’est très simple, il suffit par exemple d’appliquer un padding et une
margin avec des valeurs égales à zéro à notre élément body. Ensuite, on précisera
les différentes marges souhaitées à nos éléments enfants.
Nous allons cette fois-ci utiliser la propriété box-shadow. Cette dernière fonctionne
exactement comme text-shadow, avec deux valeurs obligatoires et quatre
recommandées pour marcher :
Un élément flottant va sortir du schéma naturel (du « flow ») d’une page web pour
venir se placer contre le bord gauche ou droit de l’élément qui le contient ou contre
le bord de la page.
Lorsque l’on fait flotter un élément, les éléments après l’élément flottant vont venir
se positionner à côté de celui-ci.
Dans l’exemple ci-dessus, on remarque que l’élément strong, contenu dans l’élément p2, va
venir se placer dans le coin à droite de son élément parent (l’élément p2 donc).
L’élément p1 va lui se placer à gauche dans la page tandis que l’élément p2 va se
placer à droite ; à côté de l’élément p1.
Généralement, on utilisera plutôt la propriété float sur des éléments de type inline
comme des images par exemple. En effet, cette propriété peut être la cause de
problème d’affichages lorsqu’elle est mal utilisée sur des éléments de type block.
Si l’on veut qu’un élément suivant un élément flottant vienne se placer sous cet
élément flottant, il faudra utiliser la propriété clear. Celle-ci accepte trois valeurs :
left, right ou both :
La nouveauté ici est le type inline-block. Ce nouveau type ne peut être donné à un
élément que grâce à la propriété display. Il va être un mix des types inline et block.
Static : valeur par défaut, ne change pas la position de base d’un élément
;
Absolute : permet de positionner un élément n’importe où dans la page,
par rapport à son élément parent direct ;
Fixed : permet de positionner un élément n’importe où dans la page. De
plus, l’élément reste visible si vous descendez ou remontez le long d’une
page ;
Relative : permet de replacer un élément relativement par rapport à son
positionnement par défaut ;
Inherit : l’élément hérite des propriétés de son parent.
Pour ensuite jouer sur la position de nos éléments, nous utiliserons les mots clefs
right, bottom, left et top.
Dans cet exemple, notre paragraphe p1 a un positionnement fixed et a été décalé de
80px sur la gauche par rapport au bord de la page.
Le paragraphe p2 possède lui une position relative. Il a été décalé de 50px par
rapport à son positionnement de base (par défaut, il aurait été placé au-dessus de
notre p1 à cause de son positionnement fixed).
2.9.9 Le z-index
Parfois, lorsque l’on crée le design de nos pages web, il arrive que deux
éléments se chevauchent selon certaines circonstances.
Il peut alors être utile de savoir comment indiquer quel élément doit apparaître au-
dessus de quel autre en cas de chevauchement.
Pour cela, nous utiliserons la propriété z-index. Celle-ci fonctionne avec tous les
éléments positionnés et permet d’indiquer quel élément doit être au-dessus de quel
autre en cas de conflit.
Le z-index ne fonctionnera donc pas sur des éléments positionnés en static (qui est
la valeur par défaut).
Un élément avec un z-index possédant une valeur plus élevée qu’un autre sera au-
dessus de cet autre élément. Cette propriété va donc s’utiliser de cette manière :
Dans l’exemple précédent, par défaut, l’élément p2 devrait être par-dessus l’élément p1.
Or, en appliquant un z-index avec une valeur plus élevée à p1, on arrive à refaire
passer p1 par-dessus p2 (on peut le voir au niveau des bordures).