SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
© A. Belaïd
Feuille de style CSS
ou comment personnaliser son HTML
A. Belaïd
Université de Nancy 2
2
© A. Belaïd
En utilisant des feuilles de style
‹Intérêt des feuilles de style :
z Offrent des fonctionnalités puissantes de mise en page, mieux
adaptées aux besoins des sites Web actuels
ƒ Étudiées pour aller loin dans la mise en page
z Permettent de séparer le travail de rédaction et celui de
présentation
ƒ Séparation du code : (+ général) et du style (+ personnel)
z Permettent de séparer les fichiers de code et de présentation,
d’où :
ƒ Plusieurs pages peuvent partager la même feuille de style
ƒ Maintenance et adaptation facilitée
‹Attention :
z Uniquement compatibles avec navigateurs Netscape
Communicator ≥ 4.0 et Internet Explorer ≥ 4.0.
3
© A. Belaïd
Règles générales des FdS
‹Structure des règles de style
z Une feuille de style est composée de règles qui peuvent s'appliquer soit
ƒ au document entier
ƒ à un ensemble d'éléments du document (e.g. les balises <p> du
document)
ƒ à un élément particulier qui sera défini par l'attribut class ou id
z Une règle de style est composée :
ƒ d'un sélecteur et
ƒ d'une déclaration
z Exemple de règle :
h1 { color: red }
¾ h1 est le sélecteur,
¾ la déclaration est comprise dans les accolades, la propriété color a la
valeur red
4
© A. Belaïd
Règles générales des FdS
‹Structure des règles
z Chaque règle de style peut comporter autant de couples
propriété-valeur que voulus qui seront séparés par un ";"
z Une propriété peut avoir plusieurs valeurs séparées par un
espace
table { background-color : white ; border : 1px black solid }
z Possible de grouper plusieurs sélecteurs ayant une règle de
style identique, séparés par une virgule :
h1, h2, h3 { color: red }
5
© A. Belaïd
Règles générales des FdS
‹ Appliquer des règles de style à un document
z Plusieurs manières :
1. Grâce à une feuille de style intégrée au document
¾ celle-ci sera située dans l'entête, entre les balises <head>
ƒ On utilisera alors la balise <style> :
<html>
<head>
<title>style interne au document</title>
<style type="text/css">
html, body { font-family: sans-serif; background-color: white }
h1, h2 { color: blue }
p {text-align: justify }
</style>
</head>
<body> … </body>
</html>
z Exemples : Exemple_CSS_1.html, Exemple_CSS_2.html,
Exemple_CSS_7.html
6
© A. Belaïd
Règles générales des FdS
2. Grâce à l'attribut style : appelé style en ligne : Exemple_CSS_4.html
<p style="text-indent:15px">
Un style en ligne...
</p>
3. En faisant appel à une feuille de style externe : balise <link> dans
l'entête du document :
<html>
<head>
<title>appel à une feuille de style externe</title>
<link rel="stylesheet" href="feuilledestyle.css"
type="text/css" />
</head>
ƒ La feuille de style aura comme extension .css et ne devra pas
contenir de code HTML, Javascript ou autre
ƒ Exemple : Exemple_CSS_5.html
7
© A. Belaïd
Règles générales des FdS
3. Une autre manière pour importer une feuille de style :
ƒ en utilisant @import dans la balise <style> :
<html>
<head>
<title>style importé</title>
<style type="text/css">
@import url(styleimporte.css);
html, body { font-family: sans-serif;
background-color: white }
</style>
</head>
ƒ Il est possible d'importer plusieurs feuilles de style
8
© A. Belaïd
Remarque :
Styles en cascade : CSS
‹C'est quoi ce style ?
z Lorsqu'un style est appliqué à un élément, la plupart de ses
propriétés se répercutent en cascade sur les éléments enfants
contenus dans cet élément
z La plupart seulement, car ces éléments enfants peuvent à leur
tour écraser spécifiquement certaines propriétés
BODY
<DIV>
<H1> <P>
<B>
Style appliqué au <BODY>
Style appliqué à <H1>
Style appliqué à <P>
9
© A. Belaïd
Remarque :
Styles en cascade
‹Exemple : EffetEnCascade.html
z Premier élément DIV :
ƒ Fond rouge appliqué au texte dans ce bloc ainsi qu'à son
premier enfant
ƒ Dans le second enfant :
¾ La couleur d'arrière-plan est fixée à bleu :
– l'élément hérite cependant des caractères blancs, puisque
la propriété couleur d'avant-plan reste inchangée
ƒ Enfin, l'enfant de cet enfant fixe la couleur d'avant-plan à noir
(au lieu de blanc)
¾ Remarquez que l'arrière plan n'est pas écrasé
10
© A. Belaïd
Les différentes valeurs applicables
Les mesures
‹2 types de mesures pour les tailles et dimensions
z Mesures absolues :
ƒ le millimètre (mm)
ƒ le centimètre (cm)
ƒ le pouce (in) qui vaut 25,4 mm
ƒ le point (pt)
ƒ le pica (pc)
z Mesures relatives : utiliser
ƒ le pourcentage (%)
ƒ la hauteur em (em)
ƒ le pixel (px)
z L'emploi de telle ou telle unité dépendra de l'élément concerné
(une marge, une police) et du média de sortie (imprimante,
écran...)
11
© A. Belaïd
Les différentes valeurs applicables
‹Pour l'affichage à l'écran
z Préférez toujours une unité relative :
ƒ Une marge d'un cm s'affichera bien sur le vôtre mais paraîtra
minuscule sur un autre et énorme sur un troisième
z Préférez le pixel qui est relatif à la résolution de l'écran :
¾ sur un même écran, un pixel sera plus gros avec une résolution
800X600 par rapport à une résolution 1024X768
z Les unités cm et le % sont calculés en fonction de l'élément
parent
ƒ Dans cet exemple :
<body style="font-size: 12pt">
<p style="font-size:110%">Bla bla bla....</p>
</body>
– l'élément <p> est l'enfant de l'élément <body>
– Les caractères du paragraphe auront donc une taille de :
– 12pt ×110% soit 13,2pt
12
© A. Belaïd
Les différentes valeurs applicables
‹Exemple : mesure-relatives.html
<html>
<head>
<title>Untitled</title>
</head>
<body style="font-size:150%">
<p> Les caractères de cette page ont une taille de 150% définie dans
l'élément body
</p>
<p style="font-size:80%"> ce paragraphe à une taille de 80%, sa taille
sera calculée relativement à celle définie dans le body
</p>
</body>
</html>
13
© A. Belaïd
Les différentes valeurs applicables
‹Autre exemple : positionnement dans la page
z Grâce au style, on va pouvoir positionner librement,
de manière absolue ou relative des parties de texte
<html>
<body>
<p style="position: absolute; top: 99 px;
left: 99 px; visibility : visible;z-index : 2;">
Mon texte
</p>
</body>
</html>
14
© A. Belaïd
Les différentes valeurs applicables
‹Résultat : mesure-relatives.html
15
© A. Belaïd
Les différentes valeurs applicables
‹ Pour les couleurs
z Quatre possibilités
1. Mots-clés (définis par le W3C)
¾ 'aqua', 'black', 'blue', 'fuchsia' , 'gray', 'green' , 'lime', 'maroon',
'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white' et 'yellow'
2. Héxadécimale par paire :
¾ #000000 (noir) #FF0000 (rouge), #00FF00 (vert) …
3. Héxadécimale abrégée
¾ #000 (noir), #F00 (rouge), #0F0 (vert)
4. rgb :
¾ rgb(o,o,o) et rgb(0%,0%,0%) donnent du noir
¾ rgb(255,0,o) et rgb(100%,0%,0%) donnent du rouge pur
16
© A. Belaïd
Les feuilles de style
‹Les feuilles de style de police (font)
z font-family
ƒ Définit un nom de police ou une famille de police
¾ Ex : h3 {font-family:Arial}
z font-size
ƒ Définit la taille de la police
ƒ Xx-small / x-small / médium ou précise en points, inch…
¾ Ex : P {font-size:72pt}
z font-style
ƒ Définit le style de l'écriture
¾ Ex : h3 {font-style:italic}
z font-variant
ƒ Normal ou small-caps
¾ Ex : P {font-variant:small-caps}
17
© A. Belaïd
Les feuilles de style
‹Les feuilles de style de texte (text)
z text-align
ƒ Définit l'alignement : à gauche, centré, …
¾ Ex : h3 {text-align:center}
z text-indent
ƒ Définit un retrait dans la première ligne
¾ Ex : P {text-indent:1cm}
z text-decoration
ƒ Définit une décoration du texte : souligné, barré…
¾ Ex : a:visited {text-decoration:blink}
z text-transform
ƒ Définit la casse du texte : minuscule, majuscule
¾ Ex : P {text-transform:uppercase}
18
© A. Belaïd
Les feuilles de style
‹ Les feuilles de style d'arrière-plan (background)
z background-color
ƒ Définit la couleur de l'arrière-plan
h3 {background-color:#000000}
z background-image
ƒ Définit l'image de l'arrière plan
body {background-image:url(image.gif)}
z background-repeat
ƒ Définit la façon de répéter l'image de l'arrière plan
¾ repeat ou no-repeat ou repeat-x ou repeat-y
body {background-image:url(image.gif); background-repeat: repeat-4}
z background-attachment
ƒ Définit si l'image d'arrière-plan reste fixe avec les déplacements de
l'écran
body {background-image:url(image.gif); background-attachment: fixed}
19
© A. Belaïd
Les feuilles de style
Exemple : background-color.html
<HEAD>
<TITLE>Bordures</TITLE>
<STYLE>
h3 {background-color:#FF0000}
</STYLE>
</HEAD>
<BODY>
<H3>Bordures</H3>
20
© A. Belaïd
Les feuilles de style
‹background-image1.html
<html>
<head>
<title>Ma page</title>
<style type="text/css">
body{background-image:url(gnu.jpg);
background-repeat:no-repeat;
background-position:center}>
</style>
</head>
<body>
</body>
</html>
21
© A. Belaïd
Les feuilles de style
‹ background-image2.html
body {background-image: url(gnu.jpg);
background-repeat: no-repeat;
background-position: top center;
background-attachment: fixed}
<body>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
ÎEn activant l’ascenseur, les chiffres bougent et pas l’image
22
© A. Belaïd
Les feuilles de style
‹ background-image3.html
body {background-image: url(gnu.jpg);
background-repeat: no-repeat;
background-position: top center;
background-attachment: scroll}
<body>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
ÎEn activant l’ascenseur, les chiffres ne bougent pas, par contre l’image
bouge
23
© A. Belaïd
Les feuilles de style
‹background-image4.html
body {background-image: url(gnu.jpg);
background-repeat: repeat;
background-position: top center;
background-attachment: scroll}
<body>
24
© A. Belaïd
Les feuilles de style
‹Mettre des marges et dessiner des bordures
l
e
f
t
r
i
g
h
t
top
bottom
margin
content
padding
border
25
© A. Belaïd
Les feuilles de style
‹ Marges et retraits (margin)
z margin-top
ƒ Détermine la valeur de la marge supérieure en unité de longueur ou
auto
img {margin-top:5px}
margin-right, margin-left, …
z Exemple : marge.html
<html>
<head>
<title>Ma page</title>
</head>
<body>
Texte normal<br>
<span style="margin-left:20px">
Texte avec retrait</span><br>
Texte normal<br>
</body>
</html>
z span : balise permettant de structurer un élément de texte
26
© A. Belaïd
Les feuilles de style
‹ Bordures :
z Toute bordure prend en charge 3 propriétés :
ƒ Style, width, color
z Style permet de modifier l'apparence visuelle de la bordure
ƒ Les valeurs possibles sont : solid, double, inset, outset, …
z Exemple : border1.html
<HEAD>
<TITLE>Bordures</TITLE>
<STYLE>
P {border:solid 5px #C0C0C0;}
</STYLE>
</HEAD>
<BODY>
<H3>Bordures</H3>
<P style="border-style:solid">style-bordure:trait plein</P>
<P style="border-style:double">style-bordure:double trait concentrique d'une
largeur d'au moins trois pixels</P>…
couleur
largeur
style
27
© A. Belaïd
Les feuilles de style
‹Bordures : border1.html
28
© A. Belaïd
Les feuilles de style
‹ Autres feuilles de style de bordure (border)
z border-top-width
ƒ Donne l'épaisseur du bord supérieur
table {border-top-width:thin}
border-right-width, border-bottom-width …
z Exemple : border2.html
<html>
…
<table>
<tr>
<td style="border-top-width:3px;
border-right-width:25px;
border-bottom-width:3px;
border-left-width:25px;
border-color:red;
border-style:solid">
... votre texte ...</td></tr><table>…
29
© A. Belaïd
Les feuilles de style
‹ Pour l'enrobage (padding)
z padding-top
ƒ Valeur de remplissage haut entre l'élément et le bord
td {border-top:3px}
padding -right, padding -bottom…
z Exemple : padding.html
<html> …
<table>
<tr>
<td style="padding-top:0px;
padding-right:2px;
padding-bottom:30px;
padding-left:2px;
padding-color:red;
border-width:thin;
border-style:solid">
... votre texte ...</td></tr><table>…
30
© A. Belaïd
Les feuilles de style
‹Pour les listes
z list-style-type
ƒ Détermine le type de puce ou de numérotation
disc ou circle ou square
ul {list-style-type :square}
z list-style-image
ƒ Permet de remplacer les puces par une image
ul {list-style-image:url(image.gif)}
z list-style-position
ƒ Spécifie si les puces sont à l'intérieur ou à l'extérieur du texte
ul {list-style-position:inside}
31
© A. Belaïd
Les feuilles de style
‹ Les listes (suite)
z Exemple : liste.html
<html>
<head>
<title>Ma page</title>
</head>
<body>
<ul style="list-style-image:url(Pucebleue.JPG)">
<li> Les listes à puces</li>
<li> Les listes numérotées</li>
<li> Les listes numérotées</li>
</ul>
</body>
</html>
© A. Belaïd
Retour sur les sélecteurs
Plusieurs formes
33
© A. Belaïd
Retour sur les sélecteurs
1. Sélecteurs d'éléments ou de type
z s'appliquent à la balise HTML à laquelle ils font référence :
<style type="text/css">
body {font-family: arial, helvetica, sans-serif; color: black;
background-color:white;}
p {text-align: justify }
</style>
z Autre exemple :
h1 b {color: blue }
¾ la couleur bleue sera appliquée à tout texte gras (balise <b>)
contenu dans un titre de niveau 1 (balise <h1>)
34
© A. Belaïd
Les différents types de sélecteur
2. Sélecteurs de classe
z Permettent de regrouper des éléments HTML spécifiques,
relatifs à un même sujet
z Syntaxe :
.nom-de-la-clase (le point avant la classe est important)
z Exemple :
ƒ Le site Web d'un magasin veut par exemple créer une
classe pour la description de ses produits, une autre pour le
mode d'emploi, une autre encore pour les commentaires
des utilisateurs
<style type="text/css">
.description {color: red}
.mode { color:blue; font-size : 90%}
.comments { font-style : italic; color:green}
</style>
35
© A. Belaïd
Les différents types de sélecteur
2. Sélecteurs de classe
z On pourrait l’utiliser de la façon suivante : select-class1.html
<p>Le site Web d'un magasin veut par exemple créer <span
class=description> une classe pour la description de ses
produits</span>, <span class=mode> une autre pour le
mode d'emploi </span>, <span class=comments> une autre
encore pour les commentaires des utilisateurs</span>
</p>
36
© A. Belaïd
Les différents types de sélecteur
2. Sélecteurs de classe (suite)
z Cette notion de classe peut également servir à distinguer les
mêmes éléments mais différemment
z Exemple
ƒ Imaginons que l’on veuille différencier deux types de
paragraphe: un en gras pour les paragraphes importants et un
autre en italique pour les exemples
Î les sélecteurs peuvent être déclinés en classes comme suit :
p.important {font-weight:bold;color :blue}
p.exemple {font-style:italique;color :red}
ƒ Exemple d’utilisation : Exemple_CSS_1.html
37
© A. Belaïd
Les différents types de sélecteur
3. Sélecteurs de classe en cascade dans les listes
z HTML prend en charge deux types de balises déterminant la nature
des listes :
z OL :
ƒ Balise de liste ordonnée, numérotant automatiquement les
membres LI de la liste
z UL :
ƒ Balise de liste à puces, faisant précéder chaque membre LI d'une
puce
z Comment faire la différence entre les deux LI ?
ƒ Créer une relation entre ancêtre descendant : > sur FireFox et
blanc sur IE
ƒ OL>LI :
¾ sélectionnera que les éléments des listes numérotées
ƒ UL>LI :
¾ n'identifiera que les éléments d'une liste non ordonnée, ou liste à
puces
38
© A. Belaïd
Les différents types de sélecteur
z Exemple :
ƒ On veut remplacer une simple puce
par une image de puce plus
sophistiquée nommée :
Pucebleue.jpg
ƒ Si on définit la balise LI elle-même,
on court le risque de voir des
éléments de liste ordonnée afficher
également le graphisme
ƒ En limitant la sélection aux listes à
puces, on est certain que les
membres des listes numérotées
resteront inchangés :
z Fichier : HeritageDeSelecteurs.html
39
© A. Belaïd
Les différents types de sélecteur
z Il est également possible d'indiquer qu'un élément est inclus
dans un autre élément, à n'importe quelle profondeur :
ƒ Il suffit de séparer dans le sélecteur les deux éléments par
un espace :
<STYLE>
UL> LI {list-style-image:url(Pucebleue.jpg);}
</STYLE>
ƒ Cela va s'appliquer à tout élément LI contenu dans une liste
à puces, quelle que soit la profondeur de cet élément
ƒ Cela signifie que si la liste contient une liste ordonnée, tout
élément de cette dernière possèdera également la puce
bleue au lieu d'être numérotée
40
© A. Belaïd
Les différents types de sélecteur
z Exemple : sans :
z Exemple : avec : HeritageDeSelecteurs2.html
41
© A. Belaïd
Les différents types de sélecteur
z On souhaite maintenant affecter toutes les balises possibles à l'aide
d'une feuille de style
ƒ Exemple : assurer que tous les éléments de texte possèderont à
l'affichage les mêmes tailles et type de police (courier 12 points)
Î Recourir à l'opérateur étoile : "*"
ƒ Exemple
<STYLE>
UL LI {list-style-image:url(Pucebleue.jpg);}
*{font-family:Courier;font-size:12pt;font-style:plain;}
H1 {text-decoration:underline;}
</STYLE>
<H1>Annonce</H1>
<P>Il s'agit d'une nouvelle technique utilis&eacute;e ici pour la sortie.</P>
<UL>
<LI>Ceci poss&egrave;dera une image de puce bleue.</LI>
<LI>Idem pour celui-ci</LI>
42
© A. Belaïd
Les différents types de sélecteur
z Résultat : HeritageDeSelecteurs3.html
43
© A. Belaïd
Les différents types de sélecteur
z Sélecteurs d'identificateurs (id)
ƒ Permettent d'appliquer une règle de style à un élément
unique du document HTML
¾ La syntaxe d'un sélecteur d'ID est la suivante :
#nom_ID { style }
¾ Un tel style s'appelle de la manière suivante :
<BALISE ID="nom_ID" > ... </BALISE>
ƒ Exemple
<style type="text/css">
#special { font-size: 120% }
</style>
...
<p id="special">Paragraphe avec l'identificateur "spécial"</p>
44
© A. Belaïd
Les différents types de sélecteur
4. Pseudo-classes
z Proposées en plus des sélecteurs pour des éléments particuliers
ƒ Des pseudo-classes pour les liens :
¾ Sans indication spéciale, les navigateurs affichent différemment les
liens visités, ou non et cliqués
¾ Si on veut modifier cet affichage, on utilise les sélecteurs : :link, :hover
et :visited appliqués à la balise a (pour les liens)
ƒ a:link
¾ permet d'attribuer des feuilles de style au lien (non-visité)
a:link {text-decoration:none}
ƒ a:hover
¾ permet d'attribuer des feuilles de style lors du survol du lien
a:hover {font-weight:bold; color:purple}
ƒ a:visited
¾ permet d'attribuer des feuilles de style au lien visité
a:visited {color:blue}
45
© A. Belaïd
Les différents types de sélecteur
z Une pseudo-classe pour le premier élément (premier caractère,
première puce…)
ƒ :first-child
¾ S'applique sur le premier enfant du type donné d'un nœud
¾ Exemple :
UL>LI {list-style-type:disc}
UL>LI:first-child {list-style-image:url(Pucebleue.jpg)}
¾ Impose à tous les éléments de listes non ordonnées de débuter
par une puce en forme de disque, sauf la première qui possède
une image de puce bleue (Pucebleue.jpg)
– Attention, cela n'est pas pris en charge par Internet
Explorer 5.0.
46
© A. Belaïd
Les différents types de sélecteur
z Des pseudo-classes pour gérer le curseur
ƒ :hover
¾ S'applique quand le curseur se déplace sur la zone de l'élément
pointé, avant que celui-ci n'ait été cliqué
ƒ :active
¾ S'applique quand l'élément est activé
ƒ :focus:
¾ Un élément possédant le focus peut recevoir la saisie, par ex.
un rectangle
47
© A. Belaïd
Les différents types de sélecteur
‹Exemple : liens.html
<STYLE>
UL LI:hover {background-color:lightBlue;color:black;}
UL LI:active {background-color:navy;color:white;}
Input[type=text]:focus {border:solid 1px red}
</STYLE>
z En se déplaçant dans une liste d'éléments, chacun d'entre eux
s'illumine à son tour, affichant un texte noir sur un fond bleu clair
z Lorsque l'utilisateur clique sur l'un d'entre eux, celui-ci s'affiche
en blanc sur fond bleu marine
z Remarquez :
ƒ que si on se déplace, il peut rapidement repasser au stade
:hover avant de revenir à :active
ƒ si on clique sur une zone de texte, sa bordure devient rouge
pour signaler qu'elle possède désormais le focus
48
© A. Belaïd
Applications des sélecteurs
‹ Créer des menus en utilisant les styles CSS
z menu-horizontal.html
ƒ En se mettant au-dessus du menu, il est grisé, du texte est
affiché
z menu-vertical.html :
ƒ En passant sur un menu, il passe au gris clair
ƒ En cliquant sur Menu 2, des sous-menus apparaissent. Il
sont cliquables
http://css.alsacreations.com/Construction-de-menus-en-CSS/
variante : menu-vertical2.html
49
© A. Belaïd
Les différents types de sélecteur
z :first-letter et :first-line
<STYLE>
P:first-letter {float:left;font-size:36pt;font-family:Times Roman;}
</STYLE>
<BODY>
<P>Ceci est un exemple de l'&eacute;l&eacute;ment float en HTML, bien qu'il fonctionne
de la m&ecirc;me façon en XML. Remarquez que la hauteur de la lettrine inclut la
hauteur de la sur&eacute;levation, qui d&eacute;crit une marge au-dessus des
caract&egrave;res afin de g&eacute;rer les parties du trac&eacute; du caract&egrave;re
qui pourraient d&eacute;passer la hauteur normale de la ligne.</P>
</BODY>
z Permet de créer une lettrine : Lettrines.html
50
© A. Belaïd
Les différents types de sélecteur
z :before et :after
ƒ Servaient à ajouter un contenu au début ou à la fin de ce qui figurait
déjà dans la balise
<STYLE>
P.Page {font-style:italic;}
P.Page:before {content: "Page: ";color:red;}
P.Infante {font-weight:bold;}
P.Infante:before {content: "Infante: ";color:blue;}
</STYLE>
<P class="Page"> Par vos commandements chim&egrave;ne vient vous
voir.</P>
<P class="Infante"> Allez l'entretenir dans cette galerie.</P>
51
© A. Belaïd
Cascade et héritage
‹Gestion des conflits
z En cas de conflit entre la feuille de style de l'auteur et celle du
lecteur celle de l'auteur aura la priorité, sauf si le lecteur déclare
sa règle de style !important :
<style>
p { font-family: arial !important;}
</style>
z Dans le cas où l'auteur et le lecteur déclarent leur style
!important, l'auteur prend de nouveau le dessus
z Dans les styles définis par l'auteur, le navigateur va d'abord
calculer l'importance de chaque sélecteur selon ce principe :
ƒ sélecteur d'éléments (balises) 0 - 0 - 1
ƒ sélecteur de classe 0 - 1 - 0
ƒ sélecteur d'id 1 - 0 - 0
52
© A. Belaïd
Cascade et héritage
‹Gestion des conflits
z Le poids du sélecteur se calcule de gauche à droite et la valeur
de chaque sélecteur s'accumule, voici quelques exemples :
ƒ p {...} /* 0-0-1 */
¾ a un poids moins important que
ƒ p.classe1 {...} /* 0-1-1 */
¾ qui a lui même moins d'importance que
ƒ p#id1 {...} /* 1-0-1 */
ƒ div p {...} /* 0-0-2 */
¾ l'emporte sur
ƒ p {...} /* 0-0-1 */
ƒ p.class1#id1 {...} /* 1-1-1 */
¾ l'emporte sur
ƒ div p.class1 {...} /* 0-1-2 */
53
© A. Belaïd
Cascade et héritage
‹Gestion des conflits
z Ensuite, le navigateur va trier les styles selon leur ordre
d'apparition
z le principe à retenir est :
ƒ Plus un style est déclaré tardivement, plus il aura
d'importance
z Les styles importés (@import) auront le poids le plus faible
z Viennent ensuite :
ƒ la feuille de style externe
ƒ La feuille de style intégrée
ƒ et enfin les styles en ligne
54
© A. Belaïd
Cascade et héritage
‹ Gestion des conflits : exemple : conflit.html
<html>
<head> <title>Untitled</title>
<style type="text/css">
p {color: red; font-family: "Comic Sans MS"}
p.petitvert {color: green; font-size: 13px; }
p#times { font-size:24px; font-family: times }
</style>
</head>
<body>
<p>texte rouge avec police "comic sans"</p>
<p style="color:blue">texte bleu avec police "comic sans"</p>
<p class="petitvert">texte vert avec petite police</p>
<p class="petitvert" style="font-size:24px">
texte vert avec grande police</p>
<p id="times">texte rouge avec grande police "times"</p>
<p class="petitvert" id="times">
texte vert avec grande police "times"</p></body></html>
55
© A. Belaïd
Cascade et héritage
‹Gestion des conflits : résultat
56
© A. Belaïd
Cascade et héritage
‹ Commentaires
z Les quatre premiers paragraphes sont affichés avec la police "Comic
Sans" bien qu'elle ne soit spécifiée que pour le premier
z Les autres paragraphes héritent en fait des propriétés définies pour le
sélecteur <p> bien qu'elles aient chacune un style spécifique tant que
ces propriétés n'entrent pas en conflit avec les leurs
z La propriété de couleur "rouge" est ainsi écrasée par le style intégré du
deuxième paragraphe
z Le dernier paragraphe hérite ainsi des propriétés du sélecteur d'élément
(<p>), du sélecteur de classe (.petitvert) et du sélecteur d'id (#times)
z Les propriétés les plus spécifiques écrasant les autres :
ƒ La couleur rouge du sélecteur <p> est écrasée par le vert de la
classe .petitvert
ƒ La taille de 13px de la classe est écrasée par celle de 24px de l'id
#times
ƒ Tout comme la police "Comic Sans" est écrasée par la police
"times"
57
© A. Belaïd
Cascade et héritage
‹ Concept d'héritage
z Le concept d'héritage s'applique également entre éléments parents et
enfants
z Exemple : conflit2.html
<html>
<head> <title>Héritage</title>
<style type="text/css">
body {font-family: arial, sans-serif}
div {font-size:1.2em}
.rouge {color:red}
</style>
</head>
<body>
<p> Ce paragraphe hérite des propriétés de l'élément body : police
"arial"</p>
<div> <p> Celui-ci hérite des propriétés des éléments body et div :
police "arial" et taille 1.2em </p>
<p class="rouge"> Ce dernier hérite en plus des propriétés de la
classe .rouge</p> </div> </body> </html>
58
© A. Belaïd
Cascade et héritage
‹Concept d'héritage
z Résultat :

Contenu connexe

Similaire à cours2-css.pdf

Css présentation Pour des sites web dynamique
Css présentation Pour des sites web dynamiqueCss présentation Pour des sites web dynamique
Css présentation Pour des sites web dynamiqueDanielMohamed4
 
Outils de publication pour le CMS d'e-sidoc
Outils de publication pour le CMS d'e-sidocOutils de publication pour le CMS d'e-sidoc
Outils de publication pour le CMS d'e-sidoccdi-0450786k
 
Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015Abdoulaye Dieng
 
Outils de publication pour le CMS d'e-sidoc
Outils de publication pour le CMS d'e-sidocOutils de publication pour le CMS d'e-sidoc
Outils de publication pour le CMS d'e-sidocpriscilla_mommessin
 
Programmation web1partie3
Programmation web1partie3Programmation web1partie3
Programmation web1partie3Annabi Gihed
 
OpenCode beta : Haml & Sass
OpenCode beta : Haml & SassOpenCode beta : Haml & Sass
OpenCode beta : Haml & SassRémi Prévost
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirYves Van Goethem
 
Outils de publication pour e-sidoc
Outils de publication pour e-sidocOutils de publication pour e-sidoc
Outils de publication pour e-sidocStéphanie Tricard
 
initiation-dvptWEB-ericacademy.pdf
initiation-dvptWEB-ericacademy.pdfinitiation-dvptWEB-ericacademy.pdf
initiation-dvptWEB-ericacademy.pdfEricKeita
 
Cours css niveau debutant
Cours css niveau debutantCours css niveau debutant
Cours css niveau debutantTheBest Icanbe
 
4-html5_liste_balises.pdf
4-html5_liste_balises.pdf4-html5_liste_balises.pdf
4-html5_liste_balises.pdfbenfifiaymen36
 
Chapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfChapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfYassineZARIOUH
 
Chapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfChapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfYassineZARIOUH
 

Similaire à cours2-css.pdf (20)

html-css-casuhal.pdf
html-css-casuhal.pdfhtml-css-casuhal.pdf
html-css-casuhal.pdf
 
Css présentation Pour des sites web dynamique
Css présentation Pour des sites web dynamiqueCss présentation Pour des sites web dynamique
Css présentation Pour des sites web dynamique
 
Les bases du CSS3
Les bases du CSS3Les bases du CSS3
Les bases du CSS3
 
Langage HTML
Langage HTMLLangage HTML
Langage HTML
 
Outils de publication pour le CMS d'e-sidoc
Outils de publication pour le CMS d'e-sidocOutils de publication pour le CMS d'e-sidoc
Outils de publication pour le CMS d'e-sidoc
 
Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015Cours CSS feuilles de style en cascade- mars 2015
Cours CSS feuilles de style en cascade- mars 2015
 
BDW-ProgWEB_P2.pdf
BDW-ProgWEB_P2.pdfBDW-ProgWEB_P2.pdf
BDW-ProgWEB_P2.pdf
 
Outils de publication pour le CMS d'e-sidoc
Outils de publication pour le CMS d'e-sidocOutils de publication pour le CMS d'e-sidoc
Outils de publication pour le CMS d'e-sidoc
 
Initiation au html
Initiation au htmlInitiation au html
Initiation au html
 
#4 css 101
#4 css 101#4 css 101
#4 css 101
 
CSS 3
CSS 3CSS 3
CSS 3
 
Programmation web1partie3
Programmation web1partie3Programmation web1partie3
Programmation web1partie3
 
OpenCode beta : Haml & Sass
OpenCode beta : Haml & SassOpenCode beta : Haml & Sass
OpenCode beta : Haml & Sass
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
 
Outils de publication pour e-sidoc
Outils de publication pour e-sidocOutils de publication pour e-sidoc
Outils de publication pour e-sidoc
 
initiation-dvptWEB-ericacademy.pdf
initiation-dvptWEB-ericacademy.pdfinitiation-dvptWEB-ericacademy.pdf
initiation-dvptWEB-ericacademy.pdf
 
Cours css niveau debutant
Cours css niveau debutantCours css niveau debutant
Cours css niveau debutant
 
4-html5_liste_balises.pdf
4-html5_liste_balises.pdf4-html5_liste_balises.pdf
4-html5_liste_balises.pdf
 
Chapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfChapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdf
 
Chapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfChapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdf
 

Plus de RihabBENLAMINE

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfRihabBENLAMINE
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfRihabBENLAMINE
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdfRihabBENLAMINE
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxRihabBENLAMINE
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfRihabBENLAMINE
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfRihabBENLAMINE
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdfRihabBENLAMINE
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdfRihabBENLAMINE
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdfRihabBENLAMINE
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdfRihabBENLAMINE
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfRihabBENLAMINE
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdfRihabBENLAMINE
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfRihabBENLAMINE
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptxRihabBENLAMINE
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfRihabBENLAMINE
 

Plus de RihabBENLAMINE (20)

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptx
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdf
 
Firebase.pdf
Firebase.pdfFirebase.pdf
Firebase.pdf
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdf
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdf
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdf
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptx
 
PHP_intro.pdf
PHP_intro.pdfPHP_intro.pdf
PHP_intro.pdf
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdf
 
chapitre-2.pptx.pdf
chapitre-2.pptx.pdfchapitre-2.pptx.pdf
chapitre-2.pptx.pdf
 

cours2-css.pdf

  • 1. © A. Belaïd Feuille de style CSS ou comment personnaliser son HTML A. Belaïd Université de Nancy 2
  • 2. 2 © A. Belaïd En utilisant des feuilles de style ‹Intérêt des feuilles de style : z Offrent des fonctionnalités puissantes de mise en page, mieux adaptées aux besoins des sites Web actuels ƒ Étudiées pour aller loin dans la mise en page z Permettent de séparer le travail de rédaction et celui de présentation ƒ Séparation du code : (+ général) et du style (+ personnel) z Permettent de séparer les fichiers de code et de présentation, d’où : ƒ Plusieurs pages peuvent partager la même feuille de style ƒ Maintenance et adaptation facilitée ‹Attention : z Uniquement compatibles avec navigateurs Netscape Communicator ≥ 4.0 et Internet Explorer ≥ 4.0.
  • 3. 3 © A. Belaïd Règles générales des FdS ‹Structure des règles de style z Une feuille de style est composée de règles qui peuvent s'appliquer soit ƒ au document entier ƒ à un ensemble d'éléments du document (e.g. les balises <p> du document) ƒ à un élément particulier qui sera défini par l'attribut class ou id z Une règle de style est composée : ƒ d'un sélecteur et ƒ d'une déclaration z Exemple de règle : h1 { color: red } ¾ h1 est le sélecteur, ¾ la déclaration est comprise dans les accolades, la propriété color a la valeur red
  • 4. 4 © A. Belaïd Règles générales des FdS ‹Structure des règles z Chaque règle de style peut comporter autant de couples propriété-valeur que voulus qui seront séparés par un ";" z Une propriété peut avoir plusieurs valeurs séparées par un espace table { background-color : white ; border : 1px black solid } z Possible de grouper plusieurs sélecteurs ayant une règle de style identique, séparés par une virgule : h1, h2, h3 { color: red }
  • 5. 5 © A. Belaïd Règles générales des FdS ‹ Appliquer des règles de style à un document z Plusieurs manières : 1. Grâce à une feuille de style intégrée au document ¾ celle-ci sera située dans l'entête, entre les balises <head> ƒ On utilisera alors la balise <style> : <html> <head> <title>style interne au document</title> <style type="text/css"> html, body { font-family: sans-serif; background-color: white } h1, h2 { color: blue } p {text-align: justify } </style> </head> <body> … </body> </html> z Exemples : Exemple_CSS_1.html, Exemple_CSS_2.html, Exemple_CSS_7.html
  • 6. 6 © A. Belaïd Règles générales des FdS 2. Grâce à l'attribut style : appelé style en ligne : Exemple_CSS_4.html <p style="text-indent:15px"> Un style en ligne... </p> 3. En faisant appel à une feuille de style externe : balise <link> dans l'entête du document : <html> <head> <title>appel à une feuille de style externe</title> <link rel="stylesheet" href="feuilledestyle.css" type="text/css" /> </head> ƒ La feuille de style aura comme extension .css et ne devra pas contenir de code HTML, Javascript ou autre ƒ Exemple : Exemple_CSS_5.html
  • 7. 7 © A. Belaïd Règles générales des FdS 3. Une autre manière pour importer une feuille de style : ƒ en utilisant @import dans la balise <style> : <html> <head> <title>style importé</title> <style type="text/css"> @import url(styleimporte.css); html, body { font-family: sans-serif; background-color: white } </style> </head> ƒ Il est possible d'importer plusieurs feuilles de style
  • 8. 8 © A. Belaïd Remarque : Styles en cascade : CSS ‹C'est quoi ce style ? z Lorsqu'un style est appliqué à un élément, la plupart de ses propriétés se répercutent en cascade sur les éléments enfants contenus dans cet élément z La plupart seulement, car ces éléments enfants peuvent à leur tour écraser spécifiquement certaines propriétés BODY <DIV> <H1> <P> <B> Style appliqué au <BODY> Style appliqué à <H1> Style appliqué à <P>
  • 9. 9 © A. Belaïd Remarque : Styles en cascade ‹Exemple : EffetEnCascade.html z Premier élément DIV : ƒ Fond rouge appliqué au texte dans ce bloc ainsi qu'à son premier enfant ƒ Dans le second enfant : ¾ La couleur d'arrière-plan est fixée à bleu : – l'élément hérite cependant des caractères blancs, puisque la propriété couleur d'avant-plan reste inchangée ƒ Enfin, l'enfant de cet enfant fixe la couleur d'avant-plan à noir (au lieu de blanc) ¾ Remarquez que l'arrière plan n'est pas écrasé
  • 10. 10 © A. Belaïd Les différentes valeurs applicables Les mesures ‹2 types de mesures pour les tailles et dimensions z Mesures absolues : ƒ le millimètre (mm) ƒ le centimètre (cm) ƒ le pouce (in) qui vaut 25,4 mm ƒ le point (pt) ƒ le pica (pc) z Mesures relatives : utiliser ƒ le pourcentage (%) ƒ la hauteur em (em) ƒ le pixel (px) z L'emploi de telle ou telle unité dépendra de l'élément concerné (une marge, une police) et du média de sortie (imprimante, écran...)
  • 11. 11 © A. Belaïd Les différentes valeurs applicables ‹Pour l'affichage à l'écran z Préférez toujours une unité relative : ƒ Une marge d'un cm s'affichera bien sur le vôtre mais paraîtra minuscule sur un autre et énorme sur un troisième z Préférez le pixel qui est relatif à la résolution de l'écran : ¾ sur un même écran, un pixel sera plus gros avec une résolution 800X600 par rapport à une résolution 1024X768 z Les unités cm et le % sont calculés en fonction de l'élément parent ƒ Dans cet exemple : <body style="font-size: 12pt"> <p style="font-size:110%">Bla bla bla....</p> </body> – l'élément <p> est l'enfant de l'élément <body> – Les caractères du paragraphe auront donc une taille de : – 12pt ×110% soit 13,2pt
  • 12. 12 © A. Belaïd Les différentes valeurs applicables ‹Exemple : mesure-relatives.html <html> <head> <title>Untitled</title> </head> <body style="font-size:150%"> <p> Les caractères de cette page ont une taille de 150% définie dans l'élément body </p> <p style="font-size:80%"> ce paragraphe à une taille de 80%, sa taille sera calculée relativement à celle définie dans le body </p> </body> </html>
  • 13. 13 © A. Belaïd Les différentes valeurs applicables ‹Autre exemple : positionnement dans la page z Grâce au style, on va pouvoir positionner librement, de manière absolue ou relative des parties de texte <html> <body> <p style="position: absolute; top: 99 px; left: 99 px; visibility : visible;z-index : 2;"> Mon texte </p> </body> </html>
  • 14. 14 © A. Belaïd Les différentes valeurs applicables ‹Résultat : mesure-relatives.html
  • 15. 15 © A. Belaïd Les différentes valeurs applicables ‹ Pour les couleurs z Quatre possibilités 1. Mots-clés (définis par le W3C) ¾ 'aqua', 'black', 'blue', 'fuchsia' , 'gray', 'green' , 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white' et 'yellow' 2. Héxadécimale par paire : ¾ #000000 (noir) #FF0000 (rouge), #00FF00 (vert) … 3. Héxadécimale abrégée ¾ #000 (noir), #F00 (rouge), #0F0 (vert) 4. rgb : ¾ rgb(o,o,o) et rgb(0%,0%,0%) donnent du noir ¾ rgb(255,0,o) et rgb(100%,0%,0%) donnent du rouge pur
  • 16. 16 © A. Belaïd Les feuilles de style ‹Les feuilles de style de police (font) z font-family ƒ Définit un nom de police ou une famille de police ¾ Ex : h3 {font-family:Arial} z font-size ƒ Définit la taille de la police ƒ Xx-small / x-small / médium ou précise en points, inch… ¾ Ex : P {font-size:72pt} z font-style ƒ Définit le style de l'écriture ¾ Ex : h3 {font-style:italic} z font-variant ƒ Normal ou small-caps ¾ Ex : P {font-variant:small-caps}
  • 17. 17 © A. Belaïd Les feuilles de style ‹Les feuilles de style de texte (text) z text-align ƒ Définit l'alignement : à gauche, centré, … ¾ Ex : h3 {text-align:center} z text-indent ƒ Définit un retrait dans la première ligne ¾ Ex : P {text-indent:1cm} z text-decoration ƒ Définit une décoration du texte : souligné, barré… ¾ Ex : a:visited {text-decoration:blink} z text-transform ƒ Définit la casse du texte : minuscule, majuscule ¾ Ex : P {text-transform:uppercase}
  • 18. 18 © A. Belaïd Les feuilles de style ‹ Les feuilles de style d'arrière-plan (background) z background-color ƒ Définit la couleur de l'arrière-plan h3 {background-color:#000000} z background-image ƒ Définit l'image de l'arrière plan body {background-image:url(image.gif)} z background-repeat ƒ Définit la façon de répéter l'image de l'arrière plan ¾ repeat ou no-repeat ou repeat-x ou repeat-y body {background-image:url(image.gif); background-repeat: repeat-4} z background-attachment ƒ Définit si l'image d'arrière-plan reste fixe avec les déplacements de l'écran body {background-image:url(image.gif); background-attachment: fixed}
  • 19. 19 © A. Belaïd Les feuilles de style Exemple : background-color.html <HEAD> <TITLE>Bordures</TITLE> <STYLE> h3 {background-color:#FF0000} </STYLE> </HEAD> <BODY> <H3>Bordures</H3>
  • 20. 20 © A. Belaïd Les feuilles de style ‹background-image1.html <html> <head> <title>Ma page</title> <style type="text/css"> body{background-image:url(gnu.jpg); background-repeat:no-repeat; background-position:center}> </style> </head> <body> </body> </html>
  • 21. 21 © A. Belaïd Les feuilles de style ‹ background-image2.html body {background-image: url(gnu.jpg); background-repeat: no-repeat; background-position: top center; background-attachment: fixed} <body> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> <p>6</p> <p>7</p> <p>8</p> <p>9</p> ÎEn activant l’ascenseur, les chiffres bougent et pas l’image
  • 22. 22 © A. Belaïd Les feuilles de style ‹ background-image3.html body {background-image: url(gnu.jpg); background-repeat: no-repeat; background-position: top center; background-attachment: scroll} <body> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> <p>6</p> <p>7</p> <p>8</p> <p>9</p> ÎEn activant l’ascenseur, les chiffres ne bougent pas, par contre l’image bouge
  • 23. 23 © A. Belaïd Les feuilles de style ‹background-image4.html body {background-image: url(gnu.jpg); background-repeat: repeat; background-position: top center; background-attachment: scroll} <body>
  • 24. 24 © A. Belaïd Les feuilles de style ‹Mettre des marges et dessiner des bordures l e f t r i g h t top bottom margin content padding border
  • 25. 25 © A. Belaïd Les feuilles de style ‹ Marges et retraits (margin) z margin-top ƒ Détermine la valeur de la marge supérieure en unité de longueur ou auto img {margin-top:5px} margin-right, margin-left, … z Exemple : marge.html <html> <head> <title>Ma page</title> </head> <body> Texte normal<br> <span style="margin-left:20px"> Texte avec retrait</span><br> Texte normal<br> </body> </html> z span : balise permettant de structurer un élément de texte
  • 26. 26 © A. Belaïd Les feuilles de style ‹ Bordures : z Toute bordure prend en charge 3 propriétés : ƒ Style, width, color z Style permet de modifier l'apparence visuelle de la bordure ƒ Les valeurs possibles sont : solid, double, inset, outset, … z Exemple : border1.html <HEAD> <TITLE>Bordures</TITLE> <STYLE> P {border:solid 5px #C0C0C0;} </STYLE> </HEAD> <BODY> <H3>Bordures</H3> <P style="border-style:solid">style-bordure:trait plein</P> <P style="border-style:double">style-bordure:double trait concentrique d'une largeur d'au moins trois pixels</P>… couleur largeur style
  • 27. 27 © A. Belaïd Les feuilles de style ‹Bordures : border1.html
  • 28. 28 © A. Belaïd Les feuilles de style ‹ Autres feuilles de style de bordure (border) z border-top-width ƒ Donne l'épaisseur du bord supérieur table {border-top-width:thin} border-right-width, border-bottom-width … z Exemple : border2.html <html> … <table> <tr> <td style="border-top-width:3px; border-right-width:25px; border-bottom-width:3px; border-left-width:25px; border-color:red; border-style:solid"> ... votre texte ...</td></tr><table>…
  • 29. 29 © A. Belaïd Les feuilles de style ‹ Pour l'enrobage (padding) z padding-top ƒ Valeur de remplissage haut entre l'élément et le bord td {border-top:3px} padding -right, padding -bottom… z Exemple : padding.html <html> … <table> <tr> <td style="padding-top:0px; padding-right:2px; padding-bottom:30px; padding-left:2px; padding-color:red; border-width:thin; border-style:solid"> ... votre texte ...</td></tr><table>…
  • 30. 30 © A. Belaïd Les feuilles de style ‹Pour les listes z list-style-type ƒ Détermine le type de puce ou de numérotation disc ou circle ou square ul {list-style-type :square} z list-style-image ƒ Permet de remplacer les puces par une image ul {list-style-image:url(image.gif)} z list-style-position ƒ Spécifie si les puces sont à l'intérieur ou à l'extérieur du texte ul {list-style-position:inside}
  • 31. 31 © A. Belaïd Les feuilles de style ‹ Les listes (suite) z Exemple : liste.html <html> <head> <title>Ma page</title> </head> <body> <ul style="list-style-image:url(Pucebleue.JPG)"> <li> Les listes à puces</li> <li> Les listes numérotées</li> <li> Les listes numérotées</li> </ul> </body> </html>
  • 32. © A. Belaïd Retour sur les sélecteurs Plusieurs formes
  • 33. 33 © A. Belaïd Retour sur les sélecteurs 1. Sélecteurs d'éléments ou de type z s'appliquent à la balise HTML à laquelle ils font référence : <style type="text/css"> body {font-family: arial, helvetica, sans-serif; color: black; background-color:white;} p {text-align: justify } </style> z Autre exemple : h1 b {color: blue } ¾ la couleur bleue sera appliquée à tout texte gras (balise <b>) contenu dans un titre de niveau 1 (balise <h1>)
  • 34. 34 © A. Belaïd Les différents types de sélecteur 2. Sélecteurs de classe z Permettent de regrouper des éléments HTML spécifiques, relatifs à un même sujet z Syntaxe : .nom-de-la-clase (le point avant la classe est important) z Exemple : ƒ Le site Web d'un magasin veut par exemple créer une classe pour la description de ses produits, une autre pour le mode d'emploi, une autre encore pour les commentaires des utilisateurs <style type="text/css"> .description {color: red} .mode { color:blue; font-size : 90%} .comments { font-style : italic; color:green} </style>
  • 35. 35 © A. Belaïd Les différents types de sélecteur 2. Sélecteurs de classe z On pourrait l’utiliser de la façon suivante : select-class1.html <p>Le site Web d'un magasin veut par exemple créer <span class=description> une classe pour la description de ses produits</span>, <span class=mode> une autre pour le mode d'emploi </span>, <span class=comments> une autre encore pour les commentaires des utilisateurs</span> </p>
  • 36. 36 © A. Belaïd Les différents types de sélecteur 2. Sélecteurs de classe (suite) z Cette notion de classe peut également servir à distinguer les mêmes éléments mais différemment z Exemple ƒ Imaginons que l’on veuille différencier deux types de paragraphe: un en gras pour les paragraphes importants et un autre en italique pour les exemples Î les sélecteurs peuvent être déclinés en classes comme suit : p.important {font-weight:bold;color :blue} p.exemple {font-style:italique;color :red} ƒ Exemple d’utilisation : Exemple_CSS_1.html
  • 37. 37 © A. Belaïd Les différents types de sélecteur 3. Sélecteurs de classe en cascade dans les listes z HTML prend en charge deux types de balises déterminant la nature des listes : z OL : ƒ Balise de liste ordonnée, numérotant automatiquement les membres LI de la liste z UL : ƒ Balise de liste à puces, faisant précéder chaque membre LI d'une puce z Comment faire la différence entre les deux LI ? ƒ Créer une relation entre ancêtre descendant : > sur FireFox et blanc sur IE ƒ OL>LI : ¾ sélectionnera que les éléments des listes numérotées ƒ UL>LI : ¾ n'identifiera que les éléments d'une liste non ordonnée, ou liste à puces
  • 38. 38 © A. Belaïd Les différents types de sélecteur z Exemple : ƒ On veut remplacer une simple puce par une image de puce plus sophistiquée nommée : Pucebleue.jpg ƒ Si on définit la balise LI elle-même, on court le risque de voir des éléments de liste ordonnée afficher également le graphisme ƒ En limitant la sélection aux listes à puces, on est certain que les membres des listes numérotées resteront inchangés : z Fichier : HeritageDeSelecteurs.html
  • 39. 39 © A. Belaïd Les différents types de sélecteur z Il est également possible d'indiquer qu'un élément est inclus dans un autre élément, à n'importe quelle profondeur : ƒ Il suffit de séparer dans le sélecteur les deux éléments par un espace : <STYLE> UL> LI {list-style-image:url(Pucebleue.jpg);} </STYLE> ƒ Cela va s'appliquer à tout élément LI contenu dans une liste à puces, quelle que soit la profondeur de cet élément ƒ Cela signifie que si la liste contient une liste ordonnée, tout élément de cette dernière possèdera également la puce bleue au lieu d'être numérotée
  • 40. 40 © A. Belaïd Les différents types de sélecteur z Exemple : sans : z Exemple : avec : HeritageDeSelecteurs2.html
  • 41. 41 © A. Belaïd Les différents types de sélecteur z On souhaite maintenant affecter toutes les balises possibles à l'aide d'une feuille de style ƒ Exemple : assurer que tous les éléments de texte possèderont à l'affichage les mêmes tailles et type de police (courier 12 points) Î Recourir à l'opérateur étoile : "*" ƒ Exemple <STYLE> UL LI {list-style-image:url(Pucebleue.jpg);} *{font-family:Courier;font-size:12pt;font-style:plain;} H1 {text-decoration:underline;} </STYLE> <H1>Annonce</H1> <P>Il s'agit d'une nouvelle technique utilis&eacute;e ici pour la sortie.</P> <UL> <LI>Ceci poss&egrave;dera une image de puce bleue.</LI> <LI>Idem pour celui-ci</LI>
  • 42. 42 © A. Belaïd Les différents types de sélecteur z Résultat : HeritageDeSelecteurs3.html
  • 43. 43 © A. Belaïd Les différents types de sélecteur z Sélecteurs d'identificateurs (id) ƒ Permettent d'appliquer une règle de style à un élément unique du document HTML ¾ La syntaxe d'un sélecteur d'ID est la suivante : #nom_ID { style } ¾ Un tel style s'appelle de la manière suivante : <BALISE ID="nom_ID" > ... </BALISE> ƒ Exemple <style type="text/css"> #special { font-size: 120% } </style> ... <p id="special">Paragraphe avec l'identificateur "spécial"</p>
  • 44. 44 © A. Belaïd Les différents types de sélecteur 4. Pseudo-classes z Proposées en plus des sélecteurs pour des éléments particuliers ƒ Des pseudo-classes pour les liens : ¾ Sans indication spéciale, les navigateurs affichent différemment les liens visités, ou non et cliqués ¾ Si on veut modifier cet affichage, on utilise les sélecteurs : :link, :hover et :visited appliqués à la balise a (pour les liens) ƒ a:link ¾ permet d'attribuer des feuilles de style au lien (non-visité) a:link {text-decoration:none} ƒ a:hover ¾ permet d'attribuer des feuilles de style lors du survol du lien a:hover {font-weight:bold; color:purple} ƒ a:visited ¾ permet d'attribuer des feuilles de style au lien visité a:visited {color:blue}
  • 45. 45 © A. Belaïd Les différents types de sélecteur z Une pseudo-classe pour le premier élément (premier caractère, première puce…) ƒ :first-child ¾ S'applique sur le premier enfant du type donné d'un nœud ¾ Exemple : UL>LI {list-style-type:disc} UL>LI:first-child {list-style-image:url(Pucebleue.jpg)} ¾ Impose à tous les éléments de listes non ordonnées de débuter par une puce en forme de disque, sauf la première qui possède une image de puce bleue (Pucebleue.jpg) – Attention, cela n'est pas pris en charge par Internet Explorer 5.0.
  • 46. 46 © A. Belaïd Les différents types de sélecteur z Des pseudo-classes pour gérer le curseur ƒ :hover ¾ S'applique quand le curseur se déplace sur la zone de l'élément pointé, avant que celui-ci n'ait été cliqué ƒ :active ¾ S'applique quand l'élément est activé ƒ :focus: ¾ Un élément possédant le focus peut recevoir la saisie, par ex. un rectangle
  • 47. 47 © A. Belaïd Les différents types de sélecteur ‹Exemple : liens.html <STYLE> UL LI:hover {background-color:lightBlue;color:black;} UL LI:active {background-color:navy;color:white;} Input[type=text]:focus {border:solid 1px red} </STYLE> z En se déplaçant dans une liste d'éléments, chacun d'entre eux s'illumine à son tour, affichant un texte noir sur un fond bleu clair z Lorsque l'utilisateur clique sur l'un d'entre eux, celui-ci s'affiche en blanc sur fond bleu marine z Remarquez : ƒ que si on se déplace, il peut rapidement repasser au stade :hover avant de revenir à :active ƒ si on clique sur une zone de texte, sa bordure devient rouge pour signaler qu'elle possède désormais le focus
  • 48. 48 © A. Belaïd Applications des sélecteurs ‹ Créer des menus en utilisant les styles CSS z menu-horizontal.html ƒ En se mettant au-dessus du menu, il est grisé, du texte est affiché z menu-vertical.html : ƒ En passant sur un menu, il passe au gris clair ƒ En cliquant sur Menu 2, des sous-menus apparaissent. Il sont cliquables http://css.alsacreations.com/Construction-de-menus-en-CSS/ variante : menu-vertical2.html
  • 49. 49 © A. Belaïd Les différents types de sélecteur z :first-letter et :first-line <STYLE> P:first-letter {float:left;font-size:36pt;font-family:Times Roman;} </STYLE> <BODY> <P>Ceci est un exemple de l'&eacute;l&eacute;ment float en HTML, bien qu'il fonctionne de la m&ecirc;me façon en XML. Remarquez que la hauteur de la lettrine inclut la hauteur de la sur&eacute;levation, qui d&eacute;crit une marge au-dessus des caract&egrave;res afin de g&eacute;rer les parties du trac&eacute; du caract&egrave;re qui pourraient d&eacute;passer la hauteur normale de la ligne.</P> </BODY> z Permet de créer une lettrine : Lettrines.html
  • 50. 50 © A. Belaïd Les différents types de sélecteur z :before et :after ƒ Servaient à ajouter un contenu au début ou à la fin de ce qui figurait déjà dans la balise <STYLE> P.Page {font-style:italic;} P.Page:before {content: "Page: ";color:red;} P.Infante {font-weight:bold;} P.Infante:before {content: "Infante: ";color:blue;} </STYLE> <P class="Page"> Par vos commandements chim&egrave;ne vient vous voir.</P> <P class="Infante"> Allez l'entretenir dans cette galerie.</P>
  • 51. 51 © A. Belaïd Cascade et héritage ‹Gestion des conflits z En cas de conflit entre la feuille de style de l'auteur et celle du lecteur celle de l'auteur aura la priorité, sauf si le lecteur déclare sa règle de style !important : <style> p { font-family: arial !important;} </style> z Dans le cas où l'auteur et le lecteur déclarent leur style !important, l'auteur prend de nouveau le dessus z Dans les styles définis par l'auteur, le navigateur va d'abord calculer l'importance de chaque sélecteur selon ce principe : ƒ sélecteur d'éléments (balises) 0 - 0 - 1 ƒ sélecteur de classe 0 - 1 - 0 ƒ sélecteur d'id 1 - 0 - 0
  • 52. 52 © A. Belaïd Cascade et héritage ‹Gestion des conflits z Le poids du sélecteur se calcule de gauche à droite et la valeur de chaque sélecteur s'accumule, voici quelques exemples : ƒ p {...} /* 0-0-1 */ ¾ a un poids moins important que ƒ p.classe1 {...} /* 0-1-1 */ ¾ qui a lui même moins d'importance que ƒ p#id1 {...} /* 1-0-1 */ ƒ div p {...} /* 0-0-2 */ ¾ l'emporte sur ƒ p {...} /* 0-0-1 */ ƒ p.class1#id1 {...} /* 1-1-1 */ ¾ l'emporte sur ƒ div p.class1 {...} /* 0-1-2 */
  • 53. 53 © A. Belaïd Cascade et héritage ‹Gestion des conflits z Ensuite, le navigateur va trier les styles selon leur ordre d'apparition z le principe à retenir est : ƒ Plus un style est déclaré tardivement, plus il aura d'importance z Les styles importés (@import) auront le poids le plus faible z Viennent ensuite : ƒ la feuille de style externe ƒ La feuille de style intégrée ƒ et enfin les styles en ligne
  • 54. 54 © A. Belaïd Cascade et héritage ‹ Gestion des conflits : exemple : conflit.html <html> <head> <title>Untitled</title> <style type="text/css"> p {color: red; font-family: "Comic Sans MS"} p.petitvert {color: green; font-size: 13px; } p#times { font-size:24px; font-family: times } </style> </head> <body> <p>texte rouge avec police "comic sans"</p> <p style="color:blue">texte bleu avec police "comic sans"</p> <p class="petitvert">texte vert avec petite police</p> <p class="petitvert" style="font-size:24px"> texte vert avec grande police</p> <p id="times">texte rouge avec grande police "times"</p> <p class="petitvert" id="times"> texte vert avec grande police "times"</p></body></html>
  • 55. 55 © A. Belaïd Cascade et héritage ‹Gestion des conflits : résultat
  • 56. 56 © A. Belaïd Cascade et héritage ‹ Commentaires z Les quatre premiers paragraphes sont affichés avec la police "Comic Sans" bien qu'elle ne soit spécifiée que pour le premier z Les autres paragraphes héritent en fait des propriétés définies pour le sélecteur <p> bien qu'elles aient chacune un style spécifique tant que ces propriétés n'entrent pas en conflit avec les leurs z La propriété de couleur "rouge" est ainsi écrasée par le style intégré du deuxième paragraphe z Le dernier paragraphe hérite ainsi des propriétés du sélecteur d'élément (<p>), du sélecteur de classe (.petitvert) et du sélecteur d'id (#times) z Les propriétés les plus spécifiques écrasant les autres : ƒ La couleur rouge du sélecteur <p> est écrasée par le vert de la classe .petitvert ƒ La taille de 13px de la classe est écrasée par celle de 24px de l'id #times ƒ Tout comme la police "Comic Sans" est écrasée par la police "times"
  • 57. 57 © A. Belaïd Cascade et héritage ‹ Concept d'héritage z Le concept d'héritage s'applique également entre éléments parents et enfants z Exemple : conflit2.html <html> <head> <title>Héritage</title> <style type="text/css"> body {font-family: arial, sans-serif} div {font-size:1.2em} .rouge {color:red} </style> </head> <body> <p> Ce paragraphe hérite des propriétés de l'élément body : police "arial"</p> <div> <p> Celui-ci hérite des propriétés des éléments body et div : police "arial" et taille 1.2em </p> <p class="rouge"> Ce dernier hérite en plus des propriétés de la classe .rouge</p> </div> </body> </html>
  • 58. 58 © A. Belaïd Cascade et héritage ‹Concept d'héritage z Résultat :