79
1 Chapitre 3 : CSS : Cascading Style Sheets

Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

1

Chapitre 3 :

CSS : Cascading Style Sheets

Page 2: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

2

CSS

CSS : c’est l’abréviation de Cascading Style

Sheets("Feuille de style en cascade").

Ce langage nous sert uniquement à présenter la

page web.

Grâce à ce langage, nous allons pouvoir créer

rapidement et simplement la mise en page du

site.

HTML pour écrire le contenu de nos pages web.

CSS pour présenter ce contenu.

Ces 2 langages sont donc complémentaires.

Page 3: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

3

Principe des CSS

• Le design d'un site évolue toujours au fil du temps.

• Le problème, lorsqu'on n'utilise pas de feuilles de style,

c'est qu'il faut reprendre toutes les pages une à une pour

modifier une police de caractère ou une couleur de fond.

• Avec les "Cascading Style Sheets" (CSS), ce lourd

handicap est résolu.

• C'est dans la feuille de style que l'on va déclarer toute la

mise en forme des pages : la couleur de fond, les polices

de caractère, leurs couleurs, etc.

Celle-ci sera liée à chaque page html.

• Ainsi, lorsqu'on en modifiera un élément, cela se

répercutera immédiatement sur toutes les pages web.

Page 4: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

4

Principe des CSS

Page 5: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

5

Format CSS

• On écrit le code CSS dans un fichier à part (à

l’extension .css au lieu de .html).

• C’est un fichier dans lequel on écrit l’apparence

que notre site doit avoir :

la couleur et la police du texte, la taille des titres, la

position des menus, la couleur ou l’image de fond

etc…

Page 6: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

6

<link rel="stylesheet" type="text/css"href="design.css" />

Appel d’un fichier .css

<!DOCTYPE html>

<html >

<head>

<title>Exemple d’utilisation de CSS externe</title>

<metahttp-equiv="Content-Type" content="text/html;

charset=iso-8859-1" />

</head>

<body>

</body>

</html>

Page 7: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

7

<link rel="stylesheet" type="text/css“ href="design.css" />

La balise <Link> avertit le navigateur qu’il doit chercher

un document situé à l’extérieur de la page HTML.

L’attribut rel="stylesheet"précise que le document en

question est une feuille de style externe.

L’attribut type="text/css" précise le type de feuille de

style.

L'attribut href indique l’emplacement du fichier CSS à

utiliser.

Appel d’un fichier .css

Page 8: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

8

Directement dans le header du fichier HTML

Il est aussi possible de taper du CSS directement à l’intérieur même du fichier

HTML, entre les balises <head> </head>.

Vous devrez y mettre une balise <style> </style>à l’intérieur, comme ceci :

<!DOCTYPEhtml PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

<head>

<title>Exemple de CSS dans le header</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<style type="text/css">

/* Vous taperez votre code CSS ici */

</style>

</head>

<body>

</body>

</html>

Page 9: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

9

Appliquer un style à des balises (dans un fichier

CSS)

Dans un CSS, on trouve 3 éléments différents :

Des noms de balises : on écrit les noms des balises dont on veut

modifier l’apparence.

Par exemple, si je veux modifier l’apparence de tous les titres <h1>,

je dois écrire h1.

Des propriétés CSS : les "effets de style" de la page sont rangés

dans des propriétés.

Il y a par exemple la propriétécolor qui permet d'indiquer la couleur

du texte, font-size qui permet d'indiquer la taille du texte etc...

Les valeurs :à chaque propriété CSS on doit indiquer une valeur.

Par exemple, pour la couleur, il faut indiquer le nom de la couleur.

Pour la taille, il faut indiquer quelle taille on veut etc etc...

Page 10: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

10

Exemple CSS

Supposons par exemple que je veuille modifier tous mes

paragraphes pour qu'ils soient écrits en bleu, avec une

taille de 18 pixels.

Je sais que tous les textes de mes paragraphes sont entre des balises <p> </p>, je vais donc écrire le code CSS suivant :

