A. Objectifs du cours
• Donner les notions fondamentales sur les feuilles de style CSS avec des
ateliers de travaux pratiques.
• Réaliser des designs sobres, fluides, mais assez jolis et conformes aux
normes de la W3C.
B. Présentation
Lorsque vous travaillez avec le code HTML, vous mettez tranquillement en
forme des documents à l'aide de tags que les navigateurs interprètent pour restituer
la page origine. Vous pouvez choisir la police, corps gras ou italique ... monter des
cadres, des tableaux, des liens hypertexte, positionner des retraits ... et réaliser des
sites fort agréables et parfois superbes. On dit que le HTML est un langage de
marque logique (vous définissez logiquement le contenu d'une page à l'aide de
tags).
chez l'autre. Netscape est très pointilleux alors qu'Internet Explorer est moins sévère
mais vous trouverez dans un chapitre adéquat les "astuces" pour limiter les
distorsions des navigateurs.
Le HTML est indispensable mais ses limites peuvent freiner votre esprit de
créativité et s'il devenait possible d'ajouter un "zeste" de quelque chose qui faciliterait
une avancée, ce serait idéal.
Le langage CSS (Cascading Style Sheets) est utilisé pour définir l’aspect
futur de votre site, comme par exemple la couleur du fond de la page ou le type de
police.
Plus concrètement, le CSS (ou feuille de style), c’est un petit fichier (exemple «
style.css ») dans lequel vous allez définir l’aspect futur de votre site.
Avantage :
Exemple concret :
Body {
background-color: #CCCCCC;
Chaque sélecteur (ici body) peut avoir plusieurs propriétés avec des valeurs
indépendantes :
et enfin :
Mais comme vous rencontrez { font-size: 16pt ; font-family: arial ; } soit deux
déclarations ou davantage qui se suivent, on parle alors d'un bloc de
déclarations.
NB :
Si le HTML supporte que certains tags comme <P> ne soient pas fermés par
</P>, en CSS TOUS les sélecteurs doivent être fermés.
Premier choix: mettre le code dans la page HTML, entre les deux balises <header>
et </header>.
<head>
<title><title>
<style type="text/css">
Ici le code CSS
</style>
</head>
Exemple:
<style type="text/css">
h1 {color: blue;}
</style>
<head>
<title><title>
<link rel="stylesheet" type="text/css" href="toto.css" />
</head>
@import est une propriété CSS2 qui doit être suivie de l'URL d'un fichier qui
contiendra des styles à appliquer en plus de la feuille de style en cours.
Exemple :
<style type="text/css">
@import url(/styles/habillage.css);
</style>
Cette propriété permet en outre d'importer des feuilles de style dans d'autres
feuilles de style. Cela offre des possibilités pour créer des feuilles de style
dynamiques sans avoir à recopier plusieurs fois le même code.
En effet, @import (CSS2) n'est pas reconnu par les très vieux navigateurs
qui ne sont pas encore aux normes au niveau des CSS (par exemple Netscape 4).
En clair, avec @import, un Netscape 4 aura une page "brute", sans style,
plutôt qu'une horreur illisible. C'est donc une technique recommandée pour
l'interopérabilité et la compatibilité ascendante.
Exemple 1 :
Code source dans BODY que vous placez juste devant le paragraphe
concerné (ou un simple mot ou même caractère et n'oubliez pas le tag de fermeture
</P>).
<p style="color: green ; font-family: times, sans-serif ; ">Vous constatez que ce texte
est seul à présenter dans la page un paragraphe en vert. </p>
Résultat exemple 1
Vous constatez que ce texte est seul à présenter dans la page un paragraphe en vert
.
<span style= "color: green ; font-family: Times, sans-serif ; font-size: 14p ; " >Vous
constatez </span> que ce texte n'est pas totalement <span style= "color: green ;
font-family: Times, sans-serif ; font-size: 14pt ; ">en vert. </span>
Résultat exemple 2
E. Les classes
Comment fonctionnent les "class" ?
Dans le même genre vous pouvez continuer à ouvrir d'autres "class" comme
b.blue {color: blue ;} etc... mais si le besoin existe sinon vous partez pour la
réalisation d'une "usine à gaz".
C'est évident, les tags HTML disponibles sont limités en nombre. Si jusqu'à
maintenant vous les avez utilisé et avez ainsi réalisé une mise en page de base,
vous allez pouvoir contourner le problème et élargir la palette des possibilités, en
faisant appel à des "CLASS", "SPAN", "DIV" et "ID".
Vocabulaire
Il n'est pas certain que des puristes du CSS trouvent que ces définitions des
"classes" et "sous-classes" soient les meilleures et conformes mot à mot au W3C.
Mais n'ayez crainte les applications sont valables et, ce vocabulaire permet de mieux
comprendre la structure de la syntaxe et de faire le distinguo plus facilement.
<HEAD>
<TITLE> Nom du site </TITLE>
<STYLE TYPE="text/css">
body { font-family: arial, verdana, sans-serif ; font-size: 10pt ;
color: black ; background-color: #FFFFFF ; }
b { color: blue ; font-weight: bold ; }
h3.green { color: green ; }
.olive { font-family: arial, sans-serif ; color: olive ; font-size: 12pt ;
font-style: italic ; background-color: #FFFFFF ; }
</STYLE>
</HEAD>
<b>Ici le texte est celui du sélecteur "b" qui donne la graisse épaisse. Vous
constatez aussi que le texte est en gras et en bleu. </b>
Ici le texte est celui du sélecteur "b" qui donne la graisse épaisse. Vous
constatez aussi que le texte est en gras et en bleu.
<h3 class="green"> Cette ligne en vert avec "H3". Je tiens à vous préciser que j'ai
voulu voir ce qu'était le CSS et je suis tombé dans le "chaudron".</h3>
Cette ligne en vert avec "h3". Je tiens à vous préciser que j'ai voulu voir ce
qu'était le CSS et je suis tombé dans le "chaudron".
Dans cet exemple, le texte est celui de la sous-classe .olive donc en couleur olive
et en style italique avec un corps 12pt.
NB :
CLASS est utilisable dans presque toutes les balises HTML sauf : BASE,
BASEFONT, HEAD, HTML, META, PARAM, SCRIPT, STYLE, TITLE.
F. Les identificateurs
La déclaration d'un ID en CSS est identique à la notion de class à une
exception près: on ne peut déclarer une seule fois un ID. On utilise souvent les ID
pour définir la structure générale du site (le haut, contenu, navigation...). On utilise un
# pour les id et un "." pour les classes.
Exemple :
#encart {
background-color: yellow;
Lorsque dans votre page pour certains cas particuliers vous avez besoin
d'utiliser rarement une déclaration, pour un caractère, un mot ou un groupe de mots,
alors l'emploi de la balise SPAN est l'application adéquate à utiliser.
Résultat exemple
Analyse :
Première possibilité - Fond bleu vous avez utilisé SPAN STYLE dont vous avez
choisi suivant votre besoin la couleur de fond tout en conservant le reste des
déclarations de base du paragraphe "p".
Deuxième possibilité - Fond jaune, corps plus grand et en gras tout en respectant
encore les autres règles de "p".
Exemple : Code 2 avec SPAN normal plus SPAN imbriqué, dans BODY
<span style=" color: blue ; "> Les balises spéciales <span style= " font-size : 16pt ;
font-weight : bold ; color : red ; " > SPAN et DIV </span> permettent de mettre en
forme des éléments (en ligne ou en bloc). </span>
Résultat exemple 2
Les balises spéciales SPAN et DIV permettent de mettre en forme des éléments (en
ligne ou en bloc).
Analyse :
Cette balise DIV est souvent associée avec "class" (et "ID") et se retrouve
souvent pour positionner un élément.
</TITLE>
<style type="text/css">
.marge { margin-left: 75px ; font-style: italic ; }
.jaune {background-color: #FFFF00 ;}
.vert {background-color: #00FF00 ;}
</HEAD >
Résultat de l'exemple 1
Résultat de l'exemple 2
Ici vous ne tenez plus compte des règles CSS mais appliquez un STYLE de votre
choix à un ou plusieurs paragraphes de votre page. De ce fait il n'y a plus notion
d'héritage et vous devez reprendre les déclarations conformes à ce langage.
Résultat exemple 3
Il est possible de définir un ou plusieurs paragraphes qui prennent, outre les styles
habituels, une couleur de fond propre à faire ressortir le contenu à l'aide d'une
déclaration associée à DIV.
Noter que pour rester en conformité avec les services de validation du CSS il faut
ajouter la déclaration "color:xxxx" qui comme toujours vient suppléer les navigateurs
anciens qui ne supporteraient pas les feuilles de style.
Dans ce cas un peu particulier pour grouper les deux paragraphes distincts, il
faut remplacer les "p" d'interligne par deux sauts de ligne "br". Vous utilisez dans cet
exemple un corps de 12pt et de ce fait vous n'héritez pas de "p" et devez reprendre
les familles. Si par contre vous aviez choisi de conserver le corps de 10pt (valeur de
"p") vous pouviez directement appliquer <p style="background-color: yellow ; font-
size: 12pt ; color:black ; " > xxxxxxxxxxxx </p>. En essayant un petit exercice tout va
vous sembler évident.
Résultats exemple 4
C'est jaune
C'est vert
Résultat exemple 5
c'est jaune
c'est vert
Définition
Comme vous l'avez deviné, les marges permettent de définir l'espace entre les
éléments HTML (haut, gauche, bas et droite).
Syntaxe
<style type="text/css">
</style>
Les valeurs définissent l'espace entre les éléments HTML dans cet ordre :
1. haut
2. droite
3. bas
4. gauche
A savoir !
Si ne renseignez qu'une valeur, elle sera prise par défaut pour les autres espaces
entre les éléments HTML.
margin: ;
Si vous renseignez deux ou trois valeurs, elles seront la références pour les cotés
opposés.
margin: 10px 10px; /* 2 valeurs */
margin: 10px 10px 10px; /* 3 valeurs */
Vous pouvez définir des marges à zéro. Si vous ne définissez pas les marges, elles
prennent 0 comme valeur par défaut.
margin: -10px;
p {margin: 0;}
Attention Il ne faut pas mettre "px" si la valeur est zéro (Voir exemple ci-dessus)
Exemple concret :
L'exemple ci-dessous défini une marge de 20px à la balise BODY
body{
margin: 20px;
background: #eeeeee;
font-size: small;
font-family: "Tahoma", Arial, sans-serif;
text-align: left;
}
Tableau récapitulatif
margin-top
Valeur de la marge supérieure {
margin-right: 12.3% ; }
- en points (pt), cm, mm,
pixels (px)pouces (in) ...
margin-left
Valeur de la marge gauche
B. Le Padding en CSS
Définition
Le "Padding", c'est la distance entre le bord d'un élément HTML et son
contenu
Héritage Il n'y pas de notion d'héritage pour les marges.
Syntaxe
<style type="text/css">
</style>
Les valeurs définissent l'espace entre les éléments HTML dans cet ordre :
1. haut
2. droite
3. bas
4. gauche
A savoir !
Si ne renseignez qu'une valeur, elle sera prise par défaut pour les autres espaces
entre les éléments HTML
padding: 10px;
Si vous renseignez deux ou trois valeurs, elles seront la références pour les cotés
opposés.
Vous pouvez définir des marges à zéro. Si vous ne définissez pas les marges, elles
prennent 0 comme valeur par défaut.
padding: -10px;
Attention : Il ne faut pas mettre "px" si la valeur est zéro (Voir exemple ci-dessus)
Exemple concret 1 :
#container{
margin: 20px;
background: #eeeeee;
-AHOUANDJINOU Juste Wilfried (Ing Informatique) - justodewill@gmail.com 19
- Les feuilles de styles (CSS) : Cascading Styles Sheets -- ESGIS 2014-2015 -
font-size: small;
text-align: left;
Tableau récapitulatif
padding-
bottom
Valeur de la marge inférieure
padding-left
Valeur de la marge gauche
Couleur
Vous pouvez fixer la couleur d'un texte comme suivant :
<style type="text/css">
color: valeur;
</style>
Les différentes valeurs sont :
letter-spacing: valeur;
Les valeurs possibles sont :
• normal
• une valeur en px
Exemple
text-align: valeur;
• Gauche
• droite
• centre
• justifié
Autres propriétés
- none (aucun)
Formatage de texte :
- underline (souligné)
Text- souligner, surligner, barrer,
- overline (surligné)
decoration clignotement ... p.souligne {
- line-through (barré)
text-decoration: underline
- blink (clignotant) (non
}
reconnu par IE)
Introduction
La police, la taille du texte, gras ou pas, tous ces paramètres sont réglables
en CSS.
Famille de police
Il est très utile de fixer avec le CSS la police de caractère.
• Nom de la famille
• Famille généric
En effet, si la police que vous souhaitez pour votre site s'affiche correctement
si votre ordinateur, elle peut ne pas être présente sur un autre ordinateur.
D'ou l'intérêt d'en mettre d'autres.
font-size: valeur;
• xx-large
• x-large
• larger
• large
• medium
• small
• smaller
• x-small
• xx-small
• length
• % (pourcentage)
font-style:valeur ;
Valeurs possibles :
• normal
• itailc (italique)
• oblique
Texte en italique.
Texte en italique.
Texte oblique.
Variante de police
Cette option d'afficher en petites capitales, peut vous être utile pour réaliser
des titres ou sous-titres mais son utilité est vite limitée et sa répétition peut devenir
pénible pour le visiteur.
font-variant: valeur;
Valeurs possibles :
• normal
• small-caps
Taille de la police
Vous pouvez contrôler la taille de votre texte :
font-weight: valeur;
Valeurs possibles :
• lighter
• normal
• 100
• 200
• 300
• 400
• 500
• 600
• 700
• 800
• 900
• bold
• bolder
Tableau récapitulatif
Tag de base à
associer, pour spécifier
font
les propriétés
suivantes
Familles de polices
usuelles. Toujours noms de famille
font- utiliser au moins en fin : arial, verdana,helvetica, "comic sans
family de déclaration une MS", etc...
police de la famille famille générique : serif, sans-serif,
générique h1 { font- cursive, fantasy, monospace
family: verdana; }
Taille absolue
xx-small
x-small
small
medium
large
Définit la taille de la x-large
police de quatre xx-large
manières possibles : Valeur numérique
font-size taille absolue, taille relative : px, em et ex
relative, longueur ou absolues : pt, pc, mm, cm, in
pourcentage p { font- Taille relative
size: 14pt; } h2 { font- smaller
size: 24px; } larger (par rapport au style parent)
Longueur
définit la taille par rapport à la largeur
d'un em, pc, pt...
En pourcentage
spécifie une taille de police absolue
par rapport à celle de l'élément parent.
ultra-condensed
extra-condensed
font- condensed
Etendue de la chasse
stretch semi-condensed
des mots p { font-
normal
stretch: expanded; }
expanded
extra-expanded
ulta-expanded
La troisième définie la couleur du lien en cas de survol avec la souris (ici en rouge)
Le dernier définie la couleur si le lien est cliquée. Attention Vous devez déclarer
"a:link and a:visited" avant de déclarer "a:hover" pour un bon fonctionnent
a:link {color: #009900;}
a:visited {color: #999999;}
a:hover {color: #333333;}
a:focus {color: #000000;}
a:active {color: #009900;}
Disons que le centre de votre site soit nommée "content" et que tous les liens soit
selon ce code CSS.
Dans cet exemple, nous avons défini des liens de différentes couleurs en fonction de
leurs positions sur la page.
Bien sûr, le nom "column" c'est vous qui le définissez (ici c'est colonne en
Anglais)
Il est possible de faire la même action en déclarant une class plutôt d'un ID
- jpg
background- Spécifie une image de fond
- gif
image body { background-image:
- npg : pas encore accepté
tigre.jpg"; }
par tout les outils.
-unités de longueur,
Valeur de la bordure de droite {
border-right
margin-right: 5% ; }
- pourcentage
border-top-
Couleur de la bordure supérieure {
color
border-top-color: blue ; } - hexadécimal,
- RGB,
border-right- Couleur de la bordure droite {
color border-right-color: #00FFBB ; }
- en anglais
<style type="text/css">
liste 2
liste 3
ul {
padding: 10px 0 15px 20px;
margin:0;
}
li {
margin-bottom:5px;
list-style-image: URL(themes/default/images/star.png);
color: #3B6EBF;
}
<ul>
<li>liste 1</li>
<li>liste 2</li>
<li>list 3</li>
</ul>
Position de la liste
Vous pouvez aussi contrôler la position d'un liste grâce à la propriété : list-
style-position
list-style-position: valeur;
Valeurs possibles :
• inside
• outside
• inherit
Valeurs possibles :
• disc
• circle
• square
• decimal
• lower-roman
• upper-roman
• lower-alpha
• upper-alpha
• none
Tableau récapitulatif
- disc,
list-style-type
Valeurs listes non numérotées - circle,
- square,
list-style-type : square
- none
decimal | lower-roman |
upper-roman | lower-
alpha | upper-alpha |
decimal-leading-zero |
Valeurs listes numérotées et lower-latin | upper-latin |
list-style-type lower-greek | hebrew |
alphabétiques
armenian | georgian |
list-style-type : decimal cjk-ideographic |
hiragana | katakana |
hiragana-iroha |
katakana-iroha.
list-style-
- outside
position En retrait ou pas
- inside
list-style-position: outside
• height : Hauteur
o line-height: Hauteur d'une ligne
o max-height : Hauteur maxium
o min-height Hauteur minimum
• width : Largeur
o max-width : Largeur maximum
o min-width : minimum
• A savoir
Hauteur
Vous pouvez définir la hauteur d'un élément avec la propriété : height
height: valeur;
Valeurs possibles:
• auto
• Valeurs en px
• pourcentage
line-height: valeur;
Valeurs possibles:
• normal
• nombre
• Valeurs en px
• pourcentage
Hauteur maximum
Vous pouvez définir la hauteur maximum d'une ligne avec la propriété : max-
height
max-height: valeur;
Valeurs possibles:
• none (rien)
• Valeurs en px
• percentage
Hauteur minimum
Vous pouvez définir la hauteur minimum d'un élément avec la propriété :
min-height
min-height: valeur;
Valeurs possibles:
• length
• percentage
Largeur
Vous pouvez définir la largeur d'un élément avec la propriété : width .
width: valeur;
Valeurs possibles:
• auto
• Valeurs en px
• pourcentage
Largeur Max
Vous pouvez définir la largeur maximum d'une ligne avec la propriété :max-
width.
max-width: valeur;
Valeurs possibles:
• none
• Valeurs en px
• pourcentage
Largeur Min
Vous pouvez définir la largeur minimum d'un élément avec la propriété : min-
width
min-width: valeur;
Valeurs possibles:
• length
• percentage
Si le conteneur a une hauteur (height) plus petite que son contenu, sous
Internet Explorer le contenu agrandit la hauteur, alors que Netscape / FireFox le
contenu sort de la balise mais le conteneur est à la bonne taille.
#conteneur{
width:200px;
height:50px;
.contenu{
background-color:red;
margin:0 0 50px 0;
Code HTML :
<div id="conteneur">
<div class="contenu">
</div>
</div>
J. Classification en CSS
Les propriétés clear et clip permettent la gestion d'éléments flottants.
• Clear:
o none
o left
o both
o left
• Clip
• Cureur: Apparence du curseur
• display : Gestion d'affichage
• float : gestion du flottement
• overflow
• visibility: Visibilité
• Z-Index
Clear
La propriété "clear" va être utilisée pour définir si un élément doit se trouver
sur la même bande horizontale qu’un élément flottant.
On peut donc écrire que cette propriété indique de quelle manière le texte va être
placé par rapport à une boîte flottante précédente.
clear: valeur;
Valeurs possibles:
• none (rien)
• left (gauche)
• right (droite)
Valeur "None" : Avec la propriété "clear: none;" rien n'est affecté par rapport aux
éléments flottants et cette propriété n'influence pas le positionnement en cours.
Both : Avec la propriété "clear: both;" la boîte générée va se déplacer sous chacune
des boîtes flottantes qui précèdent dans le code source.
Left : La propriété "clear: Left;" va placer l'élément en bas juste à droite de celui qui le
précède dans le code source.
Clip
clip: valeur;
Valeurs possibles:
• auto
• shape
Souvent, "shape est reconnu par le clip rect (rectangle)
.imageclip { position:absolute ; width: 200px ; clip: rect (0px, 70px, 200px, 0px) ; }
<div class= "imageclip"><img src= "images/w3c.gif"></div>
Curseur
cursor: valeur;
Valeurs possibles:
• auto
• crosshair
• default
• help
• move
• pointer
• text
• url
• wait
• e-resize
• ne-resize
• nw-resize
• n-resize
• se-resize
• sw-resize
• s-resize
• w-resize
K. Affichage
Vous avez le contrôle des éléments à afficher ou non avec la propriété :
display
display: valeur;
Valeurs possibles:
• block
• inline
• list-item
• none
Flottement
float: valeur;
Valeurs possibles:
• left
• right
• none
Overflow
overflow: valeur;
Valeurs possibles:
• auto
• hidden
• visible
• scroll
Comme vous pouvez voir, avec cette propriété vous pouvez imiter une iframe. Ce
box est définie en "auto" Signifiant que si le contenu de l'élément dépasse les bornes
il devrait ajouter un scrollbar.
<div id="overflow_box">Contents</div>
Visibilité
-AHOUANDJINOU Juste Wilfried (Ing Informatique) - justodewill@gmail.com 43
- Les feuilles de styles (CSS) : Cascading Styles Sheets -- ESGIS 2014-2015 -
visibility: valeur;
Valeurs possibles:
• hidden
• visible
Z-Index
z-index: valeur;
Valeurs possibles:
• auto
• nombre
L. Positionnement
Propriété : Position
La propriété sert à définir la position des éléments dans une page HTML
Héritage Il n'y pas de notion d'héritage pour les marges La propriété de feuille de
style position css est généralement utilisée pour la création de calques (Layer).
position: valeur;
Valeurs possibles:
• static
• relative
• absolute
• fixed
La propriété de feuille de style position css est généralement utilisée pour la création
de calques (Layer).
Valeurs possibles:
• top
• left
• right
• bottom
M. Pseudo Eléments
Les pseudos-éléments font référence à des parties de texte qui ne sont pas
forcément délimités par des balises HTML.
• La syntaxe
• Elements:
o first-line
o First Letter
La syntaxe
La syntaxe des pseudo éléments est un peu différente du CSS simple, mais
sans grand changement.
selector:pseudo-element
Les pseudos-éléments font référence à des parties de texte qui ne sont pas
forcément délimités par des balises HTML.
Eléments
• first-line
• first-letter
First Line
p{
font-size: small;
}
On va mettre :
p: first-line {
font-size: medium; color: #ff0000;
}
Valeurs possibles :
• background
• clear
• color
• font
• letter-spacing
• line-height
• text-decoration
• text-transform
• vertical-align
• word-spacing
Comme vous pouvez le voir, les paragraphes sont exposés à une petite taille
de police, mais la première ligne est définie comme une taille moyenne et une
couleur rouge.
First Letter
• background
• border
• clear
• color
• float
• font
• line-height
• margin
• padding
• text-decoration
• text-transform
• word-spacing
On obtient ainsi des effets qui sont agréables mais dont il ne faut pas abuser
du point de vue design de votre page. Attention Notez un " tous les navigateurs ne
supportent pas encore ce style. On l'appelle aussi "pseudo-style" ou "pseudo-
élément".
Le CSS peut être utilisé pour créer des pages web faciles à imprimer
Les images, les couleurs et les autres éléments difficiles à imprimer sont
alors éliminés et les pages imprimées plus facilement.
Le CSS rend également le code HTML plus "propre" facilitant le travail des
robots d'indexation.
Le CSS vous permet de modifier les caractéristiques des éléments d'un site
web en fonction de la nécessité de la situation. Conclusion Le CSS est créé pour
rendre les choses plus faciles pour votre site web mais également pour vous le
contrôle de différents éléments de votre site web.
Utiliser les avantages du CSS vous permettra d'obtenir des pages web plus
conviviales.
III. Conclusion