Outils de Développement Web L1: Olivier Mallet
Outils de Développement Web L1: Olivier Mallet
Olivier Mallet
Université de Rouen
1 Généralités
2 Sélecteurs
Classes et identifiants
Sélecteurs utilisant le contexte
3 Propriétés
Propriétés du texte
Couleurs et image de fond
Dimensions, bordures et marges
Positionnement
Généralités
Généralités
Séparation fond-forme :
HTML → contenu et structure
CSS → présentation
Feuille de style : ensemble de règles qui définissent la présentation
d’un document HTML
Une feuille de style peut être définie par
l’auteur du site
l’utilisateur
le navigateur (feuille de style par défaut)
Conflits possibles entre différentes feuilles de style ⇒ mécanisme de la
cascade pour les résoudre (CSS = Cascading Style Sheets)
Inventées par Håkon Wium Lie et Bert Bos (1994–95)
Généralités (2)
Exemple
<link rel="stylesheet" href="feuille.css" />
<!DOCTYPE html>
<html lang="fr">
<head><title>Ma page</title></head>
<body>
<h1 style="color: red">Partie 1</h1>
<p>Texte de la partie 1</p>
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Ma page</title>
<style>
h1 {color: red;}
</style>
</head>
<body>
<h1>Partie 1</h1>
<p>Texte de la partie 1</p>
<h1>Partie 2</h1>
<p>Texte de la partie 2</p>
</body>
</html>
Olivier Mallet (Université de Rouen) CSS 7 / 59
Généralités
<body>
<h1>Partie 1</h1>
<p>Texte de la partie 1</p>
<h1>Partie 2</h1>
<p>Texte de la partie 2</p>
</body>
</html>
Fichier CSS (feuille.css) : h1 {color: red;}
Olivier Mallet (Université de Rouen) CSS 8 / 59
Généralités
Syntaxe basique
Commentaires : entre /* et */
Sélecteur multiple
Exemple
h1, h2, h3 {color: red;}
est équivalent à
h1 {color: red;}
h2 {color: red;}
h3 {color: red;}
Classes
Classes : exemple
Exemple
Code CSS :
.difficile {color: red;}
.amusant {font-weight: bold;}
Code HTML :
<p class="difficile">Ceci est difficile</p>
<p class="amusant">Ceci est amusant</p>
<p class="difficile amusant">Ceci est difficile mais aussi
amusant</p>
Résultat :
Ceci est difficile
Ceci est amusant
Ceci est difficile mais aussi amusant
Olivier Mallet (Université de Rouen) CSS 14 / 59
Sélecteurs Classes et identifiants
Pseudo-classes
Identifiants
Sélecteur de descendant
sel1
Sélecteur de la forme sel1 sel2
Représente tous les éléments correspondant au ···
sélecteur sel2 contenus dans un élément
correspondant au sélecteur sel1
sel2
Exemple
Code HTML :
Résultat :
<ul id="maliste">
<li>Item 1</li> Item 1
<li>Item 2 avec <a href="x.html">un lien</a> Item 2
</li> avec
</ul> un lien
<p><a href="y.html">Un autre lien</a></p>
Un autre lien
Code CSS : #maliste a {color: gray;}
sel1
Sélecteur de la forme sel1
sel2 ...seln-1 seln ···
Représente tous les éléments sel2
correspondant à seln
contenus dans un élément ···
correspondant à seln-1
seln-1
contenu dans . . . contenu
dans un sel2 contenu dans ···
un sel1
seln
Exemple
Code HTML :
<ol> Résultat :
<li>Sortir le plat de son emballage</li>
<li>Le faire cuire au micro-ondes 1. Sortir le plat de son em-
<ul> ballage
<li>Temps de cuisson : 4 min</li>
2. Le faire cuire au micro-
<li>Puissance maximale</li>
</ul> ondes
</li> ◦ Temps de cuisson : 4
<li>Servir</li> min
</ol>
◦ Puissance maximale
Code CSS : 3. Servir
ol li ul li {color: red;}
Sélecteur d’enfant
Sélecteur de la forme sel1 > sel2
sel1
Représente tous les sel2 directement contenus dans
un sel1 (pas d’élément contenant sel2 et contenu
sel2
dans sel1)
Exemple
Code HTML :
<body>
<div> Résultat :
<p>Un paragraphe</p>
</div> Un paragraphe
<p>Un autre paragraphe</p>
Un autre paragraphe
</body>
Code CSS : body > p {color: red;}
Exemple
Code HTML :
<div class="bidon">
Résultat :
Un bloc bidon
</div> Un bloc bidon
<p>Un paragraphe</p>
Un paragraphe
<p>Un autre paragraphe</p>
Code CSS : Un autre paragraphe
.bidon + p {background-color: yellow;}
Le sélecteur universel
Notation : *
C’est un joker qui représente n’importe quel élément
Exemple (On affiche tout le texte en rouge)
* {color: red;}
Unités de longueur
Unités absolues
cm centimètre
mm millimètre
in pouce (1 in = 2,54 cm)
1
pt point (1 pt = 72 in ≃ 0,35 mm)
pc pica (1 pc = 12 pt = 16 in ≃ 4,2 mm)
1
px pixel (1 px = 96 in ≃ 0,26 mm)
Unités relatives
em taille de la police
ex hauteur des minuscules
% pourcentage
Pas d’espace avant l’unité ou le signe % (exemples : 50px, 75%)
Séparateur décimal : le point (exemple : 1.5em)
Propriétés du texte
Exemple
h1 {font-family: Arial;}
h2 {font-family: sans-serif;}
Exemple (Titres de niveau 1 trois fois plus gros que le texte de leur
parent)
h1 {font-size: 300%;}
Exemple
Code HTML : <h2>Tout est en italique <em>sauf ceci</em></h2>
Code CSS :
h2 {font-style: italic;}
h2 em {font-style: normal;}
Exemple
ul li {font-variant: small-caps;}
Exemple
#menu a {font-weight: bold;}
Exemple
strong {text-transform: uppercase;}
Exemple
h1 {text-align: center;}
Couleurs
Exemple
body {
background: url("mer.jpg") no-repeat left bottom;
}
est équivalent à
body {
background-image: url("mer.jpg");
background-repeat: no-repeat;
background-position: left bottom;
}
Modèle de boîte
contenu height
width
Bordures
div {
border-width: 2px;
border-style: dashed;
border-color: red;
}
Exemple
/* pas de bordure (border-style=none) */
p {border: 1px black}
Marges
Marges extérieures :
margin-left longueur / pourcentage / auto
de même :
margin-right
margin-top
margin-bottom
margin 1, 2, 3 ou 4 valeurs (comme pour les bordures)
Remarque
margin: auto; permet de centrer un bloc horizontalement.
Marges intérieures :
padding-left
padding-right
padding-top
padding-bottom
padding
Olivier Mallet (Université de Rouen) CSS 45 / 59
Propriétés Positionnement
Un bloc est placé sous son frère précédent et occupe toute la largeur
disponible dans son conteneur
Un élément en ligne se place à la suite du précédent sur la même ligne
(on passe à la ligne s’il n’y a plus de place)
Positionnement par défaut qu’on peut changer avec la propriété
position
Un élément est dit positionné si on a défini une valeur pour sa
propriété position
Exemple
Résultat :
Code HTML :
<p>Un paragraphe</p>
<p id="truc"> Un autre</p>
<p>Encore un autre</p>
Code CSS :
p {border: solid;}
Positionnement relatif
position: relative;
Variante du positionnement dans le flux courant
On peut décaler l’élément par rapport à sa position normale avec les
propriétés top, right, bottom et left
Attention !
left: 20px; décale de 20 pixels à droite (par rapport au bord gauche) !
Les autres éléments ne sont pas affectés par ce décalage
Permet de superposer des éléments
Positionnement absolu
position: absolute;
L’élément sort du flux normal
Les autres éléments se placent comme s’il n’existait pas
Décalage avec top, right, bottom, left
Position de référence : premier ancêtre positionné (en relatif ou
absolu) ou la fenêtre du navigateur
Exemple
Code HTML : Résultat :
<body>
<p>Un paragraphe</p>
<p id="truc"> Un autre</p>
<p>Encore un autre</p>
</body>
Code CSS :
body, p {border: solid;}
#truc {
position:absolute;
left : 20px;
bottom : 0px;
}
Ordre d’empilement
z-index : exemple
Exemple
Code HTML :
<p id="p1">Un</p> Résultat :
<p id="p2">Deux</p>
Code CSS :
#p1 {position: absolute; z-index: 2;
width: 150px; height: 140px;
top: 100px; left: 200px;
background-color: lime;}
#p2 {position: absolute; z-index: 1;
width: 225px; height: 100px;
top: 50px; left: 25px;
background-color: yellow;}
Positionnement flottant
Propriété float
L’élément se place à gauche ( float: left; ) ou à droite ( float: right; ) de
son conteneur
Les éléments qui le suivent se placent dans l’espace libre, en épousant
sa forme
Permet de placer des blocs côte à côte
Applications : illustration dans un texte, lettrine
Interdire le voisinage d’un élément flottant : propriété clear (pour les
blocs)
left pas d’élément flottant à gauche
right pas d’élément flottant à droite
both aucun élément flottant au même niveau
Code HTML :
<p class="rem">Attention, ceci est
important !</p>
<p>Voici la suite du texte qui s’enroule Résultat :
autour du premier paragraphe. C’est
tout !</p>
Code CSS :
.rem {
background-color: red;
float: right;
width: 50%;
}
Le positionnement inline-block
display: inline-block;
Les éléments ainsi positionnés se placent côte à côte (comme les
éléments en ligne) et peuvent être redimensionnés (comme les blocs)
avec les propriétés width et height
Propriété vertical-align pour modifier l’alignement vertical des
éléments :
baseline
bottom
middle
top
longueur
pourcentage
Exemple
Code HTML :
<div id="ib">
<p>Paragraphe</p>
<p>Un second paragraphe</p>
</div> Résultat :
Code CSS :
Paragraphe Un second
#ib p { paragraphe
border: 1px solid black;
display: inline-block;
width: 100px;
vertical-align: top;
}