p {

color: blue; font-size: 18px;

}

Page 11: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

11

Appliquer un style à plusieurs balises

h1 {

color:red;

}

h2 {

color:red;

}

h1, h2 {

color:red;

}

Page 12: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

12

Des commentaires dans du CSS

Pour faire un commentaire, vous tapez /*, suivi de

votre commentaire, puis */ pour terminer votre

commentaire.

p {

color:blue; /* Les paragraphes seront bleus*/

font-size:18px; /* La taille de 18 pixels me semble

pas mal*/

}

Page 13: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

13

Utiliser les classes

Les class vous permettent de définir un style personnalisé.

Exemple: Supposons que vous vouliez définir un style appelé"important" pour écrire le texte en rouge / 18 pixels. Vous rajouterez l'attribut class="important"à chacune des balises que vous voulez modifier.

<h1 class=" "> </h1>

<p class=" "></p> paragraphe <img class=" " /> image

titre

Page 14: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

14

Utiliser les classes

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

<head>

<title>Page d'exemple pour tester le CSS</title>

<metahttp-equiv="Content-Type" content="text/html"; charset=iso-8859-1" />

<link rel="stylesheet"type="text/css" href="essai.css" />

</head>

<body> <p class="important"> Bonjour tout le monde </p>

</body>

</html> Fichier CSS :

.important

{ color:red;

font-size:18px; }

Page 15: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

15

L'attribut id

Il fonctionne exactement de la même manière que class, à un

détail prêt :

il ne peut être utilisé qu’une fois.

En pratique, nous ne mettrons des "id"que sur des éléments qui

sont uniques sur votre page, comme par exemple le logo : <img

src="images/logo.png"id="logo" /> Dans le CSS, ce n'est pas un

point que vous devez mettre avant le nom de l'id, mais un dièse

(#) :

#logo {

/* Mettez les propriétés CSS ici */

}

Page 16: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

16

Les balises universelles

Appliquer une class (ou un id) à certains mots qui ne sont pas

entourés par des balises.

Exemple: modifier uniquement “grand père” dans le

paragraphe suivant :

<p>Comme l’a dit grand père un certain 20 juillet 1969...</p>

<span> </span> : c'est une balise de type inline, c'est une

balise qui se met à l'intérieur d'un paragraphe, comme <strong>,

<em>, <q>.

<div> </div> : c'est une balise de type block. Comme <p>,

<h1> etc... Elle crée un nouveau "bloc" dans la page, et

provoque donc obligatoirement un retour à la ligne.

inline

block

Page 17: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

17

Exemple

Code HTML:

<p>Comme l'a dit <span class="nom">Neil

Armstrong</span>un certain

20 juillet 1969...</p>

Code CSS :

.nom {

color:blue;

}

Donc pour définir un style applicable seulement à une

partie de la page et non plus à une balise <HTML> précise,

vous pouvez placer un attribut style dans une balise <DIV>

(division) ou <SPAN> ( fusion).

Ces balises définissent une zone de texte donnée, donc

tout ce qui se trouve entre la balise de début et la balise de

fin adopte le style défini.

Page 18: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

18

Imbrications de balises

Définir un style uniquement pour les balises <em>

qui se trouvent à l'intérieurd’un titre <h3>.

h3 em

{

color: blue;

}

Page 19: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

19

Taille du texte

En pixels : c'est une façon très précise d'indiquer la taille du texte.

p

{ font-size:14px; /* Paragraphes de 14 pixels */ }

h1

{ font-size:22px; /* Titres de 22 pixels */ }

En pourcentage :

Si vous indiquez "100%", le texte aura une taille "normale".

Si vous mettez "130%", le texte aura une taille

correspondant à 130% de la taille normale.

Page 20: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

20

Taille du texte

En donnant une valeur

relative :

xx-small :minuscule

x-small :très petit

small :petit

medium :moyen

large :grand

x-large :très grand

xx-large : plus grand que le

x-large

En em : c’est une autre façon d’indiquer

