CSS3
CSS3
INTRO :
Le langage CSS (Cascading Style Sheets : Feuilles de Style en Cascade) a été développé par
le W3C (World Wide Web Consortium) à partir de 1996.
Il a pour but de séparer totalement la présentation d'une page Web de son contenu (c'est à dire
du langage HTML), et de faciliter ainsi la maintenance et l'accessibilité d'un site.
I. PRINCIPE :
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 html 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 CSS que l'on va déclarer toute la mise en forme des pages :
le positionnement des éléments, l'image de fond, les polices de caractère, les 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 html.
Avantages :
Obtenir une présentation homogène sur tout un site en faisant appel sur toutes les pages à
une même définition de style
Simplifie le code.
Une maintenance de site beaucoup plus facile.
Meilleure accessibilité : permet de produire des pages web respectueuses des normes du
W3C, les pages seront donc accessibles pour la majorité des navigateurs (ordinateurs,
tablettes, smartphones, smart TV, …).
1
3ième S.I. Sciences et Technologies de l’Informatique
Exp. :
- Soit le code suivant contenu dans le fichier « style.css » :
p{
color : blue ;
}
Résultat : A chaque utilisation de la balise <p> dans la page web page1.html, le contenu de
chaque paragraphe aura le même style : couleur en bleu. Il en sera de même pour toutes les
autres pages utilisant la même feuille de style.
2
3ième S.I. Sciences et Technologies de l’Informatique
balise1
{
propriété1 : valeur1 ;
propriété2 : valeur2 ;
propriéte3 : valeur3 ;
}
balise2
{
propriété1 : valeur1 ;
propriéte2 : valeur2 ;
propriété3 : valeur3 ;
propriété4 : valeur4 ;
}
balise3
{
propriété1 : valeur1 ;
}
3
3ième S.I. Sciences et Technologies de l’Informatique
Rques :
Lorsqu’on a, par exemple, le cas suivant :
h1 {
color : blue;
}
em (<em> = mise en emphase, pour insister)
{
color : blue;
}
On peut l’écrire de cette manière :
h1 , em {
color : blue;
}
Comme en HTML, il est possible de mettre des commentaires. Les commentaires ne seront
pas affichés, ils servent simplement à indiquer des informations : /* Votre commentaire */
Exp :
p{
color : blue ; /* les paragraphes de couleur bleu */
}
1. L'attribut class :
La définition des classes est aussi simple que celles des styles. Elle consiste
à écrire un point (.) et le nom que l'on souhaite donner à la classe.
Rque : Le nom de la classe peut-être composé de lettres (accentuées ou non), de chiffres et de
tirets.
.Nom-de-la-classe {
propriété-de-style: Valeur;
propriété-de-style: Valeur;
...; }
4
3ième S.I. Sciences et Technologies de l’Informatique
Exp. :
.Rouge {font-family: Verdana ; color: red; }
Pour appeler ce style dans la page HTML, on indique simplement class="Rouge" à l'intérieur de
la balise voulue :
Activité 1 :
Les pages web sont souvent ponctuées d'ancres permettant de remonter en haut de page, et
celles-ci sont souvent placées à droite de la page. Il va donc falloir déclarer un style à cette mise en
forme.
Code CSS :
.haut
{ text-align: right; }
Code HTML :
<p class="haut">
<a href="#signet_haut">Haut de page</a>
</p>
2. L'attribut id :
L'attribut id fonctionne exactement de la même manière que class mais il ne peut être utilisé
qu'une fois dans le code. C'est pour cela qu'il est plutôt utilisé à la mise en page qu'à la mise en
forme de caractères.
Dans le fichier CSS, il faudra faire précéder le nom de l'id par un dièse (#) :
Exp. :
#introduction
{ color: blue; }
Pour appeler ce style dans la page HTML, on indiquera id="introduction" à l'intérieur de la
balise voulue :
5
3ième S.I. Sciences et Technologies de l’Informatique
Activité 2 :
Construisons une section de page à deux
colonnes. L'une des deux colonnes servira pour un
menu de 110 pixels de large flottant à gauche,
l'autre pour un contenu placé à 120 pixels du bord
gauche (pour ne pas empiéter sur le menu bien
sûr).
Code CSS :
#menu {
background-color: silver;
width: 110px;
float: left; }
#contenu {
margin-left: 120px; }
Code HTML :
…
<div id="menu">
<ul>
<li>élément 1</li>
<li>élément 2</li>
<li>élément 3</li>
<li>élément 4</li>
<li>élément 5</li>
</ul>
</div>
<div id="contenu">
<p> bla bla bla bla bla bla bla </p>
</div>
…
6
3ième S.I. Sciences et Technologies de l’Informatique
Activité 3 :
En saisissant le code suivant, on constatera la différence entre la présence d’un paragraphe dans
un bloc généré avec <div> et l’existence d’un paragraphe en dehors d’un bloc :
Page.html :
…
<h1>Un titre de niveau 1</h1>
<div>
<p>Un premier paragraphe</p>
<p>Un autre paragraphe</p>
<ul>
<li>Un élément de liste</li>
<li>Un autre élément de liste</li>
</ul>
</div>
<p>Un troisième paragraphe</p>
<div>
<p>Un dernier paragraphe</p>
</div>
…
Style.css :
body { background-color: lightBlue ; }
Activité 4 :
En modifiant le code des fichiers de l’activité précédente, mettre le texte « autre élément » et
« troisième » en gras, le fond jaune et couleur de police noir.
7
3ième S.I. Sciences et Technologies de l’Informatique
Activité 5 :
En modifiant le code de l’activité précédente, définir une style de police par défaut à
l’ensemble de la page : couleur Blanc et police Calibri.
*{
font-family : calibri;
color : white; }
Le sélecteur étoile * permet de sélectionner tous les éléments HTML d’une page d’un
coup, c’est pourquoi il est également appelé sélecteur CSS universel.
8
3ième S.I. Sciences et Technologies de l’Informatique
9
3ième S.I. Sciences et Technologies de l’Informatique
10
3ième S.I. Sciences et Technologies de l’Informatique
.imageflottante
{
float: left;
}
Pour ne plus faire flotter l'élément, il faut utiliser la propriété
clear, qui peut prendre ces trois valeurs :
• left : le texte se poursuit en-dessous après un float: left;
• right : le texte se poursuit en-dessous après un float: right;
• both : le texte se poursuit en-dessous, que ce soit
après un float: left; ou après un float: right;.
<p><img src="flash.gif" class="imageflottante" alt="Image flottante" /></p>
<p>Texte écrit à côté de l'image.</p>
<p class="dessous">Texte écrit sous l'image.</p>
.imageflottante
{
float: left;
}
.dessous
{
clear: both;
}
Couleur du texte
Il y a différentes façons d'indiquer la couleur :
1. Indiquer le nom de la couleur
Propriété color, suivie d'un des seize noms de couleurs utilisables en CSS (white, black,
red, yellow, blue, …). Exemple : color: maroon
2. Indiquer le code couleur
R GB
Propriété color, suivie des codes couleur 1.
Exemple : color: rgba(240, 96, 204, 0);
Certains logiciels de retouche d'image permettent de trouver la couleur désirée (ex : paint).
Remarque : le dernier paramètre indique la transparence et a une valeur comprise entre 0
et 1 (ainsi, pour une valeur de 0.6, le texte sera opaque à 60%).
Couleur de fond
Pour indiquer une couleur de fond, utiliser la propriété CSS background-color et elle s'utilise de la
même manière que la propriété color. Pour indiquer la couleur de fond de la page web, il faut
travailler sur la balise <body>.
Exemple :
11
3ième S.I. Sciences et Technologies de l’Informatique
body
{
background-color: black; /* Le fond de la page sera noir
*/ color: white; /* Le texte de la page sera blanc */ }
Images de fond
La propriété permettant d'indiquer une image de fond est background-image.
Exemple : background-image: url("neige.png");
La propriété CSS background-attachment permet de « fixer » le fond. Deux valeurs sont
disponibles :
• fixed : l'image de fond reste fixe ;
• scroll : l'image de fond défile avec le texte (par défaut).
La propriété CSS background-repeat permet de « répéter » le fond. Quatre valeurs sont
disponibles :
• no-repeat : le fond ne sera pas répété. L'image sera donc unique sur la page.
• repeat-x : le fond sera répété uniquement sur la première ligne, horizontalement.
• repeat-y : le fond sera répété uniquement sur la première colonne, verticalement.
• repeat : le fond sera répété en mosaïque (par défaut).
La propriété CSS background-position permet d'indiquer où doit se trouver l'image de fond . Deux
valeurs sont disponibles :
• en pixels pour indiquer la position du fond par rapport au coin supérieur gauche de la page
• utiliser les valeurs : top, bottom, left, center, right Exemple :
body
{
background-image: url("soleil.png"); background-
attachment: fixed; /* Le fond restera fixe */ background-
repeat: no-repeat; /* Le fond ne sera pas répété */
background-position: top right; /* Le fond sera placé en haut à droite
*/ }
Depuis CSS3, il est possible de donner plusieurs images de fond à un élément. Pour cela, il suffit de
séparer les déclarations par une virgule, comme ceci : body {
background: url("soleil.png") fixed no-repeat top right, url("neige.png")
fixed; }
12
3ième S.I. Sciences et Technologies de l’Informatique
La première image de cette liste sera placée par-dessus les autres. Attention donc, l'ordre de
déclaration des images a son importance : si vous inversez le soleil et la neige dans le code CSS
précédent, vous ne verrez plus le soleil !
Les Bordures
Pour modifier l'apparence des bordures il faut utiliser la propriété border qui combine plusieurs
valeurs.
1. la largeur en pixels
2. la couleur (cf §couleur du texte)
3. le type de bordure avec différentes valeurs disponibles :
• none : pas de bordure (par défaut) ;
• solid : un trait simple ;
• dotted : pointillés ; • dashed : tirets ; • etc...
13
3ième S.I. Sciences et Technologies de l’Informatique
14
3ième S.I. Sciences et Technologies de l’Informatique
Exemple :
p
{
width: 350px; /* On a indiqué une largeur (obligatoire) */
margin: auto; /* On peut donc demander à ce que le bloc soit centré avec auto
*/ }
Dépassement de texte
Si vous voulez que le texte ne dépasse pas des limites du bloc, il va falloir utiliser la propriété
overflow. Voici les valeurs qu'elle peut accepter :
• visible (par défaut) : si le texte dépasse les limites de taille, il reste visible et sort
volontairement du bloc.
• hidden : si le texte dépasse les limites, il sera tout simplement coupé. On ne pourra pas
voir tout le texte.
• scroll : le texte sera coupé s'il dépasse les limites. Sauf que cette fois, le navigateur
mettra en place des barres de défilement pour qu'on puisse lire l'ensemble du texte.
• auto : le navigateur décide de mettre ou non des barres de défilement.
Remarque : la propriété word-wrap: break-word permet de forcer la césure des très longs mots
(généralement des adresses un peu longues).
Le positionnement
Les positionnements absolu, fixe et relatif
La propriété CSS position permet de positionner avec précision des éléments sur la page. Pour
cela, on lui donne une de ces valeurs :
• absolute : positionnement absolu ; il permet de placer un élément n'importe où sur la page (en
haut à gauche, en bas à droite, tout au centre, etc.).
• fixed : positionnement fixe ; identique au positionnement absolu mais, cette fois, l'élément
reste toujours visible, même si on descend plus bas dans la page.
• relative : positionnement relatif ; ce positionnement permet d'effectuer des « ajustements » :
l'élément est décalé par rapport à sa position initiale.
Si un bloc est positionné en absolu, il faut indiquer au navigateur où le positionner sur la page à
l'aide des quatre propriétés CSS :
left : position par rapport à la gauche de la
page
right : position par rapport à la droite de la
page
top : position par rapport au haut de la page ;
bottom : position par rapport au bas de la
page.
Exemple :
element
{ position: absolute;
right: 0px; bottom: 0px; }
15
3ième S.I. Sciences et Technologies de l’Informatique
Remarque : les éléments positionnés en absolu sont placés par-dessus le reste des éléments de la
page ! Par ailleurs, si vous placez deux éléments en absolu vers le même endroit, ils risquent de se
chevaucher. Dans ce cas, utilisez la propriété z-index pour indiquer quel élément doit apparaître
audessus des autres.
L'élément ayant la valeur de z-index la plus élevée
sera placé par dessus les autres, comme le montre la
figure ci-contre.
Le positionnement inline-block
En CSS la propriété display permet de transformer
n'importe quel élément de la page d'un type vers un
autre et les faire apparaître sous forme de blocs. À
ce moment-là, les éléments vont se positionner les
uns en-dessous des autres et il devient possible de
modifier leurs dimensions !
Voici quelques-unes des principales valeurs que peut
prendre la propriété display :
Valeur Exemples Description
inline <a>, <em>, <span>… Eléments d'une ligne. Se placent les uns à côté des
autres.
block <p>, <div>, <section>… Eléments en forme de blocs. Se placent les uns
endessous des autres et peuvent être redimensionnés.
inline-block <select>, <input> Eléments positionnés les uns à côté des autres (comme
les inlines) mais qui peuvent être redimensionnés
(comme les blocs).
none <head> Eléments non affichés.
Les éléments en inline-block nous permet d'utiliser la propriété vertical-align. Cette propriété
permet de modifier l'alignement vertical des éléments. Voici quelques-unes des valeurs possibles
pour cette propriété :
• baseline : aligne de la base de l'élément avec celle de l'élément parent (par défaut) ;
• top : aligne en haut ;
• middle : centre verticalement ;
• bottom : aligne en bas ;
• (valeur en px ou %) : aligne à une certaine distance de la ligne de base (baseline).
NB : les éléments inline-block se positionnent sur une même ligne de base (appelée baseline), en
bas.
Exemple : nous voulons réaliser la page suivante.
16
3ième S.I. Sciences et Technologies de l’Informatique
17
3ième S.I. Sciences et Technologies de l’Informatique
<article>
<h1>Je suis un grand voyageur</h1>
<p> (texte de l'article)</p>
</article>
</section>
<footer>
<p>Copyright voyageur - Tous droits réservés
<a href="mailto: [email protected]">Me contacter !</a></p>
</footer>
</body>
</html>
18