Cssdebase
Cssdebase
Cascading
Style Sheets
(Feuilles de style)
Introduction
Principes de base
Le langage HTML (Hypertext Markup Language) est avant tout une norme de description de
page qui tire son origine du SGML (Standard Generalized Markup Language), un langage
structuré décrivant le contenu d'un texte dans une optique essentiellement documentaire. Ainsi,
le langage HTML ne possédait au départ qu'un nombre assez réduit d'instructions (ou balises)
destinées à organiser les documents – l’aspect « présentation » n’étant pris en compte qu’au
second plan.
Exemples :
- la balise <strong> met le texte ciblé en évidence ;
- la balise <p> force un saut de ligne afin de marquer un paragraphe ;
- la balise <ul> définit une liste ordonnée
<html>
<head>
<title>Style Sheets - Feuilles de style</title>
</head>
<body>
<h2>Introduction</h2>
<p>
Le langage <strong>HTML</strong> (Hypertext Markup Language) est avant
tout une norme de description de page qui tire son origine du
<strong>SGML</strong> (Standard Generalized Markup Language), un
langage structuré décrivant le contenu d'un texte dans une optique
essentiellement documentaire. Ainsi, le langage HTML ne possédait au
départ qu'un nombre assez réduit d'instructions (ou balises) destinées
à organiser les documents – l’aspect « présentation » n’étant pris en
compte qu’au second plan
</p>
<p>
Cependant, l’engouement toujours croissant, depuis maintenant plusieurs
années, pour le World Wide Web a rapidement révélé la nécessité de
développer des techniques de présentation plus sophistiquées,
débouchant sur la production de documents de meilleure qualité
esthétique. Le langage HTML s'est alors progressivement enrichi de
nouvelles balises, assurant -entre autres- des mises en couleur, des
changements de police de caractères, etc.
</p>
<ol>
<li>Feuilles de style et héritage</li>
<li>Feuilles de style et navigateur Web</li>
<li>Avantages des feuilles de style</li>
2
</ol>
</body>
</html>
Cependant, l’engouement toujours croissant, depuis maintenant plusieurs années, pour le World
Wide Web a rapidement révélé la nécessité de développer des techniques de présentation plus
sophistiquées, débouchant sur la production de documents de meilleure qualité esthétique. Le
langage HTML s'est alors progressivement enrichi de nouvelles balises, assurant -entre autres-
des mises en couleur, des changements de police de caractères, etc.
Exemples :
- la balise <font> peut être utilisée pour associer au texte ciblé une police de
caractères, une taille, une couleur ;
- les options background et bgcolor servent respectivement à afficher une
image de fond et à définir une couleur de fond.
<html>
<head>
<title>Style Sheets - Feuilles de style</title>
</head>
<blockquote>
<p align="justify">
<font face="arial,helvetica" size="3">Le langage <b><i>HTML</i></b>
(Hypertext Markup Language) est avant tout une norme de description de
page qui tire son origine du <b><i>SGML</i></b> (Standard Generalized
Markup Language), un langage structuré décrivant le contenu d'un texte
dans une optique essentiellement documentaire. Ainsi, le langage HTML
ne possédait au départ qu'un nombre assez réduit d'instructions (ou
balises) destinées à organiser les documents – l’aspect « présentation
» n’étant pris en compte qu’au second plan
</font>
</p>
</blockquote>
<br><br>
<font face="arial,helvetica" size="4"><b>Le contenu du cours</b></font>
</body>
</html>
4
Cette façon de procéder - si elle a pu dans un premier temps faciliter le travail des concepteurs
de pages Web - présente toutefois différents inconvénients :
Actuellement la technique des feuilles de style (Style Sheets) permet d'éviter les problèmes
évoqués ci-dessus en allant beaucoup plus loin dans le sens de la séparation du contenu et de
la présentation des pages Web.
html css
structuration présentation
5
Définition des feuilles de styles
Les feuilles de styles sont en quelque sorte des modèles, des canevas, qui offrent de
nombreuses possibilités de contrôle sur l'aspect d'un document. Leur mécanisme est semblable
à celui utilisé dans les logiciels de traitement de texte : dans un document on dissocie les titres,
les sous-titres, les paragraphes de corps de texte, les notes de bas de page, les citations etc. –
à chacun de ces éléments est associé un style qui lui est particulier et qui clarifie la lecture du
texte en mettant en évidence sa structuration.
En ce qui concerne le langage HTML, le même procédé est rendu possible grâce à l’utilisation
des Cascading Style Sheets (CSS) définies par le W3C : celles-ci peuvent regrouper des règles
de présentation sophistiquées destinées à être appliquées aux différents éléments HTML d’un
document.
La norme servant de base à la formulation des feuilles de style étant indépendante de l'HTML,
on évite ainsi de court-circuiter ce langage.
Exemples :
<html> body
{
<head> background-color: #FFFFFF;
<title>Apache Server - Installation</title> color: #000000;
<link rel="stylesheet" type="text/css" href="demo1.css"> font-family: arial, helvetica;
</head> font-size: 10pt;
}
<body>
h1
<h1>Apache Server - Installation</h1> {
color: #FF0000;
<p> font-weight: bold;
If you have installed Apache as a pre-compiled binary, you font-size: 16pt;
can now run the server by selecting "Start Apache as text-align: center;
console app" from the Start menu. You can configure }
Apache for your system by editing the file conf/httpd.conf
in the directory where you installed Apache. p
</p> {
text-indent: 50pt;
</body> margin-right: 100pt;
</html> margin-left: 100pt;
text-align:justify;
}
6
Le but prioritaire poursuivi par les concepteurs des CSS est de clairement séparer le contenu
des instructions de mise en forme. Il s’agit -grâce aux feuilles de styles- de débarrasser la
source HTML de balises et attributs de présentation peu efficaces (par exemple la balise <font>
et ses attributs « face », « size », « color »).
DocumentH
TML
Feuille
de styles
structuration
struct présentation
Cette façon de faire vise à clarifier le code HTML, à le ramener à sa fonction première, c’est-à-
dire la structuration des documents. En conséquence, la gestion des pages et des sites web
s’en trouve nettement améliorée : des dizaines ou des centaines de pages web peuvent pointer
vers une seule feuille de style commune, les modifications dans une feuille de style sont
automatiquement répercutées sur les éléments et les pages qui y font référence, le code HTML
reste limité à l’essentiel et peut être compris par un très grand nombre.
7
Méthode et fonctionnement
Pour pouvoir exploiter les feuilles de style, il faut franchir deux étapes fondamentales :
▪ dans un premier temps, il faut analyser la manière dont il est possible d’attribuer un style
à un type de balises HTML ;
▪ dans un deuxième temps, il faut étudier le moyen d’intégrer dans un document HTML les
règles de style précédemment définies.
<HTML>
<HEAD>
<TITLE>Stylesheet</TITLE>
</HEAD>
<BODY>
<H1>Le mécanisme des CSS</H1>
<P>Attribution d'un style
</BODY>
</HTML>
La question qui se pose à présent c’est « Comment mettre en forme un élément HTML via la
technique des CSS ? ». Prenons le cas d’une couleur que l’on voudrait associer à un titre de
niveau un (h1). Nous allons devoir traduire ce traitement dans une règle de style - celle-ci aura
l’allure qui suit :
h1 { color : blue}
ou
h1
{
color : blue
}
8
A partir de cet exemple, nous pouvons établir une première règle générale : une définition de
style se compose toujours de deux parties :
sélecteur {propriété:valeur}
Les propriétés de style sont définies par la norme CSS : certaines servent à modifier les
couleurs, la police et la taille de caractères, d’autres le positionnement, etc (il en existe à peu
près une cinquantaine). Si plusieurs couples « propriété : valeur » doivent être indiqués, il faut
les séparer par un point-virgule.
h1
{
color : blue ;
font-size : large ;
text-align : center
}
A noter également, la possibilité pour plusieurs sélecteurs de partager les mêmes propriétés. En
effet, différents sélecteurs, comme h1, h2, ou b dans l’exemple ci-dessous, peuvent être placés
dans une liste, séparés par le caractère une virgule, afin d’être associer aux mêmes définitions
de styles.
h1, h2, b
{
color : blue ;
font-size : large ;
text-align : center
}
9
Association d’une feuille de style à un document HTML
Il existe trois techniques différentes pour joindre des feuilles de style à un document HTML.
La première technique est certainement la plus simple et la plus directe, mais aussi celle qui
offre le moins de possibilités. La seconde est déjà plus intéressante vu que les styles sont
définis, non pas localement dans le corps de la page, mais bien globalement dans l’entête du
document. Enfin, la dernière technique est de loin la plus puissante ; en effet, la définition des
styles se trouve cette fois dans un fichier distinct ce qui permet de gérer à travers une seule
feuille de style de nombreuses pages HTML.
10
La méthode intraligne
Selon cette méthode, les styles sont directement inclus dans la balise HTML concernée. Pour
cela on utilise l’attribut « style » à l'intérieur des balises HTML d’ouverture. Cet attribut permet de
préciser des règles de style et ainsi de modifier l'apparence de l’élément HTML sur lequel il
porte.
<sélecteur STYLE="propriété:valeur">
Remarque :
par sélecteur on entend toute balise
HTML (H1, P, B, DIV...)
Exemple:
Cette méthode est certainement la plus directe et la plus simple à mettre en œuvre dans un
premier temps. Il faut toutefois garder à l’esprit que la méthode intraligne -du fait qu'elle mélange
le contenu et la présentation- prive le développeur des principaux avantages des feuilles de
style CSS. Il faut l'utiliser avec précaution.
11
La méthode imbriquée
Dans ce cas, tous les éléments de style sont placés dans la zone d’entête du document
<head></head>, grâce à la balise <style></style>, et s'appliquent à tout le code HTML qui suit.
Exemple :
L’avantage de cette méthode pour le développeur Web est déjà plus frappant que pour la
méthode précédente : cette technique permet, par le changement de quelques codes, de
modifier la présentation de toute la page.
12
La méthode liée
Cette méthode consiste à lier au document HTML une feuille de style située dans un fichier
externe (fichier .css). La même feuille de style peut alors aisément s'appliquer à plusieurs
documents HTML. La liaison entre une page HTML et une feuille de style se définit dans la zone
d’entête du document <HEAD></HEAD> de la manière suivante:
Voici un exemple d’appel à une feuille de style externe à partir d’une page HTML classique :
Le contenu d’une feuille de style externe est des plus simple : il se résume à une succession de
règles de style telles que la norme CSS les définit. Ci-dessous, on peut observer le contenu du
fichier « style 1.css » appelé dans l’exemple précédent.
Body {color:red}
P {font-size:medium; font-family:impact}
B {color:green; font-size:large}
13
La méthode importée
Cette méthode importe les styles provenant d'un fichier externe de façon à les fusionner au
document HTML. L’importation, via l’instruction @import, peut être combinée avec d’autres
méthodes d’association d’une feuille de style à un document HTML.
Exemple : <HTML>
<HEAD>
<TITLE>Stylesheet</TITLE>
<STYLE TYPE="text/css">
<!--
@import url(http://www.ulb.ac.be/style1.css);
H1 { color: orange; font-family: impact }
-->
</STYLE>
</HEAD>
<BODY>
…
</BODY>
</HTML>
Si différentes méthodes d’association sont utilisées en même temps, le navigateur Web doit
pouvoir donner la priorité à l’une ou l’autre des méthodes. Les navigateurs Web qui supportent
les feuilles de style disposent pour cela d’une règle concernant l’ordre des cascades qui leur
indique quoi faire dans quelle situation.
Ordre d’importance :
1. intraligne
2. imbriquée
3. liée
4. importée
5. style par défaut du navigateur
Ainsi, les styles intralignes prennent le pas sur les styles imbriqués, qui eux-mêmes ont la
priorité sur les styles liés …
14
Exemple :
h3
{
color: red;
text-align: left;
font-size: 8pt
}
h3
{
text-align: right;
font-size: 20pt
}
Si une page Web contenant la feuille de style interne fait également référence à la feuille
de style externe, les propriétés de styles associées au sélecteur h3 seront les suivantes :
color: red;
text-align: right;
font-size: 20pt
La couleur est héritée de la feuille de style externe, par contre l'alignement du texte et la
taille de la police sont dictés, eux, par la feuille de style interne.
15
Feuilles de style et héritage
Les balises qui composent un document HTML sont organisées selon une structure en arbre.
Chacune d'entre elles possède un parent, et engendre un ou plusieurs fils.
Exemples :
html
head body
title h1 p ul
Une telle structure permet d’utiliser l'héritage des feuilles de style afin de mettre en page un
document HTML : de la même façon que les enfants héritent de leurs parents certaines
caractéristiques, les balises HTML des niveaux inférieurs reçoivent les caractéristiques
stylistiques de celles des niveaux supérieurs.
Dans l’exemple ci-dessus, si une propriété de style est définie au niveau de la balise <body>,
alors les balises <h1>, <p> et <ul> les posséderont également, sauf si un changement de la
même propriété est spécifié à leur niveau.
16
Propriétés de style
font-family:
Objet : précise la police de caractères à appliquer aux éléments d’un document HTML.
Valeurs : [[<family-name> | <generic-family>],]* [<family-name> | <generic-family>]
Exemple :
<style type="text/css">
h3 {font-family: times}
p {font-family: arial, helvetica, sans-serif}
</style>
Dans une feuille de style la propriété ‘font-family’ est utilisée pour spécifier la ou les
polices de caractères qui doivent être appliquées au texte.
Exemple :
P {font-family : arial, helvetica, sans-serif}
Cette propriété permet à l’auteur de préciser plusieurs polices de caractères qui seront
appliquées d’après leur ordre d’apparition. Dans l’exemple ci-dessus, le navigateur Web
doit utiliser en priorité la police arial. Si celle-ci n’est pas présente sur l’ordinateur client,
le navigateur passe alors à la police de caractères suivante. La liste des polices dans
une feuille de style se termine généralement par une police de caractères dite
‘générique’ afin, en dernier recours, de conserver un minimum de l’intention de l’auteur.
font-style:
17
Objet : indique l’orientation de la police de caractères.
Valeurs : normal | italic | oblique
Exemple :
<style type="text/css">
h1 {font-style: italic}
h2 {font-style: normal}
p {font-style: oblique}
</style>
font-variant:
Objet : indique l’orientation de la police de caractères.
Valeurs : normal | small-caps
Exemple :
<style type="text/css">
p{font-variant: small-caps}
</style>
font-weight:
Objet : indique le poids (le « gras ») de la police de caractères.
Valeurs : normal | bold | bolder | lighter |
100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
Exemple :
<style type="text/css">
h1 {font-weight: 900}
strong {font-weight: bold}
p {font-weight: normal}
</style>
18
font-size:
Objet : définit le corps de la police de caractères.
Valeurs : <percentage> | <absolute-size> | <relative-size> | <length>
Exemple :
<style type="text/css">
h1 {font-size: 18pt}
h2 {font-size: 16pt}
p {font-size: 12pt}
</style>
▪ Pourcent
La taille est fixée à l’aide d’une valeur en pourcent. Celle-ci est relative à la valeur de la
propriété ‘font-size’ de l’élément parent.
Exemple :
p {font-size : 12pt}
b {font-size : 150%} /* 150% de 12pt = 18pt */
▪ Taille absolue
La taille est fixée à l’aide des mots-clés listés ci-dessous. Ceux-ci font référence aux
différents niveaux repris dans une table des tailles de polices de caractères maintenue
par les logiciels clients.
xx-small
x-small
small
medium
large
x-large
xx-large
Exemple :
p {font-size : medium}
b {font-size : large}
19
▪ Taille relative
La taille est fixée à l’aide des mots-clés listés ci-dessous. Ceux-ci sont interprétés en
fonction de la table des tailles de polices de caractères maintenue par les logiciels clients
et de la valeur de la propriété ‘font-size’ de l’élément parent.
Larger
smaller
Exemple :
p {font-size : medium}
b {font-size : larger}
▪ Length
Unités de mesures :
Exemple :
h1 {font-size : 15pt}
h2 {font-size : 1pc}
p {font-size : 0.43cm}
20
font:
Objet : raccourci permettant de fixer les propriétés de caractères en une seule commande.
Valeurs : [<font-style> || <font-variant> || <font-weight> || <font-size> ||
<font-family>]
Exemple :
<style type="text/css">
p
{
font: italic small-caps 900 12px arial
}
</style>
21
Les blocs de texte
Les propriétés de texte permettent de contrôler l'apparence des éléments de type "texte" dans
une page Web. Il est possible de changer la couleur d'un texte, d'augmenter ou de réduire
l'espace entre les caractères, d'aligner le texte, de le décorer ou d'indenter la première ligne.
color:
Objet : décrit la couleur du texte d'un élément HTML.
Valeurs : <color>
Exemple :
<style type="text/css">
h1 {color: #ff0000}
h2 {color: #aaaaaa}
p {color: rgb(0,0,255)}
</style>
La norme CSS2 prévoit différentes façons de spécifier des couleurs : soit par mot-clé (aqua,
black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white et
yellow), soit par triplet de composantes rouge/vert/bleu de la forme suivante :
letter-spacing:
Objet : précise l’espacement entre les caractères.
Valeurs : normal | <length>
Exemple :
<style type="text/css">
h1 {letter-spacing: -3px}
h2 {letter-spacing: 0.5cm}
</style>
22
word-spacing:
Objet : précise l’espacement entre les mots.
Valeurs : normal | <length>
Exemple :
<style type="text/css">
p {word-spacing: 4px}
td {word-spacing: 0.5cm}
</style>
text-decoration:
Objet : définit un type de soulignement.
Valeurs : none | [ underline || overline || line-through || blink ]
Exemple :
<style type="text/css">
h2 {text-decoration: overline}
p {text-decoration: underline}
a {text-decoration: none}
</style>
text-align:
Objet : indique l'alignement du texte d'un élément HTML.
Valeurs : left | right | center | justify
Exemple :
<style type="text/css">
h1 {text-align: center}
h2 {text-align: left}
h3 {text-align: right}
p {text-align: justify}
</style>
23
text-indent:
Objet : précise la longueur d’un retrait de texte (alinéa).
Valeurs : <length> | <percentage>
Exemple :
<style type="text/css">
p {text-indent: 1cm}
</style>
text-transform:
Objet : indique la casse à appliquer à un bloc de texte.
Valeurs : capitalize | uppercase | lowercase | none
Exemple :
<style type="text/css">
h1 {text-transform: uppercase}
h2 {text-transform: capitalize}
</style>
24
Les arrière-plans*
background-color:
Objet : donne la couleur d’arrière-plan à appliquer à un élément HTML.
Valeurs : <color> | transparent
Exemple :
<style type="text/css">
body {background-color: yellow}
h1 {background-color: #00ff00}
h2 {background-color: transparent}
p {background-color: rgb(250,0,255)}
</style>
background-image:
Objet : renseigne l’image à afficher comme arrière-plan pour un élément HTML.
Valeurs : url(<url>) | none
Exemple :
<style type="text/css">
body
{
background-image: url("../images/bgblue.jpg")
}
</style>
25
background-repeat:
Objet : gère la répétition horizontale et verticale d’une image d’arrière-plan.
Valeurs : repeat | repeat-x | repeat-y | no-repeat
Exemple :
<style type="text/css">
body
{
background-image: url("../images/bgblue.jpg");
background-repeat: repeat-y
}
</style>
background-attachment:
Objet : détermine le type de défilement d’une image d’arrière-plan.
Valeurs : scroll | fixed
Exemple :
<style type="text/css">
body
{
background-image: url("../images/flag.gif");
background-repeat: no-repeat;
background-attachment: fixed
}
</style>
background-position:
Objet : détermine la position initiale d’une image d’arrière-plan.
Valeurs : [<percentage> | <length>]{1,2} |
[top | center | bottom] || [left | center | right]
Exemple :
<style type="text/css">
body
{
background-image: url("../images/flag.gif");
background-repeat: no-repeat;
background-position: center center
}
</style>
26
Avec la paire de valeur « 0% 0% », le coin supérieur gauche de l'image est aligné sur celui de la
« box » qui entoure le contenu de l'élément (pas la boîte qui englobe l'espacement, la bordure et
la marge). La paire de valeur '100% 100%' positionne le coin inférieur droit de l'image sur celui
de l'élément.
Avec la paire de valeur '2cm 2cm', le coin supérieur gauche de l'image est placé 2cm vers la
droite et 2cm sous le coin supérieur gauche de l'élément.
background:
Objet : raccourci permettant de fixer les propriétés d’arrière-plan en une seule commande.
Valeurs : <background-color> || <background-image> || <background-repeat> ||
<background-attachment> || <background-position>
Exemple :
<style type="text/css">
body
{
background: #00ff00 url("../images/flag.gif") no-repeat
fixed center center
}
</style>
27
Les marges
Selon la technique des feuilles de style, chaque élément d’un fichier HTML est considéré
comme contenu dans ce qui est appelé une « box ». Celle-ci est composée de ce qui suit :
- l’élément lui-même
- l’écartement autour de l’élément
- la bordure autour de l’écartement
- les marges autour de la bordure
BOX
marge haute
écartement haut
contenu de l’élément
marge gauche écartement écartement droit marge droite
gauche
écartement bas
bordure
marge basse
Les propriétés "margin" définissent l'espace (extérieur) autour des éléments. Les marges
"haute", "basse", droite" et "gauche" peuvent être précisées séparément en utilisant des
propriétés distinctes.
margin-top:
margin-right:
28
margin-bottom:
margin-left:
Objet : détermine la taille des marges d’un élément HTML.
Valeurs : <length> | <percentage> | auto
Exemple :
<style type="text/css">
p{margin-right: 50px; margin-left: 50px; margin-top: 20px;}
</style>
margin:
Objet : raccourci permettant de fixer la taille des marges en une seule commande.
Valeurs : <margin-top> || <margin-right> || <margin-bottom> || <margin-left>
Exemple :
<style type="text/css">
p{margin: 2cm 4cm 3cm 4cm}
</style>
29
Les écartements
Les propriétés "padding" définissent l'espace entre le contenu d’un élément et la bordure. Les
écartements "haut", "bas", droit" et "gauche" peuvent être précisées séparément en utilisant des
propriétés distinctes.
padding-top:
padding-right:
padding-bottom:
padding-left:
Objet : détermine la taille des écartements d’un élément HTML.
Valeurs : <length> | <percentage>
Exemple :
<style type="text/css">
td
{
padding-top: 10px;
padding-right: 15px;
padding-bottom: 10px;
padding-right: 15px;
}
</style>
padding:
Objet : raccourci permettant de fixer la taille des marges en une seule commande.
Valeurs : <padding-top> || <padding-right> || <padding-bottom> || <padding-left>
Exemple :
<style type="text/css">
td {padding: 1.5cm 0.5cm 2.5cm 0.5cm}
</style>
30
Les bordures
Style de la bordure :
border-top-style:
border-right-style:
border-bottom-style:
border-left-style:
hidden | dotted | dashed | solid | double | groove | ridge | inset | outset
Exemple :
<style type="text/css">
p
{
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
}
</style>
border-style:
hidden | dotted | dashed | solid | double | groove | ridge | inset | outset
hidden | dotted | dashed | solid | double | groove | ridge | inset | outset
hidden | dotted | dashed | solid | double | groove | ridge | inset | outset
hidden | dotted | dashed | solid | double | groove | ridge | inset | outset
Exemple :
<style type="text/css">
p
{
border-style: solid;
}
</style>
31
Largeur de la bordure :
border-top-width:
border-right-width:
border-bottom-width:
border-left-width:
thin | medium | thick | <length>
Exemple :
<style type="text/css">
p
{
border-style: solid;
border-bottom-width: 15px
}
</style>
border-width:
thin | medium | thick | <length>
thin | medium | thick | <length>
thin | medium | thick | <length>
thin | medium | thick | <length>
Exemple :
<style type="text/css">
p
{
border-style: solid;
border-width: 5px 10px 5px 10px
}
</style>
Couleur de la bordure :
border-top-color:
border-right-color:
border-bottom-color:
border-left-color:
<color>
border-color:
<color>
Exemple :
<style type="text/css">
p
{
32
border-style: solid;
border-color: black;
border-width: 5px 10px 5px 10px
}
</style>
Raccourcis :
border-top
border-bottom:
border-right:
border-left:
[ <border-width> || <border-style> || <color> ] | inherit
Exemple :
<style type="text/css">
p
{
border-top: medium solid #ff0000
}
</style>
border:
[ <border-width> || <border-style> || <color> ] | inherit
Exemple :
<style type="text/css">
p
{
border: thin double rgb(250,0,0)
}
</style>
33
Les classes
Il est encore possible de compléter les méthodes d’appel aux styles grâce aux éléments
suivants :
Le sélecteur class
Il permet d'assigner un nom à un groupe de propriétés de style et de les associer à n'importe
quelle balise HTML.
Body {color:black}
P {font-size:medium; font-family:impact}
B {color:green}
.italblue {color:blue; font-style:italic}
34
35
Exemple :
<head>
<style type="text/css">
p.right {text-align: right}
p.center {text-align: center}
</style>
</head>
<body>
<p class="center">
Ce paragraphe sera centré.
</p>
<p class="right">
Ce paragraphe sera aligné à droite.
</p>
</body>
36
Le sélecteur ID
Il permet d'assigner un identificateur unique à un groupe de propriétés de style et de les
associer à n'importe quelle balise HTML
Body {color:black}
P {font-size:medium; font-family:impact}
B {color:green}
#a124 {color:blue; font-style:italic}
37
Les pseudo-éléments et pseudo-classes
Dans la norme CSS, les propriétés de style sont normalement attachées aux différents éléments
HTML d'après la position qu'ils occupent dans la structure du document. Ceci est valable dans la
plupart des cas. Cependant certains types de présentation font référence à des éléments qui ne
sont pas repris dans la structure qui est à la base du langage HTML (par exemple, la norme
HTML 4.0 n'intègre pas d'élément représentant la première lettre d'un paragraphe).
La norme CSS a donc introduit les pseudo-éléments et les pseudo-classes pour pouvoir
assigner des propriétés de style à certains éléments qui ne sont pas présents dans la structure
HTML.
Exemple :
<style type="text/css">
p:first-line {text-transform: uppercase}
</style>
Ces "pseudo-éléments" ne sont malheureusement supportés que par Internet Explorer 5.5.
Il existe des "pseudo-classes" prédéfinies portant sur la balise <a> pour faire référence à un lien
non-visité (classe :link), un lien déjà visité (classe :visited) ou un lien actif, c'est-à-dire sur
lequel l'utilisateur est en train de cliquer (classe :active).
Exemple :
<style type="text/css">
a:link { color: red }
a:visited { color: blue }
a:hover { color: yellow }
a:active { color: lime }
</style>
38
Les balises <div> et <span>
DIV et SPAN sont deux balises HTML qui, associées aux attributs CLASS et ID, permettent
d’utiliser des mécanismes de mise en page complexes. On bénéficie grâce à ces éléments
d’une affectation des styles beaucoup plus libre et souple.
▪ La balise DIV rend possible la délimitation d’un bloc de contenu afin d’appliquer des
propriétés de style aux éléments qui le composent (texte, liste, tableau, image).
▪ La balise SPAN rend possible la délimitation d’un groupe de texte afin d’y appliquer des
propriétés de style.
Exemples :
…
<BODY>
…
<DIV CLASS="italblue">
<H1>explication du selecteur class</H1>
<P> Il permet d'assigner un nom à des styles pré-définis et de les
utiliser <B>dans n'importe quelle balise </B>
</DIV>
…
</BODY>
…
…
<BODY>
…
<SPAN ID="a124">
<P>
Sélecteur ID
<P>
Il permet d'assigner <i>un identificateur unique</i> à des styles pré-
définis et de les utiliser dans n'importe quelle balise (cette
méthode est actuellement déconseillée par le W3C).
</SPAN>
…
</BODY>
…
39
Le positionnement d'éléments HTML
Position
La syntaxe des feuilles de style peut être utilisée pour positionner des blocs de contenu HTML.
Dans ce cas, le style associé à un bloc de contenu destiné à être placé précisément dans une
page Web inclut toujours la propriété "position". La valeur qui correspond à cette propriété peut
être soit "absolute" -ce qui indique une position absolue établie indépendamment de tout autre
élément dans le document - soit "relative" -ce qui indique une position relative à l'emplacement
qu'occupe normalement le bloc de contenu dans le document.
Exemples:
H2
{
position:absolute;
...
}
P
{
position:relative
...
}
Navigateur Web
(0,0)
60 pixels
40
Top / Left
A la propriété "position" viennent s'ajouter les propriétés "top" et "left" qui permettent de préciser
les distances qui séparent le bloc de contenu du point de référence courant.
Exemple:
<head>
<style type="text/css">
.postitre
{
position:absolute;
top:10px;
left:200px;
}
h1
{
position:absolute;
top:10px;
left:0px;
font-family:arial;
font-size:80pt;
font-weight:900;
color:#CC0000;
}
h2
{
position:absolute;
top:70px;
left:40px;
font-family:arial;
font-size:40pt;
font-weight:900;
color:#aaaaaa;
}
</style>
</head>
<body>
<div class="postitre">
<H1>2</H1>
<H3>Positionnement "absolu"</H3>
</div>
41
42
Width / Height
Exemple:
P
{
position:absolute;
top:80px;
left:100px;
width:600px;
}
H2
{
position:absolute;
top:200px;
left:200px;
color:red;
width:140px;
}
43
Visibility
La propriété "visibility" précise si un bloc de contenu est "visible" ou "hidden". Ceci n'est
réellement utile que dans le contexte du Dynamic HTML et des manipulations sur les blocs de
contenu qu'il sous-entend.
Exemple:
p
{
position:relative;
top:80px;
left:100px;
width:300px;
visibility:hidden;
}
Remarque:
Un bloc de contenu qui est "caché" occupe toujours le même espace dans le document HTML
(la mise en page reste inchangée).
z-index
Exemple:
h2
{
position:absolute;
top:120px;
left:200px;
color:red;
z-index:1;
}
h3
{
position:absolute;
top:130px;
left:220px;
color:green;
z-index:10;
}
44
Ainsi, le bloc qui possède la plus grande valeur pour la propriété z-index apparaît au premier
plan.
45
Le positionnement via les balises div et span
Comme vu précédemment, les deux balises HTML "DIV" et "SPAN", associées aux attributs
"CLASS" et "ID", permettent d'aller encore plus loin dans le contrôle de la mise en page
puisqu'elles rendent possible la délimitation de blocs de contenu complexes et leur liaison avec
des styles particuliers. Ceci est de la plus grande utilité dans le cadre du positionnement
d'éléments.
Exemple:
<head>
<style type="text/css">
.first
{
position:absolute;
top:200px;
left:80px;
width:270px;
font-family:arial, sans-serif;
text-align:justify;
visibility:visible;
}
.second
{
position:absolute;
top:200px;
left:380px;
width:270px;
font-family:arial, sans-serif;
text-align:justify;
visibility:visible;
}
</style>
</head>
<body>
<h2>Positionnement "absolu"</h2>
<div class="first">
<p>
Contenu du premier paragraphe
</p>
<img src="image1.gif">
</div>
46
<div class="second">
<p>
Contenu du second paragraphe
</p>
<img src="image2.gif">
</div>
</body>
</html>
47