de manière relative la taille du texte.

On doit indiquer la taille du texte par

rapport à la taille normale de la police.

"1em" signifie "Taille normale".

.petit_em {

font-size:0.7em;

}

.grand_em {

font-size:1.3em;

}

Page 21: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

21

Polices

La propriété CSS qui permet d'indiquer la police est :

font-family

Vous devez indiquer le nom de la police comme ceci :

font-family:police;

Pour éviter qu'il n'y ait de problème si l'internaute n'a pas

la même police que vous, on met en général plusieurs

noms de police, séparés par des virgules :

font-family:police1, police2, police3, police4;

Le navigateur essaiera d'abord de mettre la police1.

S'il ne l'a pas, il essaiera de mettre la police2. S'il ne l'a

pas, il essaiera la police3 et ainsi de suite.

Page 22: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

22

Polices

Voici une liste de polices qui fonctionnent bien sur la plupart

des navigateurs :

Arial

Arial Black

Comic Sans MS

Courier New

Georgia

Impact

Times New Roman

Trebuchet MS

Verdana

Page 23: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

23

Exemple

h1 {

font-family:"Arial Black", Arial, Verdana, serif;/* On

essaie d'avoir Arial Black en priorité */

}

p {

font-family:"Comic Sans MS", "Trebuchet MS", Georgia,

serif;

}

Page 24: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

24

Alignement simple

On utilise la propriété text-align, et on indique

l’alignement désiré :

left :le texte sera aligné à gauche (c'est le réglage par

défaut).

center: le texte sera centré.

right: le texte sera aligné à droite.

justify: le texte sera "justifié".

Exemple :

.signature

{ text-align:right;/* Pour aligner à droite ma signature */ font-family: "Comic Sans MS", Georgia, "Times New Roman", serif; font-size: 80%;

}

Page 25: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

25

L'indentation: la mise en retrait du texte

Cela permet par exemple de faire commencer un

paragraphe un peu plus à droite.

On utilise la propriété text-indent

On doit indiquer quelle est la taille du retrait : on peut le

faire en pixels, en centimètres, en millimètres...

p {

text-indent: 30px; /* Les paragraphes commenceront 30

pixels sur la droite */ text-align: justify; /* Ils seront justifiés

*/ font-size: large;

}

Page 26: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

26

Effets de style

Mettre en italique :

h2 {

font-style: italic;/* Les titres h2 seront en

italique ! */

}

Mettre en gras :

p {

font-weight: bold;

}

Page 27: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

27

Les majuscules en CSS

La propriété text-transform. Elle peut prendre ces valeurs :

uppercase :tout le texte sera écrit en majuscules.

lowercase :tout le texte sera en minuscules.

capitalize :la première lettre de chaque mot sera en

majuscules.

none :pas de transformation (par défaut).

h1

{

text-align:center; font-family:Arial, "Times New Roman", Verdana, serif; text-transform: capitalize; /* Les premières lettres des mots du titre seront en majuscules */

}

Page 28: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

28

La décoration

La propriété text-decoration

underline :souligné.

line-through :barré.

overline :ligne au-dessus.

blink :clignotant. Attention, cette propriété ne marche

pas sous Internet Explorer. Elle fonctionne en revanche

bien sur tous les autres navigateurs, dont Mozilla Firefox.

none :normal (par défaut).

Page 29: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

29

text-decoration: line-through;

}

.ligne_dessus {

text-decoration: overline;

}

La décoration

<h1>A ne pas manquer !</h1>

<p>La propriété CSS <em>text-decoration</em>

permet de décorer un peu son texte :<br /> <span

class="souligne">en le soulignant</span>...<br />

<span class="barre">en le barrant</span>...<br

/> ...ou encore <span class="ligne_dessus">en

mettant une ligne au-dessus</span>.</p>

Code HTML

Code CSS

h1 {

text-align: center;

font-family:"Arial Black", Arial, "Times New Roman", serif;

text-decoration: blink; }

.souligne

{

text-decoration: underline; }

