Programmation Web - CSS
Programmation Web - CSS
05/11/2017
Technologies Web 1/200 1
FEUILLES DE STYLE EN CASCADE
2/200 2
FEUILLES DE STYLE EN CASCADE
Avantage
▪ document HTML et feuille CSS peuvent être définis dans des fichiers séparés
▪ création plus efficace
▪ code HTML plus simple et plus lisible
▪ on peut changer la feuille de style sans modifier le document
▪ on peut avoir plusieurs feuilles de style pour un document
▪ plusieurs pages peuvent partager la même feuille de style
05/11/2017 3/200 3
FEUILLES DE STYLE EN CASCADE
Principe
▪ le langage CSS définit un ensemble de propriétés qui ont une influence sur l’affichage des
éléments d’une page
▪ pour chaque propriété il existe un ensemble de valeurs possibles
▪ il est possible de fixer ces propriétés pour chacun des éléments d’un document HTML
▪ les propriétés agissent sur l’apparence de la boîte d’un élément.
Ces propriétés concernent :
05/11/2017 4/200 4
FEUILLES DE STYLE EN CASCADE
<head>
<link href="fichier.css" rel="stylesheet" type="text/css"/>
</head>
05/11/2017 5/200 5
FEUILLES DE STYLE EN CASCADE
Index.html p{
color: blue;
<html> }
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title> Premiers tests du CSS</title>
</head>
<body>
<h1> Mon super site </h1>
<p> Bonjour et bienvenue sur mon site ! </p>
<p> Pour le moment, mon site est un peu <em> vide </em>.
Patientez encore un peu ! </p>
</body>
</html>
05/11/2017 6/200 6
FEUILLES DE STYLE EN CASCADE
<html>
<head>
<meta charset="utf-8" />
<style>
p
{
color: blue;
}
</style>
<title> Premiers tests du CSS</title>
</head>
<body>
<h1> Mon super site </h1>
<p> Bonjour et bienvenue sur mon site ! </p>
<p> Pour le moment, mon site est un peu <em> vide </em>.
Patientez encore un peu ! </p>
</body>
</html>
05/11/2017 7/200 7
FEUILLES DE STYLE EN CASCADE
▪ vous pouvez ajouter un attribut style à n'importe quelle balise. Vous insérerez votre code
CSS directement dans cet attribut
<html>
<head>
<meta charset="utf-8" />
<title> Premiers tests du CSS</title>
</head>
<body>
<h1> Mon super site </h1>
<p style="color: blue;" > Bonjour et bienvenue sur mon site ! </p>
<p> Pour le moment, mon site est un peu <em> vide </em>.
Patientez encore un peu ! </p>
</body>
</html>
05/11/2017 8/200 8
FEUILLES DE STYLE EN CASCADE
Propriété valeur
Sélecteur
p{
color: blue;
}
déclaration
05/11/2017 9/200 9
FEUILLES DE STYLE EN CASCADE
p{
color: blue;
Plusieurs
déclarations
possibles font-size: 20px;
width: 200px;
}
05/11/2017 10/200 10
FEUILLES DE STYLE EN CASCADE
p{
color: blue;
font-size: 20px;
width: 200px;
}
h1 { feuille de style
color: green;
font-size: 36px;
text-align: center;
}
...
05/11/2017 11/200 11
TYPE DE SÉLECTEUR
p{
color: blue;
}
Texte en bleu
05/11/2017 12/200 12
TYPE DE SÉLECTEUR
Sélecteur de Classe
• Les sélecteurs de classe CSS permettent de cibler des éléments d'un document en
fonction du contenu de l'attribut class de chaque élément.
• Plusieurs objets peuvent être de la même classe.
• Style : utilisation du symbole "."
Définition de la classe
Utilisation de la classe
.blue {
color: blue;
}
Style non défini
Sélecteur de Classe
.spacious
{
margin: 2em;
}
li.spacious
{
margin: 2em;
}
05/11/2017 14/200 14
TYPE DE SÉLECTEUR
Sélecteur de Classe
p.big {
font-size: 20px;
} Taille de
texte 20px
<p class="big">...</p>
<div class="big">...</div>
05/11/2017 15/200 15
TYPE DE SÉLECTEUR
Sélecteur d'ID
• Un sélecteur d'identifiant (ID selector) permet, pour un document HTML, de cibler
un élément grâce à la valeur de son attribut id. Il faut que la valeur soit exactement
la même que celle du sélecteur pour que l'élément soit effectivement ciblé.
• Style : utilisation du symbole "#"
Définition de l’id
utilisation de id sans #
#name {
color: blue;
}
05/11/2017 16/200 16
TYPE DE SÉLECTEUR
Groupement de Sélecteurs
Sélecteurs séparés
par des virgules
div, .blue{
color: blue;
}
05/11/2017 17/200 17
TYPE DE SÉLECTEUR
h3 em
{
}
– Sélectionne toutes les balises <em> situées à l'intérieur d'une balise <h3>.
Notez qu'il n'y a pas de virgule entre les deux noms de balises
05/11/2017 18/200 18
TYPE DE SÉLECTEUR
Sélecteurrd'attribut
▪ A[attribut] : une balise qui possède un attribut
a[title]
{ <a href="http://site.com" title="Infobulle">
}
05/11/2017 19/200 19
TYPE DE SÉLECTEUR
Sélecteur d'attribut
28/200 20
COMBINAISON DE SÉLECTEUR
▪ Sélecteur de descendantt
p h2 { color: green }
Les h2 qui sont dans un p
▪ Sélecteur d'enfantt
21/200 21
COMBINAISON DE SÉLECTEUR
Sélecteur de descendant
Article p {
color: blue;
} Texte bleu
<article>...
Texte <p> un texte ... </p>
non </article>
définit un texte ...
<p> un texte ... </p>
<article>...
<div><p> un texte ... </p></div>
</article>
Texte bleu
22/200 22
COMBINAISON DE SÉLECTEUR
Sélecteur d'enfant
article > p {
color: blue;
} Texte bleu
<article>...
Texte <p> un texte ... </p>
non </article>
définie un texte ...
<p> un texte ... </p>
<article>...
<div><p> un texte ... </p></div>
</article>
Texte non définie
23/200 23
COMBINAISON DE SÉLECTEUR
24/200 24
PSEUDO-CLASSE
Les pseudo-classes
Une pseudo-classe est un sélecteur ciblant des éléments dans un état spécifique, par
exemple le premier élément d'un type, ou un élément survolé par le pointeur de la souris.
Leur comportement correspond à celui d'une classe.
Les pseudo classes sont reconnaissables au fait qu’elles commencent tous par le symbole :
« : nom_pseudo-classe »
– :first-child : Sélectionne la première balise <p> p:first-child{}
du corps de la page (body) ou les premières <p> Mon premier paragraphe </p>
<p> Mon second paragraphe </p>
balises p à l'intérieur d'une autre balise parent.
27/200 25
PSEUDO-CLASSE
▪ Exemples :
– :link va nous permettre de styliser un lien non visité;
– :visited va nous permettre de styliser un lien une fois celui-ci visité.
– :hover va nous permettre de changer l’aspect d’un élément lorsque les visiteurs
poseront leur curseur dessus ;
– :active va nous permettre de modifier l’aspect d’un lien lors du clic.
25/200 26
PSEUDO-CLASSE
<body>
<h1>Pseudo classes CSS</h1>
<div class="test">
<p> un
<a href="http://www.site.ma"> h1:hover{
lien1 color: orange;
</a> font-family : verdana, sans-serif;
non visité }
</p> a:link{
<p> un paragraphe </p> color: red;
</div> text-decoration : none;
<div> }
<p> un a:active
<a href="http://www.google.ma"> {
lien2 background-color : #FFCC66;
</a> }
déjà visité a:visited{
</p> color : green;
</div> }
<p>un paragraphes</p>
<P><strong>paragraphe importatnt</strong></p>
</body>
26/200 27
PSEUDO-CLASSE
Les pseudo-éléments
▪ :first-letter :Sélectionne la 1ère lettre du texte contenue dans tous les éléments <p>
p:first-letter{}
<p> Ce texte comporte une première lettre </p>
p:first-line{}
<p> Ma première ligne <br> Ma seconde ligne</p>
28
PSEUDO-SÉLECTEURS
29/200 29
PSEUDO-SÉLECTEURS
30/200 30
RÉSOLUTION DES CONFLITS
31/200 31
RÉSOLUTION DES CONFLITS
Calcul de priorité
34/200 32
RÉSOLUTION DES CONFLITS
Calcul de priorité
a b c d
Style = "…" ID Class, pseudo-class, Eléments ou
attribut pseudo-éléments
0 0 0 2
35/200 33
RÉSOLUTION DES CONFLITS
Calcul de priorité
Class,
sélecteur style ID Pseudo-Class Élément
attribut
* {...} 0 0 0 0
h1 {...} 0 0 0 1
div.reponse{...} 0 0 1 1
#joconde{...} 0 1 0 0
div a{...} 0 0 0 2
div a:visited{...} 0 0 1 2
p span.fichier{...} 0 0 1 2
p a[href$=”.pdf”] {...} 0 0 1 2
p.enonce a[href$=”.pdf”] {...} 0 0 2 2
ol.exercice li.question{...} 0 0 2 2
div#diaporama img.gauche{...} 0 1 1 2
article#special p:hover{...}
<p style="…"> texte </p> 1 1 1 2
36/200 34
RÉSOLUTION DES CONFLITS
37/200 35
FORMATAGE DU TEXTE
05/11/2017 33/200 36
FORMATAGE DU TEXTE
▪ Pour indiquer une taille absolue, on utilise généralement les pixels. Pour avoir un
texte de 16 pixels de hauteur, vous devez donc écrire : font-size: 16px;
▪ Exemple
p{
font-size: 14px;
}
h1
{
font-size: 40px;
}
05/11/2017 34/200 37
FORMATAGE DU TEXTE
▪ Vous pouvez par exemple écrire la taille avec des mots en anglais comme ceux-ci :
– xx-small : minuscule ;
– x-small : très petit ;
p{
– small : petit ; font-size: small;
– medium : moyen ; }
h1{
– large : grand ; font-size: large;
– x-large : très grand ; }
– xx-large : … gigantesque.
05/11/2017 35/200 38
FORMATAGE DU TEXTE
05/11/2017 36/200 39
FORMATAGE DU TEXTE
La police
▪ La propriété CSS qui permet d'indiquer la police à utiliser est font-family
▪ liste de polices qui fonctionnent bien sur la plupart des navigateurs :
– Arial ;
– Arial Black ;
– Comic Sans MS ; p
– Courier New ; {
– Georgia ; font-family: Arial;
}
– Impact ;
– Times New Roman ;
– Trebuchet MS ;
– Verdana.
05/11/2017 37/200 40
FORMATAGE DU TEXTE
Italique, gras, souligné…
▪ en CSS, pour mettre en italique, on utilise font-style qui peut prendre trois valeurs :
– italic : le texte sera mis en italique.
– oblique : le texte sera passé en oblique (les lettres sont penchées, le résultat est légèrement
différent de l'italique proprement dit).
– normal : le texte sera normal (par défaut). Cela vous permet d'annuler une mise en italique.
▪ La propriété CSS pour mettre en gras est font-weight et prend les valeurs suivantes :
– bold : le texte sera en gras ;
– normal : le texte sera écrit normalement (par défaut).
05/11/2017 38/200 41
FORMATAGE DU TEXTE
05/11/2017 39/200 42
FORMATAGE DU TEXTE
Alignement de texte
▪ Le langage CSS nous permet de faire tous les alignements connus : à gauche, centré, à
droite et justifié.
▪ C'est tout 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é ». Justifier le texte permet de faire en sorte qu'il prenne toute la
largeur possible sans laisser d'espace blanc à la fin des lignes.
p
{
text-decoration : underline;
Text-align: center;
}
05/11/2017 40/200 43
FORMATAGE DU TEXTE
p
{
text-transform : capitalize;
}
05/11/2017 41/200 44
FORMATAGE DU TEXTE
h1{
text-shadow : -1px 1px 1px blue;
}
05/11/2017 42/200 45
FORMATAGE DU TEXTE
Les couleurs
▪ Le nom de la couleur :
La figure suivante vous montre les seize couleurs que vous pouvez
utiliser en tapant simplement leur nom.
05/11/2017 43/200 46
FORMATAGE DU TEXTE
▪ Il y a deux manières de gérer l’opacité des textes (le fait d’être plus ou moins transparent):
1) En utilisant la propriété CSS opacity. Cette propriété va prendre une valeur entre 0
(texte totalement transparent) et 1 (texte totalement opaque).
opacity: 0.5;
2) Indiquer une quatrième valeur définissant l’opacité dans nos notations RGB.
Dans ce cas là, la notation devient RGBa. Cette quatrième valeur, doit être comprise
entre 0 (texte transparent) et 1 (texte opaque).
color: RGBa(255,000,000,0.9);
05/11/2017 44/200 47
EXEMPLE
<body>
<h1> Liste des cours </h1>
<p id="P1"> h1{
Cours Base de données text-shadow : 3px 5px 1px
</p> blue;}
<p id="P2"> #P1{
Cours Technologie Web font-family: Courier New;}
</p> #P2{
<p id="P3"> font-style: italic;
Cours langage de font-weight: bold;}
Programmation C #P3{
</p> text-decoration: underline;
<p id="P4"> text-align: center;}
Cours Architecture des ordinateurs #P4{
</p> text-transform : capitalize;}
<p id="P5">
Cours Programmation JAVA #P5{
</p> color: RGBa(255,000,000,0.4);
}
</body>
50/200 48
L’ARRIÈRE PLAN
Background
▪ La propriété CSS background va nous permettre de modifier le fond.
▪ Vous pouvez définir directement en CSS le fond d'une page HTML et même une image.
▪ Grâce à la propriété background-color, nous allons tout aussi bien pouvoir rajouter une
couleur derrière un texte ou une couleur de fond pour un élément ou une page en
l’appliquant à l’élément body.
▪ Pour ajouter une image de fond derrière un élément nous allons cette fois-ci utiliser la
propriété background-image.
05/11/2017 45/200 49
L’ARRIÈRE PLAN
Background-color
body{
background-color: purple;
}
h1{
background-color: #069;
}
div{
background-color: RGBa(200, 200, 000, 0.5);
}
05/11/2017 46/200 50
L’ARRIÈRE PLAN
Background-image
body{
background-image: url(Koala.jpg);
background-size: 25%;
}
05/11/2017 47/200 51
LE MODÈLE DES BOÎTES
▪ En HTML, la plupart des balises peuvent se ranger dans l'une ou l'autre de deux catégories :
– Les balises inline : se trouvent obligatoirement à l'intérieur d'une balise block.
Une balise inline ne crée pas de retour à la ligne, le texte qui se trouve à l'intérieur s'écrit donc à
la suite du texte précédent, sur la même ligne.
– Les balises block : créent automatiquement un retour à la ligne avant et après.
Il est possible de mettre un bloc à l'intérieur d'un autre, ce qui va augmenter
considérablement nos possibilités pour créer le design de notre site !
▪ Il existe deux balises génériques et, comme par hasard, la seule différence entre les deux
est que l'une d'elle est inline et l'autre est block :
– <span></span> (inline) ;
– <div></div> (block).
▪ Contrairement à un inline, un bloc a des dimensions précises.
Un bloc possède une largeur et une hauteur. on dispose de deux propriétés CSS :
48/200 52
LE MODÈLE DES BOÎTES
▪ Pour que notre site s'adapte aux différentes résolutions d'écran de nos visiteurs, un
bloc a des dimensions minimales et maximales :
– min-width : largeur minimale ;
– min-height : hauteur minimale ;
– max-width : largeur maximale ;
– max-height : hauteur maximale.
div{
width: 350px;
border: 1px solid black;
padding: 12px;
margin: 50px;
}
05/11/2017 49/200 53
LE MODÈLE DES BOÎTES
▪ La première boîte (la boîte centrale) représente le contenu de l’élément ou l'élément en soi.
▪ Ensuite, autour du contenu, la deuxième boîte contient en plus la marge intérieure de l’élément
qu'on appelle en CSS le "padding".
▪ La troisième boîte va contenir en plus la bordure de l’élément.
▪ Enfin, la dernière boîte va également contenir la marge extérieure de l’élément.
05/11/2017 50/200 54
LE MODÈLE DES BOÎTES
div{
/*Couleur de fond (bleu-vert)*/
background-color: #088;
<!DOCTYPE html> /*Largeur de l'élément en soi*/
<html> width: 300px;
<head> /*Marge intérieure*/
<title>Le modèle des boîtes</title> padding: 20px;
<meta charset= "utf-8"> /*Bordure (vert)*/
</head> border: 20px solid #0C0;
/*Marge extérieure*/
<body> margin: 50px;
<div> }
<h1>Le modèle des boîtes</h1>
<p>Un premier paragraphe.</p> border
<p>Un autre paragraphe</p>
</div> padding
</body>
</html>
width
05/11/2017 51/200 55
LE MODÈLE DES BOÎTES
▪ margin (comme padding d'ailleurs) s'applique aux quatre côtés du bloc
▪ Si vous voulez spécifier des marges différentes en haut, en bas, à gauche et à droite, il va falloir
utiliser des propriétés plus précises
▪ Voici la liste pour margin :
– margin-top : marge extérieure en haut ;
– margin-bottom : marge extérieure en bas ;
– margin-left : marge extérieure à gauche ;
– margin-right : marge extérieure à droite.
▪ Et la liste pour padding :
– padding-top : marge intérieure en haut ;
– padding-bottom : marge intérieure en bas ;
– padding-left : marge intérieure à gauche ;
– padding-right : marge intérieure à droite.
▪ Il y a d'autres façons de spécifier les marges avec les propriétés margin et padding.
Par exemple :
margin: 2px 0 3px 1px; signifie : 2 px de marge en haut, 0 px à droite
(le px est facultatif dans ce cas), 3 px en bas, 1 px à gauche ».
05/11/2017 52/200 56
LE MODÈLE DES BOÎTES
▪ Pour régler efficacement la hauteur et la largeur d’un élément, il faut avant tout bien
avoir compris le modèle des boîtes.
▪ En effet, vous devez bien vous rappeler que vous ne définissez que la hauteur et la
largeur du contenu de l’élément en soi.
Les tailles des marges intérieures, extérieures et des bordures viendront s’ajouter à
cette hauteur et à cette largeur afin de former la taille totale de l’élément.
▪ Si vous ne faîtes pas attention, vous risquez de créer des éléments plus grands au final
que leurs éléments parents, ce qui est généralement considéré comme une mauvaise
pratique en HTML et en CSS.
05/11/2017 53/200 57
LE MODÈLE DES BOÎTES
div{
<!DOCTYPE html> background-color: #088;
width: 500px;
<html> }
<head> h1{
<title>Le modèle des boîtes</title> width:300px;
<meta charset= "utf-8"> background-color: white;
height: 100px;
</head> border: 1px solid black;
}
<body> .para1{
<div> width: 400px;
background-color: red;
<h1>Le modèle des boîtes</h1> padding: 60px;
<p class="para1"> border: 5px solid #A04;
Un premier paragraphe. margin-top:70px;
</p> margin-left:50px;
}
<p class="para2">
Un autre paragraphe
Div
</p> .para1 width : 500px
</div> width : 400px
</body> .para1
margin-left : 70px
</html>
05/11/2017 54/200 58
LE MODÈLE DES BOÎTES
Les bordures
▪ L’espace pris par la bordure va se trouver entre la marge intérieure et la marge extérieure
d’un élément HTML.
▪ Nous pouvons définir les bordures d’un élément de différentes manières en CSS : soit en
utilisant les trois propriétés
– border-style,
– border-width
– border-color,
– soit un utilisant directement la notation courte border.
▪ Le CSS nous permet également de définir des bordures différentes au dessus, à droite, en
dessous et à gauche de nos éléments HTML. Pour cela, nous allons devoir ajouter les mots
clés top (haut), right (droit), bottom (bas) et left (gauche) dans le nom de nos propriétés
▪ Nous pouvons créer des bordures arrondies avec la propriété border-radius.
05/11/2017 55/200 59
LE MODÈLE DES BOÎTES
Les bordures
▪ La propriété border-style peut prendre huit valeurs différentes qui vont définir
l’allure générale (le style) de notre bordure.
05/11/2017 56/200 60
LE MODÈLE DES BOÎTES
▪ Il est tout à fait possible de centrer des blocs. C'est même très pratique pour réaliser un
design centré quand on ne connaît pas la résolution du visiteur.
▪ Pour centrer, il faut respecter les règles suivantes :
– donnez une largeur au bloc (avec la propriété width) ;
– indiquez que vous voulez des marges extérieures automatiques, comme ceci : margin: auto;.
p{
width: 350px; /* On a indiqué une largeur (obligatoire) */
margin: auto; /* On peut donc demander à ce que le bloc soit centré avec auto */
border: 1px solid black;
text-align: justify;
padding: 12px;
margin-bottom: 20px;
}
05/11/2017 57/200 61
LE MODÈLE DES BOÎTES
Les bordures
div{
background-color: #269;
width: 400px;
border : 5px ridge #444;
}
.para1{
width:75%;
border-width : 2px;
border-style: dashed;
border-color: yellow;
}
.para2{
border: 5px double yellow;
}
05/11/2017 58/200 62
LE MODÈLE DES BOÎTES
Les bordures
div{
background-color: #269;
width: 400px;
border-bottom : 5px ridge #444;
border-top: 5px ridge #444;
}
.para1{
width:75%;
border-top-width : 2px;
border-bottom-width: 10px;
border-right-width: 5px;
border-left-width: 5px;
border-style: inset;;
border-color: yellow;
}
.para2{
border-top: 5px solid red;
border-right: 5px solid lime;
border-bottom: 5px solid red;
border-left: 5px solid lime;
}
05/11/2017 59/200 63
LE MODÈLE DES BOÎTES
Les bordures
div{
background-color : #269;
width : 400px;
border : 5px ridge #444;
border-radius : 15px;
padding-left: 100px;
}
.para1{
width:300px;
border : 3px solid yellow;
}
.para2{
width:300px;
border : 3px solid yellow;
padding: 25px;
}
05/11/2017 60/200 64
LE MODÈLE DES BOÎTES
Overflow
▪ Supposons que vous ayez un long paragraphe et que vous vouliez qu'il fasse 250 px de
large et 110 px de haut. Pour que le texte ne dépasse pas des limites du paragraphe, 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 : là encore, 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. C'est un peu comme un cadre à l'intérieur de la page.
– auto : c'est le mode « pilote automatique ». En gros, c'est le navigateur qui décide
de mettre ou non des barres de défilement (il n'en mettra que si c'est nécessaire).
C'est la valeur que je conseille d'utiliser le plus souvent.
67/200 65
LE MODÈLE DES BOÎTES
Overfloww
div{
background-color : #269;
width : 400px;
border : 5px ridge #444;
border-radius : 15px;
padding-left: 100px;}
.para1{
width:300px;
height : 50px;
border : 3px solid yellow;
overflow : auto;
}
.para2{
width:300px;
border : 3px solid yellow;
padding: 25px;
}
68/200 66
LE MODÈLE DES BOÎTES
La propriété box-shadow
▪ Créer des ombres autour de nos boîtes (à l’extérieur ou à l’intérieur des bordures)
grâce à la propriété CSS box-shadow.
▪ La propriété text-shadow, box-shadow va prendre quatre valeurs différentes dans
l’ordre suivant :
– Le déplacement horizontal (vers la droite ou la gauche) de l’ombre ;
– Le déplacement vertical (vers le bas ou le haut) de l’ombre ;
– Le rayon de propagation de l’ombre ;
– La couleur de l’ombre.
05/11/2017 63/200 67
LE MODÈLE DES BOÎTES
div{
background-color: #89B;
width: 400px;
border: 5px solid #777;
border-radius: 15px;
box-shadow: 3px 3px 9px orange;
}
.para1{
width: 50%;
margin: 0px auto;
padding: 20px;
border: 2px solid #BB0;
box-shadow: -4px -4px 5px yellow;
}
.para2{
width: 50%;
margin: 50px auto;
padding: 20px;
border: 2px solid #0B0;
box-shadow: -4px 4px 5px lime inset;
}
05/11/2017 64/200 68
LE MODÈLE DES BOÎTES
72/200 70
LE MODÈLE DES BOÎTES
73/200 71
LE MODÈLE DES BOÎTES
Considérons l’exemple suivant :
74/200 72
LE MODÈLE DES BOÎTES
75/200 73
.component2 {
float: right;
background-color: green;
}
.component3 {
float: left;
background-color: blue;
}
76/200 74
Dans ce cas, il faut ajouter
.component4 {
clear: both;
background-color: yellow;
}
77/200 75
<div class="main">
<div class="left">1</div>
<div class="right">2</div>
<div class="left clear-left">3</div>
<div class="left">4</div>
<div class="left clear-left">5</div>
<div class="left">6</div>
<div class="left">7</div>
<div class="left">8</div>
<div class="left">9</div>
<div class="right clear-left">10</div>
</div>
79/200 76
<div class="main"> .main { width: 800px;
<div class="left">1</div> border: 2px dotted;
<div class="right">2</div> }
<div class="left clear-left">3</div> .main div { background: #abc123;
<div class="left">4</div> text-align: center;
<div class="left clear-left">5</div> line-height: 50px;
width: 200px;
<div class="left">6</div> box-shadow: inset 0 0 1px #000;
<div class="left">7</div> margin-bottom: 10px;
<div class="left">8</div> }
<div class="left">9</div> div.left {
<div class="right clear-left">10</div> float: left;
</div> }
80/200 77
.main { width: 800px;
<div class="main"> border: 2px dotted;
<div class="left">1</div> }
<div class="right">2</div> .main div { background: #abc123;
<div class="left clear-left">3</div>
text-align: center;
<div class="left">4</div>
line-height: 50px;
<div class="left clear-left">5</div> width: 200px;
<div class="left">6</div> box-shadow: inset 0 0 1px #000;
<div class="left">7</div> margin-bottom: 10px;
<div class="left">8</div> }
<div class="left">9</div> div.left {
<div class="right clear-left">10</div> float: left;
</div> }
div.right {
float: right;
}
81/200 78
.main { width: 800px;
<div class="main">
border: 2px dotted;
<div class="left">1</div>
}
<div class="right">2</div>
.main div { background: #abc123;
<div class="left clear-left">3</div>
text-align: center;
<div class="left">4</div>
line-height: 50px;
<div class="left clear-left">5</div> width: 200px;
<div class="left">6</div> box-shadow: inset 0 0 1px #000;
<div class="left">7</div> margin-bottom: 10px;
<div class="left">8</div> }
<div class="left">9</div> div.left { float: left;
<div class="right clear-left">10</div> }
</div> div.right { float: right;
}
div.clear-left { clear: left;
}
82/200 79
LE MODÈLE DES BOÎTES
– static : correspond au positionnement par défaut des éléments HTML dans une page.
– relative : relativement par rapport à sa position par défaut. si on positionne un
élément HTML de façon relative et qu’on lui ajoute right:50px, l’élément sera
déplacé de 50 pixels vers la droite par rapport à sa position par défaut.
– fixed : toujours rester à la même place, même si l’un de vos visiteurs descend
("scroll") dans la page. très utile pour conserver un élément constamment visible,
comme un menu ou un sommaire par exemple.
– Absolute: positionner un élément de façon relative par rapport à son parent le plus
proche auquel on a appliqué un positionnement spécifique (relative, fixed ou
absolute)
83/200 80
LE MODÈLE DES BOÎTES
div{
background-color: #89B;
width: 400px;
border: 5px solid #777;
border-radius: 15px;
}
.para1{
postion: relative;
left: 50px;
width: 50%;
}
.para2{
position: absolute;
right: 70px;
top :10px
}
84/200 81
LE MODÈLE DES BOÎTES
▪ La propriété display peut prendre de nombreuses valeurs nous permettant de gérer précisément la
façon dont chaque élément va être affiché.
– Display : inline l’élément ciblé va se comporter comme un élément de type inline et donc
n’occuper que la largeur qui lui est strictement nécessaire.
– Display : block les éléments ciblés vont se comporter comme des éléments HTML de type block
et ainsi prendre toute la largeur disponible.
– Display : inline-block permettre d’emprunter certaines propriétés des éléments de type block
et certaines propriétés des éléments de type inline. Ainsi, l’élément en soi va être de type inline
tandis que ce qu’il contient (« l’intérieur de la boîte ») va être considéré comme étant de type
block.
– Display : none la valeur none va nous permettre tout simplement de ne pas afficher un
élément. Cela peut se révéler très pratique dans de nombreux cas, notamment lorsqu’on veut
modifier l’affichage de nos pages selon l’appareil utilisé par nos visiteurs (ordinateur de bureau,
téléphone portable, tablette, etc.).
85/200 82
LE MODÈLE DES BOÎTES
div{
background-color: #89B;
width: 400px;
border: 5px solid #777;
border-radius: 15px;
box-shadow: 3px 3px 9px orange;
}
.para1{
display: inline-block;
border: 1px solid black;
width: 50%;
}
.para2{
display: inline-block;
border: 1px solid black;
width: 40%;
}
86/200 83
LE MODÈLE DES BOÎTES
87/200 84
LE MODÈLE DES BOÎTES
red
green
blue
ye l l o w
Et si on veut placer les balises div les unes à coté des autres?
88/200 85
LE MODÈLE DES BOÎTES
.container {
display: flex;
}
89/200 86
LE MODÈLE DES BOÎTES
.container {
background-color: black;
display: flex;
}
.container > div {
width: 30%;
}
90/200 87
LE MODÈLE DES BOÎTES
.container {
background-color: black;
display: flex;
flex-direction: row-reverse;
}
91/200 88
LE MODÈLE DES BOÎTES
row-reverse : organiser les boites sur une ligne dans le sens inverse.
column-reverse : organiser les boites sur une colonne dans le sens inverse.
Remarque
92/200 89
LE MODÈLE DES BOÎTES
La propriété flex-wrap
Pour indiquer s’il faut retourner à la ligne si la boite container ne suffit
pas
nowrap (par défaut) : organiser les boites sans retour à la ligne
wrap : retourner à la ligne si place insuffisante
wrap-reverse : retourner à la ligne si place insuffisante dans le
sens inverse
93/200 90
LE MODÈLE DES BOÎTES
yellow
94/200 91
LE MODÈLE DES BOÎTES
flex-flow
raccourci de flex-direction et flex-wrap
exemple : flex-flow : row wrap;
95/200 92
La propriété display Emplacement de boites avec Flexbox
CSS : CASCADING STYLE SHEETS
96/200 93
La propriété display
CSS : CascadingEmplacement de boites avec Flexbox
Style Sheets
Pour la suite, on considère le code CSS suivant
.component1 { width : 20%;
background-color: red; height: 140px;
width : 10%; }
height: 80px; .component4 {
} background-color: yellow;
.component2 { width : 25%;
background-color: green; height: 180px;
width : 15%; }
height: 100px; .container {
} background-color: black;
.component3 { display: flex;
background-color: blue; height: 250px;
}
red green
blue
yellow
98/200 94
La propriété display Emplacement de boites avec Flexbox
CSS : CASCADING STYLE SHEETS
98/200 95
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
red
green
blue
yellow
96
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
red green
blue
yellow
100/200 97
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
red green
blue
yellow
101/200 98
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
red
green
blue
yellow
102/200 99
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
red
green
blue
yellow
103/200 100
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
104/200 101
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
102
La propriété display Emplacement de boites avec Flexbox
CSS : CASCADING STYLE SHEETS
106/200 103
La propriété display Emplacement de boites avec Flexbox
CSS : CASCADING STYLE SHEETS
104
La propriété display Emplacement de boites avec Flexbox
CSS : CASCADING STYLE SHEETS
.container {
background-color: black;
display: flex;
height: 200px;
align-items: flex-start;
}
108/200 105
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
yellow
blue yellow
green blue yellow
red green blue yellow
109/200 106
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
yellow
green blue yellow
red green blue yellow
blue yellow
110/200 107
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
111/200 108
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
112/200 109
La propriété display
CSS : CascadingEmplacement de boites avec Flexbox
Style Sheets
Le fichier flex.css Le résultat
.component1 {
background-color: red;
} green
red
.component2 {
background-color: green;
}
.component3 {
background-color: blue;
} blue yellow
.component4 {
background-color: yellow;
}
.container {
background-color: black;
display: flex;
flex-wrap: wrap;
align-content: flex-start;
height: 150px;
}
.container > div {
width : 50%;
height: 50px;
}
113/200 110
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
green
red
blue yellow
114/200 111
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
red green
blue yellow
115/200 112
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
red green
blue yellow
116/200 113
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
red green
blue yellow
117/200 114
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
red green
blue yellow
118/200 115
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
119/200 116
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
order
permet de changer l’ordre d’affichage des composants d’un
conteneur
120/200 117
La propriété display
CSS : CascadingEmplacement de boites avec Flexbox
Style Sheets
align-self
permet de changer la valeur d’align-items pour un block
donné.
122/200 119
La propriété display
CSS : CascadingEmplacement de boites avec Flexbox
Style Sheets
Le fichier flex.css Le résultat
.component1 {
background-color: red;
align-self: flex-start;
}
.component2 {
background-color: green;
align-self: stretch;
}
.component3 {
background-color: blue;
align-self: center;
}
.component4 {
background-color: yellow;
align-self: flex-end;
}
.container {
background-color: black;
display: flex;
height: 150px;
}
.container > div {
width : 30%;
}
123/200 120
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
...
124/200 121
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
flex-grow
125/200 122
La propriété display
CSS : CascadingEmplacement de boites avec Flexbox
Style Sheets
.component4 {
.component1 {
background-color: yellow;
background-color: red; flex-grow: 1;
flex-grow: 1; }
} .container {
.component2 {
background-color: black;
background-color: green; display: flex;
flex-grow: 3; }
}
.component3 {
background-color: blue;
flex-grow: 1;
}
Le résultat
123
La propriété
CSS display
: Cascading Emplacement de boites avec Flexbox
Style Sheets
127/200 124
La propriété
CSS display
: Cascading Emplacement de boites avec Grid
Style Sheets
<!DOCTYPEhtml> .component1 {
<html> background-color: red;
<head> }
<title> grid </title> .component2 {
<linkrel="stylesheet"href="grid.css"> background-color: green;
</head> }
<body> .component3 {
<divclass="container" > background-color: blue;
<divclass=component1 >red</div> }
<divclass=component2 >green</div> .component4 {
<divclass=component3 >blue</div> background-color: yellow;
<divclass=component4 >yellow</div> }
</div> .container {
</body> background-color: black;
</html> display: grid;
}
.container > div {
height: 100px;
}
125
CSS : Cascading Style Sheets
red
green
blue
yellow
129/200 126
La propriété
CSS display
: Cascading Emplacement de boites avec Grid
Style Sheets
130/200 127
La propriété
CSS display
: Cascading Emplacement de boites avec Grid
Style Sheets
ye l l o w
128
La propriété
CSS display
: Cascading Emplacement de boites avec Grid
Style Sheets
132/200 129
CSS : Cascading Style Sheets
La propriété display Emplacement de boites avec Grid
Exemple avec une grille composée de 2 colonnes avec deux largeurs différentes
.container {
background-color: black;
display: grid;
grid-template-columns: 40% 60%;//onpeutaussiutiliserpx:pixel
oufr:fraction:nombredepartdel’espacedisponible
}
.container > div {
height: 100px;
}
red green
blue yellow
133/200 130
CSS : Cascading Style Sheets
.container {
background-color: black;
display: grid;
grid-template-columns: 40% 60%;
grid-template-rows: 100px 200px;
}
red green
blue yellow
134/200 131
La propriété
CSS display
: Cascading Emplacement de boites avec Grid
Style Sheets
grid-template-rows:100px200px;
*/
}
135/200 132
La propriété
CSS display
: Cascading Emplacement de boites avec Grid
Style Sheets
136/200 133
La propriété
CSS display
: Cascading Emplacement de boites avec Grid
Style Sheets
colonnes
1 2 n -1 n
1
2
..
lignes
···
n -1
n
137/200 134
La propriété
CSS display
: Cascading Emplacement de boites avec Grid
Style Sheets
Exemple
1 2 n -1 n
1
grid-column-start: 1;
grid-column-end: 2; 2
grid-row-start: 1; ..
grid-row-end: 2;
···
n -1
n
138/200 135
CSS : CASCADING STYLE SHEETS
.component4 {
.component1 {
background-color: yellow;
background-color: red; grid-column-start: 3;
grid-column-start: 1; grid-column-end: 4;
grid-column-end: 3; grid-row-start: 2;
grid-row-start: 1; grid-row-end: 4;
grid-row-end: 3; }
} .container {
.component2 {
background-color: black;
background-color: green; display : grid;
grid-column-start: 2; height: 500px;
grid-column-end: 4; grid-template-columns: repeat(3, 1fr);
grid-row-start: 1; }
grid-row-end: 2;
}
.component3 {
background-color: blue;
grid-column-start: 1;
grid-column-end: 3;
grid-row-start: 2;
grid-row-end: 4;
}
139/200 136
La propriété
CSS display
: Cascading Emplacement de boites avec Grid
Style Sheets
Le résultat est :
red green
blue yellow
137