Chapitre 6 CSS
Chapitre 6 CSS
1
HTML, CSS, JAVASCRIPT
Décomposer la conception d’un site web en 3 couches
2
CSS CASCADING STYLES SHEETS
3
INTRODUCTION
▪ Les feuilles de style en cascade CSS (Cascading Style Sheets) est un
langage informatique qui sert à décrire la présentation des
documents HTML, XHTML et XML. Les standards définissant CSS sont
publiés par le W3C (World Wide Web Consortium).
▪ L’un des objectifs majeurs des feuilles de style CSS est de séparer la
structure d’un document de ses styles de présentation.
4
INTRODUCTION
▪ un ensemble de règles qui indiquent au navigateur
▪ comment il doit afficher les différents éléments de la page (design)
▪ comment ces éléments se positionnent les uns par rapport aux autres (layout).
5
HISTORIQUE
1989 HTML 1.0
7
COMMENT AJOUTER CSS À UNE PAGE
HTML?
▪ 3 manières de définir des styles
8
CSS INLINE
▪ Style inline défini directement dans une balise à l'aide d'un attribut style
<html>
<head>
<title>CSS inline</title>
<meta charset="utf-8" />
</head>
<body>
<h1>
l’attribut style
Valeur de l’attribut style
Titre sans style
</h1>
<h1 style="color:blue; background: yellow;padding: 4px;border:solid 3px green;">
Titre avec style
</h1>
<h1> Propriété CSS Valeur • mélange structure et présentation,
Titre sans style • ne s'applique qu'à une seule
</h1> balise
</body>
</html>
9
▪
STYLE INTERNE
Styles définis dans un élément style placé dans l'en tête (head) du document
Propriét
Règle de style é
Valeur
Sélecteur: indique les
éléments concernés par la règle
Style externe.html
Style.css
12
STYLE EXTERNE Une page peut avoir plusieurs feuilles de
style associées avec possibilité d'avoir
des feuilles externes au site
13
Les styles issus des différentes feuilles de style se combinent
PRINCIPE
Il est par exemple possible de ne décrire que la structure d’un document en HTML :
<html>
<head>
<title>Un titre de document</title>
<link rel="stylesheet" type="text/css" href="feuille.css" />
</head>
<body>
<h1>Un titre de niveau 1 (en bleu)</h1>
<p>Un paragraphe (en rouge)</p>
</body>
</html>
La déclaration d'une feuille de style CSS se fait dans l'en-tête (partie <head>) du document
HTML avec la balise <link>.
14
PRINCIPE
On décrire toute la présentation dans une feuille de style CSS séparée :
15
SYNTAXE CSS
▪ Un jeu de règles (qualifié aussi de "règle") se compose d’un sélecteur suivi par un
bloc de déclaration délimité par des accolades ({}).
▪ Une déclaration est constituée d’une propriété, suivie du caractère deux-points (:) puis
d’une valeur.
Les multiples déclarations qui se rapportent à un même sélecteur sont séparées par des points-
virgules ( ;).
• sélecteur : identifie les éléments HTML de la page web auxquels la règle de style est appliqué
• propriété : désigne au navigateur ce qu'il faut modifier 16
• valeur : désigne au navigateur le changement à effectuer
LES DIFFÉRENTS TYPES DE SÉLECTEURS
sélecteur { propriété: valeur ; … }
Les sélecteurs sont utilisé pour sélectionner (trouver) les éléments HTML que l'on veut styler
• Les sélecteurs peuvent être regroupé selon 5 catégories
▪ Sélecteurs simples
sélectionnent des éléments selon leur type, leur id ou leur classe
▪ Sélecteurs combinés
sélectionnent des éléments selon leur situation dans l'arbre défini par l'imbrication des éléments
▪ Sélecteurs de pseudo-classe
sélectionnent des éléments en fonction de l'état dans lequel ils se trouvent
▪ Sélecteurs de pseudo-élément
sélectionnent et stylent une partie d'un élément
▪ Sélecteurs d'attributs
sélectionnent un élément selon la présence ou la valeur d'un attribut
17
SÉLECTEURS SIMPLES forme générale
balise { déclaration; ... }
Sélecteur de balise (ou d'éléments) style s'appliquant à tous
les éléments correspondant à une balise HTML donnée
Le style s'applique à
tous les éléments de
type h2
18
SÉLECTEUR SIMPLE forme générale
.nomDeClass { déclaration; ... }
Sélecteur de classe style nommé pouvant être associé à
n'importe quel élément à l'aide d'un attribut class
20
SÉLECTEUR SIMPLE forme générale
.nomDeClass { déclaration; ... }
Sélecteur de classe style nommé pouvant être associé à
n'importe quel élément à l'aide d'un attribut class
possibilité de restreindre une classe à un type d'élément. Le nom de la classe est préfixé par le nom de la
balise
23
LIMITES DES SÉLECTEURS SIMPLE
▪ problème : comment associer un style à des éléments en fonction de leur situation dans
l'arborescence ?
ex : particulariser les liens hypertexte de division de
navigation(par exemple leur donner une couleur de
fond vert clair)
24
LIMITES DES SÉLECTEURS SIMPLE
▪ problème : comment associer un style à des éléments en fonction de leur situation dans
l'arborescence ?
ex : particulariser les liens hypertexte de division de Avec les style simple
navigation(par exemple leur donner une couleur de 1-Définir une classe pour ces liens
fond vert clair)
25
LES DIFFÉRENTS TYPES DE SÉLECTEURS
sélecteur { propriété: valeur ; … }
Les sélecteurs sont utilisé pour sélectionner (trouver) les éléments HTML que l'on veut styler
• Les sélecteurs peuvent être regroupé selon 5 catégories
▪ Sélecteurs simples
sélectionnent des éléments selon leur type, leur id ou leur classe
▪ Sélecteurs combinés
sélectionnent des éléments selon leur situation dans l'arbre défini par l'imbrication des éléments
▪ Sélecteurs de pseudo-classe
sélectionnent des éléments en fonction de l'état dans lequel ils se trouvent
▪ Sélecteurs de pseudo-élément
sélectionnent et stylent une partie d'un élément
▪ Sélecteurs d'attributs
sélectionnent un élément selon la présence ou la valeur d'un attribut
26
SÉLECTEURS COMBINÉS Relation enfant de (child) :
▪ rappel : arbre des éléments et relations entre éléments
<div> p est enfant de div
<h1>titre</h1> em est enfant de p
<h2>un sous titre</h2>
<p>un paragraphe avec Relation descendant de :
<em>des mots importants</em> un nœud x est descendant d'un nœud y si x est enfant de y ou
pour terminer avec une image est enfant d'un enfant de y
<img src="logo.gif" alt="un logo">.
p est descendant de div
</p>
<h3>titre niveau 3</h3> em est descendant de p et div
</div>
Relation 1er frère suivant (adjacent sibling) :
div
p est le 1er frère suivant de h2
h1 div Nœud racine
img est le 1er frère suivant de em
h2
Faciliter d’utilisation
29
SÉLECTEURS COMBINÉS
Possibilité de combiner des sélecteurs descendants
sélecteur1 sélecteur2 … sélecteur n { déclaration ; … }
s'applique à tout élément désigné par sélecteurn qui descend (directement ou indirectement) d'un élément
désigné par sélecteurn-1 … qui descend d'un élément désigné par sélecteur2 qui descend d'un élément désigné
par sélecteur1
30
SÉLECTEURS COMBINÉS
Sélecteur de nœuds enfants
sélecteur1 > sélecteur2 { déclaration ; déclaration }
s'applique à tout élément désigné par sélecteur2 dont le parent direct est un élément désigné par sélecteur1
31
SÉLECTEURS COMBINÉS
Sélecteur de nœuds enfants
sélecteur1 > sélecteur2 { déclaration ; déclaration }
s'applique à tout élément désigné par sélecteur2 dont le parent direct est un élément désigné par sélecteur1
32
SÉLECTEURS COMBINÉS
Combinaisons de sélecteurs sélecteur descendant Enfant
Comment je peut
colorée le fond
33
SÉLECTEURS COMBINÉS
Combinaisons de sélecteurs sélecteur descendant Enfant
sélecteur
descendant
Comment je peut
colorée le fond
Enfant 34
SÉLECTEURS COMBINÉS
Sélecteur de nœuds adjacents
35
SÉLECTEURS COMBINÉS
Sélecteur de nœuds frère
36
LES DIFFÉRENTS TYPES DE SÉLECTEURS
sélecteur { propriété: valeur ; … }
Les sélecteurs sont utilisé pour sélectionner (trouver) les éléments HTML que l'on veut styler
• Les sélecteurs peuvent être regroupé selon 5 catégories
▪ Sélecteurs simples
sélectionnent des éléments selon leur type, leur id ou leur classe
▪ Sélecteurs combinés
sélectionnent des éléments selon leur situation dans l'arbre défini par l'imbrication des éléments
▪ Sélecteurs de pseudo-classe
sélectionnent des éléments en fonction de l'état dans lequel ils se trouvent
▪ Sélecteurs de pseudo-élément
sélectionnent et stylent une partie d'un élément
▪ Sélecteurs d'attributs
sélectionnent un élément selon la présence ou la valeur d'un attribut
37
SÉLECTEURS DE PSEUDO-CLASSES
portent sur des éléments existants dans le code source du document et auxquels on peut accéder
par des caractéristiques autres que leur nom, attribut ou contenu.
sélecteur : pseudo-classe{ déclaration ; déclaration }
38
LES DIFFÉRENTS TYPES DE SÉLECTEURS
sélecteur { propriété: valeur ; … }
Les sélecteurs sont utilisé pour sélectionner (trouver) les éléments HTML que l'on veut styler
• Les sélecteurs peuvent être regroupé selon 5 catégories
▪ Sélecteurs simples
sélectionnent des éléments selon leur type, leur id ou leur classe
▪ Sélecteurs combinés
sélectionnent des éléments selon leur situation dans l'arbre défini par l'imbrication des éléments
▪ Sélecteurs de pseudo-classe
sélectionnent des éléments en fonction de l'état dans lequel ils se trouvent
▪ Sélecteurs de pseudo-élément
sélectionnent et stylent une partie d'un élément
▪ Sélecteurs d'attributs
sélectionnent un élément selon la présence ou la valeur d'un attribut
39
SÉLECTEURS DE PSEUDO-ELEMENTS
permettent de donner un style à un contenu n’apparaissant pas dans le code source du document
comme étant un élément.
sélecteur : : pseudoElt{ déclaration ; déclaration }
Examples
• ::first-line
• ::first-letter
• ::before
• ::after
• ::selection
• …
40
LES DIFFÉRENTS TYPES DE SÉLECTEURS
sélecteur { propriété: valeur ; … }
Les sélecteurs sont utilisé pour sélectionner (trouver) les éléments HTML que l'on veut styler
• Les sélecteurs peuvent être regroupé selon 5 catégories
▪ Sélecteurs simples
sélectionnent des éléments selon leur type, leur id ou leur classe
▪ Sélecteurs combinés
sélectionnent des éléments selon leur situation dans l'arbre défini par l'imbrication des éléments
▪ Sélecteurs de pseudo-classe
sélectionnent des éléments en fonction de l'état dans lequel ils se trouvent
▪ Sélecteurs de pseudo-élément
sélectionnent et stylent une partie d'un élément
▪ Sélecteurs d'attributs
sélectionnent un élément selon la présence ou la valeur d'un attribut
41
SÉLECTEURS D’ATTRIBUT
Permettent de cibler un élément selon la présence d'un attribut ou selon la valeur donnée d'un
attribut
42
SÉLECTEUR UNIVERSEL
Sélecteur universel (*) sélectionne tous les éléments de la page
43
PROPAGATION DES STYLES DANS L’ARBRE
DES ÉLÉMENTS body racine
h1 h2 p h3 Classe div1
div p
44
PROPAGATION DES STYLES DANS L’ARBRE
DES ÉLÉMENTS body racine
h1 h2 p h3 Classe div1
div p Classe p1
45
CONFLIT CSS
Que se passe-t-il si plusieurs règles de style rentrent en conflit
(concernent une même propriété) ?
• 1er cas : une même classe CSS définit 2 fois avec une propriété en conflit
46
CONFLIT CSS
Que se passe-t-il si plusieurs règles de style rentrent en conflit
(concernent une même propriété) ?
• 1er cas : une même classe CSS définit 2 fois avec une propriété en conflit
Quand tout est égal (même sélecteur, même propriété)
la dernière déclaration écrase les précédentes
Les conflits sont résolus propriété par propriété
• La déclaration border: solid 1px red de la 1 ère règle est conservée
• La déclaration color: red de la 1ère règle est remplacée celle de la 2ème règle
47
CONFLIT CSS
2ème cas : deux classes CSS différentes avec une propriété en conflit
48
CONFLIT CSS
• 3ème cas : conflit entre plusieurs classes
49
LES RÈGLES DE STYLES
calcul de la spécificité d'une règle se style
Le sélecteur de classe .titre est plus spécifique que le sélecteur de
balise (tag). La propriété color de cette règle écrase celle de la
1 règle h1.
50
LES RÈGLES DE STYLES
calcul de la spécificité d'une règle se style
51
LES RÈGLES DE STYLES
calcul de la spécificité d'une règle se style
20
Spécificité de .titre = 10 (.titre classe)
10
Spécificité de h1.titre = Spécificité de .titre = 10 (.titre classe) 1 (h1 tag) + 10
(.titre classe)
52
LES RÈGLES DE STYLES
calcul de la spécificité d'une règle se style
53
LES RÈGLES DE STYLES
calcul de la spécificité d'une règle se style
100 Une propriété avec !important est plus spécifique que toutes les
autres
11
1000
10
54
PRIORITÉ DES RÈGLES
Si deux règles de style pouvant s'appliquer à un élément ont des déclarations
contradictoires, celles de la deuxième (dernière règle rencontrée) remplacent celles de
la première (la précédente) sauf si la première a un degré de priorité (c.a.d. de
spécificité) supérieur à la deuxième
contenu
56
LES DIMENSIONS DES BOITES
La taille du contenu, le cadre et la marge externe d'une boîte peuvent
être contrôlés par des propriétés CSS.
Contenu Marge interne bordure Marge externe
Largeur et épaisseur Type, épaisseur épaisseur
hauteur et couleur
padding margin
Border-style
Width Border-width
height Border-color
Marge externe
bordure Border-width-top
Marge interne
57
LES DIMENSIONS DES BOITES
• dimensions d'une boîte induites par son contenu + trois périmètres (margin, border ,
padding).
• margin, border, padding pas obligatoires
• valeurs par défaut
• 0 pour éléments en ligne et
• border = 0, margin et padding dépendent du navigateur pour les éléments bloc
-> fixer dans les feuilles de style CSS pour rendu indépendant du navigateur
Marge externe
bordure Border-width-top
Marge interne
58
LES DIMENSIONS DES BOITES
Margin-top
Border-top
Padding-top
Padding-bottom
Border-bottom
Margin-bottom
59
STYLE DES BORDURES
• Bordures et arrière plan
• Possibilité d'entourer les éléments et de les doter d'un
arrière-plan (couleur, image)
• Propriétés
• border-style style applicable à tous les
• border-width épaisseur bords ou de chaque
côté
• border-color couleur
• background-color couleur arrière plan
• background-image image d'arrière plan
60
STYLE DES BORDURES
• border-style: <val> tous les côtés
• border-style
• border-style: <val1> <val2>
Dotted
• <val1> côtés horizontaux
Dashed
• <val2> côtés verticaux
Double
• border-style: <val1> <val2> <val3>
Groove • <val1> côté horizontal haut
Valeurs possibles
hidden • <val2> côtés verticaux
Inset • <val3> côté horizontal bas
none • possibilité de spécifier chaque côté
outset • border-left-style
• border-right-style
Ridge
• border-top-style
Solid • border-bottom-style 61
STYLE DES BORDURES
• border-width
• valeur numérique ex: border-width:5px (5 pixels)
• mots clés thin meduim thick
• border-color
• valeur numérique
• hexadécimale : #00ffff ou #0ff
• rgb : rgb(0,255,255) ou rgb(0,100%,100%)
• mot clé : cyan
62