.barre {

Page 30: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

30

Les couleurs

La propriété qui permet de changer la

couleur du texte est color.

16 couleurs que vous pouvez utiliser en

tapant simplement leur nom :

Page 31: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

31

Exemple

h1 {

text-align:center; font-family:Arial, "Arial Black", "Times New Roman", serif; text-decoration: underline; color: green;/* Le titre en vert */

}

p {

text-indent: 20px; color: blue;/* Les paragraphes en bleu */

}

strong /* ... et les mots importants en rouge clignotant ! */ {

color: red; text-decoration: blink;

}

Page 32: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

32

La notation hexadécimale

• Un nom de couleur en hexadécimal, c’est une combinaison de

lettres et de chiffres qui indiquent une couleur.

• On doit toujours commencer par écrire un dièse (#), suivi de 6

lettres ou chiffres allant de 0 à 9 et de A à F.

• Ces lettres ou chiffres fonctionnent deux par deux. Les 2

premiers indiquent une quantité de rouge, les 2 suivants une

quantité de vert, et les 2 derniers une quantité de bleu.

• En mélangeant ces quantités (qui sont les composantes Rouge-

Vert-Bleu de la couleur) on peut obtenir la couleur qu’on veut.

Page 33: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

33

La notation hexadécimale

Page 34: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

34

La méthode RGB (Red-Green-Blue) • On doit définir une quantité de rouge, de vert et de bleu pour

choisir une couleur.

• Utiliser la palette des couleurs.

•Dans la zone qui apparaît à droite, faites bouger les curseurs

pour sélectionner la couleur qui vous intéresse.

On relève les quantités de Rouge-

Vert-Bleu correspondantes indiquées

en bas à droite de la fenêtre (ici243-

65-243). Je recopie ces valeurs

dans cet ordre dans le fichier CSS,

comme ceci :

h1 {

text-align:center;

color:rgb(243,65,243); }

Page 35: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

35

Le fond

• Le fond ne désigne pas forcément le fond de toute une page

web.

• On peut aussi appliquer un fond uniquement aux titres, ou aux

paragraphes, ou encore à certains mots d’un paragraphe.

• Il existe 2 types de fonds :

• Les fonds comportant une couleur.

• Les fonds comportant une image de fond.

Page 36: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

36

La couleur de fond

• Pour indiquer une couleur de fond, on utilise la propriété CSS

background-color.Vous pouvez taper le nom d'une couleur, l'écrire

en notation hexadécimale ou encore utiliser la méthode RGB.

• Pour indiquer la couleur de fond de la page web, il faut travailler sur

la balise <body> qui correspond à toute la page web.

body {

background-color : black;

color:white;

}

• Si on applique une couleur de fond noire et une couleur de texte blanche à la balise <body>, tous les titres et paragraphes auront eux aussi une couleur de fond noire et un texte de couleur blanche.

Page 37: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

37

Exemple

body { background-color: black; color: white; /* Toutes les balises contenues dans body verront leur texte coloré en blanc... */

} h1 {

color: red; /* ... sauf si je demande expressément de

changer la couleur par la suite */

} .surligne /* Un style qui permet par exemple de surligner certains mots d'un texte */ { background-color:yellow; color: black; /* Le texte surligné sera écrit en noir*/

}

Page 38: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

38

L'image de fond

• La propriété permettant d'indiquer une image de fond est

background-image

•Comme valeur, on doit lui mettre url("nom_image.png")

• Votre fond n'est pas forcément en PNG, il peut aussi être

en JPEG ou en GIF.

• L'adresse indiquant où se trouve l'image de fond peut

être en absolu (http://...) ou en relatif (fond.png).

• Si on veut appliquer une image de fond à toute la page,

on doit utiliser la balise <body>

body {

background-image:url("../images/neige.png");

}

Page 39: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

39

Effets sur les liens

a {

text-decoration: none;/* Les liens ne seront plus

soulignés */ color:red;/* Les liens seront en rouge au lieu

de bleu */ font-style:italic;/* Les liens seront en italique */

}

Page 40: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

40

Les pseudo-formats

Au passage de la souris :

a:hover {

}

"a:hover" signifie : "Quand la souris est sur le lien" (quand on

pointe dessus).

a { text-decoration: none; /* Les liens ne seront plus soulignés */ color: red;/* Les liens seront en rouge au lieu de bleu */ font-style:italic;/* Les liens seront en italique */

} a:hover /* Quand le visiteur pointe sur le lien */ { text-decoration: underline; /* Le lien deviendra souligné quand on pointera dessus */ color: green;/* Le lien sera écrit en vert quand on pointera dessus */

}

Page 41: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

41

Les pseudo-formats

p:hover /* Quand on pointe sur un paragraphe */ {

background-color: #CFE1EB; /* Le fond du

paragraphe change de couleur */ text-indent: 20px;

}

Page 42: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

42

Au moment du clic

• Le pseudo-format :active permet d’appliquer un style

particulier au moment du clic.

• Le lien gardera cette apparence très peu de temps : juste

pendant que vous cliquez avec le bouton de la souris.

a:active /* Quand le visiteur clique sur le lien */ { background-color: #FFCC66; } a:hover /* Quand le visiteur pointe sur le lien */ { text-decoration:underline; color:green; } a /* Lien normal */ { text-decoration:none; color:red; font-style:italic; }

Page 43: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

43

Première lettre et première ligne

En CSS, il est possible de modifier automatiquement

l’apparence de la première lettre et de la première ligne

du texte contenu dans une balise.

La première lettre

p:first-letter /* La première lettre de chaque paragraphe

*/ {

font-weight:bold;/* En gras */ font-size:1.2em;/* Ecrit

légèrement plus gros que la normale */ color:blue;/* En

bleu */

}

p {

text-indent:20px;

}

Page 44: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

44

Première lettre et première ligne

La première ligne

p:first-line /* La première ligne de chaque paragraphe

*/ {

font-variant: small-caps; /* En petites capitales */

}

p {

text-indent: 20px;

}

Page 45: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

45

Retrait des listes

La propriété list-style-position permet d'indiquer si on

veut que la liste soit mise en retrait ou non.

list-style-position peut prendre 2 valeurs :

inside : la liste n'est pas mise en retrait.

outside : la liste est mise en retrait (par défaut).

Page 46: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

46

Exemple

.pas_de_retrait {

list-style-position:inside;

}

.retrait {

list-style-position:

outside;

}

Page 47: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

47

Représentation de la puce

La propriété list-style-type vous permet de changer

l’apparence de la puce.

Pour les listes non ordonnées (<ul>):

disc : un disque noir (par défaut).

circle : un cercle.

square : un carré.

none :aucune puce ne sera utilisée.

Page 48: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

48

Représentation de la puce

Pour les listes ordonnées (<ol>) :

decimal :des nombres 1, 2, 3, 4, 5... (par défaut)

decimal-leading-zero :des nombres commençant par zéro (01, 02, 03, 04,

05...). Ne fonctionne pas sur Internet Explorer

upper-roman :numérotation romaine, en majuscules (I, II, III, IV, V...)

lower-roman :numérotation romaine, en minuscules (i, ii, iii, iv, v...)

upper-alpha :numérotation alphabétique, en majuscules (A, B, C, D, E...)

lower-alpha : numérotation alphabétique, en minuscules (a, b, c, d, e...)

lower-greek :numérotation grecque. Ne fonctionne pas sur Internet

Explorer

Page 49: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

49

Changer l’image de la puce

La propriété list-style-image vous permet d'utiliser

n'importe quelle image à la place d’une puce.

ul {

list-style-image: url (image.png);

}

Page 50: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

50

Dimensionnement et positionnement

Tout élément CSS se comporte comme une imbrication successive

de 4 boîtes :

• La boîte externe est l’aire de marges. Elle occupe l’espace

transparent entre le bord de l’écran (ou d’un autre élément) et

l’élément actif. Gérée par la propriété margin.

• À l’intérieur de l’aire de marges se trouve l’aire de bordures.

Gérée par la propriété border, elle représente les bordures

affectées à l’élément actif.

• Ensuite, l’aire d’espacement : la surface entre le contenu et la

limite intérieure de la bordure. Elle est gérée par la propriété

padding.

• Enfin, la boîte la plus intérieure est la boîte de contenu. Elle

renferme le contenu de l’élément actif.

Page 51: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

51

Dimensionnement et positionnement

Page 52: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

52

Dimensionnement et positionnement

Page 53: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

53

Dimensionnement et positionnement

p.un

{

padding:10px;

border:1px solid red;

}

<body>

<p class="un">

padding:10px;

border:1px solid red;

</p>

</body>

Exemple

Page 54: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

54

Dimensionnement et positionnement

Exemples

Page 55: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

55

Dimensionnement et positionnement

• Flux : ordre d’affichage des éléments

• Un bloc peut être positionné de façon normale, relative,

absolue, fixe ou flottante.

• Position normale : Lorsque sa position n’est pas précisée, un

bloc se place dans le flux normal de la page web.

• Position relative, absolue ou fixe : Il est possible de placer un

élément en indiquant un décalage (en haut, en bas, à gauche, à

droite)

• par rapport à sa position dans le flux normal : c’est la

«position relative» (propriété position: relative;) ;

• par rapport au bloc conteneur : c’est la «position absolue»

(propriété position: absolute;) ;

• par rapport à l’écran : c’est la « position fixe » (propriété

position: fixed;).

Page 56: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

56

Dimensionnement et positionnement

Dans chacun de ces trois cas, il faut indiquer un ou deux

décalage(s) :

• un décalage à partir du haut (par exemple : top:

2px;) ou du bas (par exemple : bottom: 10%;) ;

• un décalage à partir de la gauche (par exemple : left:

5em;) ou de la droite (par exemple : right: 10ex;).

• Position flottante : Un élément peut être déclaré « flottant » à

gauche ou à droite, avec la propriété float qui s’écrit espectivement

: float: left; ou float: right;

Le bloc est placé le plus à gauche ou le plus à droite possible, tout

en gardant sa position verticale dans la boîte de son conteneur.

Page 57: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

57

Positionnement relatif

1) l'élément prend sa place dans le flux courant

2) on le décale avec les propriétés top, right, bottom, left

Remarques : permet des superpositions – attention !

l'élément reste dépendant des éléments frères.

p#second {

position: relative

left: 20px;

bottom: 15px;

margin-top=0;

margin-left: 3em

width: 150px;

height: 50px;

background: green;

}

p#premier {

margin-bottom: 0;

margin-top: 0px;

margin-left: 3em;

width:100px;

background: orange;

}

20px

15px

Dimensionnement et positionnement

Page 58: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

58

Positionnement absolu

L'élément sort du flux, il se place par rapport au premier ancêtre

positionné (en relatif, absolu ou fixe)

p#second {

position: absolute;

top: 0;

right: 0;

width: 150px;

height: 50px;

background: green;

} p#premier {

width:100px;

background: orange;

}

div {

position: relative;

width: 300px

height: 200px

background: yellow;

}

Dimensionnement et positionnement

Page 59: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

59

Positionnement fixe

Cas particulier du positionnement absolu : l'élément ne se déplace

pas lors du défilement (pas pris en charge par I.E. 6)

La profondeur

Par défaut, en cas de superposition, le dernier élément positionné

s'affiche par-dessus les autres avec z-index => c'est celui qui a le plus

grand z-index s'affiche par-dessus les autres

p#premier{

position: absolute;

top: 0;

left: 0;

z-index:10;

width: 100px;

background: #ccc;

}

p#second{

position: absolute;

top: 40px;

left: 50px;

z-index:0;

width: 150px;

background: green;

}

Dimensionnement et positionnement

Page 60: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

60

Positionnement flottant

L'élément sort du flux normal pour prendre place à droite ou à

gauche du bloc qui le contient. L'élément suivant occupe l'espace libre en

épousant sa forme.

p#premier {

float: right;

width: 100px;

background: orange;

}

p#second {

background: green;

}

div {

width:300px;

background:

yellow;

}

1 2

Dimensionnement et positionnement

Page 61: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

61

Dimensionnement et positionnement

Page 62: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

62

Mise en page

• Outre les bloc div, HTML5 propose d’autres blocs :

‣ header

‣ footer

‣ article

‣ nav

‣ section

‣ figure

• Par défaut un bloc prend toute la largeur possible

Page 63: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

63

Mise en page

Exemple 1 :

<header>...texte de l'en-tête...</header>

<article>

<aside>

<nav> <a href="lien1.php">lien1</a>

<a href="lien2.php">lien2</a>

<a href="lien3.php">lien3</a>

<a href="lien4.php">lien4</a>

<a href="lien5.php">lien5</a>

</nav>

</aside>

....contenu du corps de page...

</article>

<footer>...contenu du pied de page...</footer>

Page 64: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

64

Mise en page

Le style css :

article, aside, header, footer, nav {

display: block;

}

body header {

width:600px;

height:50px;

background-color:hotpink;

}

body article {

width:600px;

height:400px;

background-color:aquamarine;

}

Page 65: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

65

Mise en page

body footer {

width:600px;

height:50px;

background-color:yellow;

}

article aside {

width:200px;

height:400px;

background-color:lightgreen;

float: left;

padding: 2px;

}

article aside nav a {

display: block;

}

article aside nav a:hover {

background-color: white;

}

Page 66: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

66

Mise en page

Exemple 2 :

<header id="bandeau"> <h1>Un site web</h1>

<h2>Artiste du Web (!)</h2> </header>

<div id="content">

<div id="centre">

<p>Envie d'un site qui change?…</p>

<figure id="gallery"> <img src="slide5.jpg" />

<figcaption>Un travail de jeunesse</figcaption> </figure>

<section id="agenda">

<header><h3>Agenda</h3></header>

<article>

<header>

<time datetime="2012-02-03T10:30">

3 Février 2012 à 10:30.</time>

</header>

<p>Le jour J, l'heure H. Ou le début

du modal web…</p>

</article>

Page 67: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

67

Mise en page

(…)

</section>

</div>

<nav id="menu">

<h3>Menu</h3>

<ul>

<li><a href="#home">Home</a></li>

(…)

</ul>

</nav>

</div>

<footer>

© Le site–

<a href="mailto:[email protected]">[email protected]</a>

</footer>

Page 68: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

68

Mise en page

Le style :

#bandeau {

width: 1024px;

margin: 15px auto;

height: 200px;

}

#content {

width: 1024px;

margin: 0 auto;

}

#centre {

width: 900px;

display: inline-block;

margin: 0;

padding: 0;

}

#gallery img {

width: 300px;

}

Page 69: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

69

Mise en page

#gallery {

display: inline-block;

width: 370px;

vertical-align: top;

}

#agenda {

display: inline-block;

width: 420px;

vertical-align: top;

}

#menu {

margin: 0;

padding: 0;

display: inline-block;

width: 100px;

vertical-align: top;

text-align: right;

}

Page 70: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

70

Tableaux

Le tableau dans HTML :

<table>

<caption>Tableau de données</caption>

<tr> <th>Titre colonne 1</th>

<th>Titre colonne 2</th>

</tr>

<tr> <td>cellule A1</td>

<td>cellule B1</td>

</tr>

<tr> <td>cellule A2</td> <td>cellule B2</td>

</tr>

</table>

Toute la mise en forme du tableau et de ses cellules est à

déclarer par le biais des CSS.

Page 71: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

71

Tableaux

Le code CSS n°1 :

table {

border: medium solid #000000; width: 50%; }

td, th {

border: thin solid #6495ed; width: 50%; }

• Les options d'un cadre de tableau en trait continu (solid), noir

(#000000) et d'épaisseur moyenne (medium) ;

• et des bordures de cellules en traits continus (solid) fins (thin) et bleus

ciel (#6495ed).

• Le code CSS, à indiquer dans une feuille de style externe ou dans

l'en-tête de la page entre des balises <style type="text/css"></style>,

sera celui-ci :

Le résultat obtenu :

Page 72: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

72

Tableaux

Le code CSS n°2 :

table {

border: medium solid #6495ed;

border-collapse: collapse;

width: 50%; }

th {

font-family: monospace;

border: thin solid #6495ed;

width: 50%;

padding: 5px;

background-color: #D0E3FA;

background-image: url(sky.jpg); }

td {

font-family: sans-serif;

border: thin solid #6495ed;

width: 50%;

padding: 5px;

text-align: center;

background-color: #ffffff; }

caption {

font-family: sans-serif; }

Le résultat obtenu :

Page 73: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

73

Tableaux

• On utilise pour fusionner ou non deux bordures adjacentes la

propriété border-collapse.

• Cette propriété peut prendre les valeurs suivantes :

• collapse : "Colle" les deux bordures en une

• separate : Affiche les deux bordures distinctement.

• On utilise pour modifier l'espacement entre les cellules et les

bordures la propriété border-spacing.

• Pour afficher ou non les bordures des cellules ne contenant

aucun contenu visible on utilise la propriété empty-cells. Elle

peut prendre deux valeurs :

• show : Les bordures sont affichées.

• hide : Les bordures ne sont pas affichées.

Exemple :

table{

empty-cells:show;}

Page 74: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

74

Tableaux

• On utilise la propriété caption-side pour modifier la position de

la légende du tableau. Elle peut prendre plusieurs valeurs :

top : La légende est affichée en haut

bottom : La légende est affichée en bas

left : La légende est affichée à gauche

right : La légende est affichée à droite

Exemple :

table{

caption-side:top;

}

Page 75: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

75

Formulaires

<form>

<label>Nom complet :</label>

<input type="text" id="nom" name="nom" required>

<label>Adresse e-mail :</label>

<input type="email" id="email_addr" name="email_addr" required>

<label>Confirmez l'adresse e-mail :</label>

<input type="email" id="email_addr2" name="email_addr2"

required>

<label>Date d'arrivée :</label>

<input type="date" id="arrival_dt" name="arrival_dt" required>

<label>Nombre de nuitées (99 Dt par nuit) :</label>

<input type="number" id="nights" name="nights" value="1" min="1"

max="30" required>

Page 76: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

76

Formulaires

<label>Nombre d'invités (10 Dt par invité supplémentaire) :</label>

<input type="number" id="guests" name="guests" value="1"

min="1" max="4" required>

<br>

<label>Code de promotion :</label>

<input type="text" id="promo" name="promo">

<input type="submit" value="Effectuer la réservation" />

</form>

Page 77: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

77

Formulaires

body{

font-family: 'Open Sans',sans-serif; font-weight: 400;

font-size: 13px; }

:invalid {

background-color: #F0DDDD;

border-color: #e88;

box-shadow:0 0 5px rgba(255, 0, 0, .8); }

:required {

border-color: #88a;

box-shadow: 0 0 5px rgba(0, 0, 255, .5); }

form {

width:300px;

margin: 20px auto;

border-color: #99a; }

Page 78: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

78

Formulaires

input {

font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;

border:1px solid #ccc;

font-size:20px;

width:300px;

min-height:30px;

display:block;

margin-bottom:15px;

margin-top:5px;

outline: none;

box-shadow: 0 0 5px rgba(0, 0, 255, .2); }

Page 79: Chapitre 3 : CSS : Cascading Style Sheets · 3 Principe des CSS • Le design d'un site évolue toujours au fil du temps. • Le problème, lorsqu'on n'utilise pas de feuilles de

79

Formulaires

input[type=submit] {

background:none;

padding:10px;

cursor: pointer;

}

label{

cursor: pointer;

}