css : cascading style sheets · css: cascading style sheets achref el mouelhi docteur de...

199
CSS : Cascading Style Sheets Achref El Mouelhi Docteur de l’universit ´ e d’Aix-Marseille Chercheur en programmation par contrainte (IA) Ing ´ enieur en g ´ enie logiciel [email protected] H & H: Research and Training 1 / 153

Upload: others

Post on 01-Jun-2020

40 views

Category:

Documents


17 download

TRANSCRIPT

Page 1: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

CSS : Cascading Style Sheets

Achref El Mouelhi

Docteur de l’universite d’Aix-MarseilleChercheur en programmation par contrainte (IA)

Ingenieur en genie logiciel

[email protected]

H & H: Research and Training 1 / 153

Page 2: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Plan

1 Introduction

2 Integrer CSS dans HTML

3 Selecteur CSS

4 Les proprietes basiques

5 Les positions

6 Les boites : dimensions et marges

7 La propriete float

8 La propriete visibility

H & H: Research and Training 2 / 153

Page 3: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Plan

9 La propriete displayEmplacement de boites avec FlexboxEmplacement de boites avec Grid

10 Les Media Queries

11 Bootstrap

12 Autres frameworks CSS

13 Les icones

14 CSS3 et compatibilite des navigateurs

15 Quelques liens utiles

H & H: Research and Training 3 / 153

Page 4: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Introduction

CSS : Cascading Style Sheets

Definition et caracteristiques

un langage qui permet de bien gerer la mise en page dedocuments HTML

une definition homogene des styles dans un site Web

une combinaison de styles pour une meilleure reutilisation /personnalisation

trois facons pour definir ces styles :

en utilisant l’attribut style dans des balises HTML classiques

en ajoutant une balise <style> dans <head>

en placant le contenu de style dans un fichier d’extension .csspuis en referencant ce dernier dans un fichier d’extension .htmlpar la balise <link>

H & H: Research and Training 4 / 153

Page 5: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Introduction

CSS : Cascading Style Sheets

CSS : evolution

CSS1 : introduit en 1996. Debut tres difficile a cause de la guerreentre les navigateurs (IE, Netscape...)

CSS2 : apparue en 1998, environ 70 nouvelles proprietes parrapport a CSS1

CSS3 : version officiellement non finalisee mais plusieursnouvelles proprietes prises en charge par les navigateurs

En parallele de CSS3, on parle de CSS4 qui a debute en 2010

H & H: Research and Training 5 / 153

Page 6: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Introduction

CSS : Cascading Style Sheets

HTML en 91 et CSS en 96 : comment fait-on avant le CSS?

Avec des balises HTML comme

<b>...</b>, <u>...</u>,...

<font color="#000000"> (depreciee)

<center> (depreciee)

...

H & H: Research and Training 6 / 153

Page 7: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Integrer CSS dans HTML

CSS : Cascading Style Sheets

Premiere methode :

<tag style="property: value;">

Exemple :

<p style="color:red;">Bonjour

</p>

Le paragraphe Bonjour sera affiche en rouge.

H & H: Research and Training 7 / 153

Page 8: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Integrer CSS dans HTML

CSS : Cascading Style Sheets

Premiere methode :

<tag style="property: value;">

Exemple :

<p style="color:red;">Bonjour

</p>

Le paragraphe Bonjour sera affiche en rouge.

H & H: Research and Training 7 / 153

Page 9: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Integrer CSS dans HTML

CSS : Cascading Style SheetsDeuxieme methode (syntaxe)

<style type="text/css">selector{

property: value;}

</style>

Exemple : le head

<style type="text/css">p{

color: red;}

</style>

Exemple : le body

<p>Bonjour

</p>

Tous les paragraphes de mon document seront affiches en rouge.

H & H: Research and Training 8 / 153

Page 10: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Integrer CSS dans HTML

CSS : Cascading Style SheetsDeuxieme methode (syntaxe)

<style type="text/css">selector{

property: value;}

</style>

Exemple : le head

<style type="text/css">p{

color: red;}

</style>

Exemple : le body

<p>Bonjour

</p>

Tous les paragraphes de mon document seront affiches en rouge.

H & H: Research and Training 8 / 153

Page 11: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Integrer CSS dans HTML

CSS : Cascading Style Sheets

Avec HTML 5

<style>p{

color: red;}

</style>

Plus besoin de preciser le type pour la balise style.

H & H: Research and Training 9 / 153

Page 12: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Integrer CSS dans HTML

CSS : Cascading Style Sheets

Troisieme methode : on place le contenu CSS dans un fichier(file.css)

p{

color: red;}

Dans le fichier HTML :

<head><link rel="stylesheet" type="text/css" href="

file.css"></head>

Tous les paragraphes de mon document seront affiches en rouge.H & H: Research and Training 10 / 153

Page 13: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Integrer CSS dans HTML

<!doctype HTML><html>

<head><title>Premiere page web </title><meta charset=’utf-8’/><style>

p{color: blue;

}</style>

</head><body>

<p> je m’affiche en bleu </p><p style="color:red;"> je m’affiche en rouge </p><p> je m’affiche en bleu </p

</body></html>

je m’affiche en bleuje m’affiche en rougeje m’affiche en bleu

H & H: Research and Training 11 / 153

Page 14: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style Sheets

C’est quoi?

Une balise HTML

Une classe

Un identifiant

Une combinaison de selecteurs

H & H: Research and Training 12 / 153

Page 15: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style SheetsUne classe (class)

regroupe plusieurs elements dans une meme famille

<h1 class=bleu> titre </h1><p class=rouge> bonjour </p><p class=bleu> bonsoir </p>

Dans le fichier CSS :

.bleu{

color: blue;}.rouge{

color: red;}

H & H: Research and Training 13 / 153

Page 16: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style SheetsUne classe (class)

regroupe plusieurs elements dans une meme famille

<h1 class=bleu> titre </h1><p class=rouge> bonjour </p><p class=bleu> bonsoir </p>

Dans le fichier CSS :

.bleu{

color: blue;}.rouge{

color: red;}

H & H: Research and Training 13 / 153

Page 17: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style Sheets

Un identifiant (id)

concerne un seul element de la page

<p id=gras> bonsoir </p>

Dans le fichier CSS :

#gras{

font-weight: bold;}

H & H: Research and Training 14 / 153

Page 18: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style Sheets

Les selecteurs* tous les elements

h1, p les h1 et p <h1>...<p>...<p>...<h1>

div p les p situes dans div <div>oui<p>...<span>non<p>

p#gras les p ayant un id gras <p id=’gras’>oui<p>non

#gras tout element ayant un id gras <p id=’gras’>oui<p>non

p.bleu les p de la classe bleu <p class=’bleu’>oui<p>non

h1 + p les p directement apres h1 <h1>...</h1><p>oui</p><p>non

div > p les p enfant direct de div <div>...<p>oui</p><div>...<span>...<p>non

div ∼ p les p precedes par div avec <ul>...</ul><p>non</p>p et div ont le meme parent <div>...</div><p>oui</p>

H & H: Research and Training 15 / 153

Page 19: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style Sheets

Exercice 1

Sans utiliser ni classes, ni identifiants, ecrire le code CSS qui permetde colorier la liste suivante.

Langages de programmationJavaC++PHP

Editeurs de texteSublime textAtomNotepad++

La construction de la liste doit etre W3C Valid.

H & H: Research and Training 16 / 153

Page 20: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style Sheets

Solution

li > ul{

color: blue;}

ul > li > ul > li ˜ li{

color: red;}

H & H: Research and Training 17 / 153

Page 21: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style SheetsExercice 2

En utilisant une seule classe (aucun identifiant), ecrire le code CSS quipermet de colorier la liste suivante.

FranceBleuBlancRouge

TunisieBlancRouge

UruguayBlancBleu

La construction de la liste doit etre W3C Valid.

H & H: Research and Training 18 / 153

Page 22: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style Sheets

Les selecteurs d’attributinput[type=text] les inputs de type text <input type=’text’>

img[title∼=red] les images avec un titre <img title=’red bull’>ouicontenant le mot red <img title=’redbull’>non

img[title*=red] les images avec un titre <img title=’red bull’>ouicontenant le mot red <img title=’redbull’>oui

[lang|=en] les elements avec un attribut <div lang="en-us">ouilang commencant par en <div lang="fr">non

img[src$=.jpg] les images ayant un nom <img src=’1.jpg’>ouise terminant par .jpg <img src=’jpg.png’>non

td[colspan=’3’] les cases d’un tableau <td colspan=3>oui</td>qui sont sur 3 colonnes <td>non</td>

H & H: Research and Training 19 / 153

Page 23: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style SheetsLes pseudo-selecteursp:first-letter la premiere lettre de chaque element pp:first-line la premiere ligne de chaque element pp:before le contenu avant chaque element pp:after le contenu apres chaque element pp:lang(en) les p avec un attribut lang dont la valeur = ’en’p:first-of-type les premiers enfants de type p de leur parentp:first-child les p qui sont les premiers enfants de leur parentli:not(:first-child) tous les elements li qui ne sont pas les premiersp:nth-child(2) les p qui sont le second enfant de leur parentp:nth-last-of-type(2) les seconds enfants de type p de leur parent

en commencant par le dernierp:only-child les p qui sont unique enfant de leur parenta:hover les liens survolesa:visited les liens visitesinput:optional les inputs sans la propriete requiredinput:required les inputs avec la propriete requiredinput:read-only les inputs avec la propriete readonlyinput:read-write les inputs sans la propriete readonly

H & H: Research and Training 20 / 153

Page 24: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

:first-child vs :first-of-type

Le style CSS

p:first-child{background-color: red;

}p:first-of-type{color: blue;

}

Le contenu HTML

<div><p>bonjour</p><p>bonsoir</p>

</div><div>

<h1>bonjour</h1><p>bonsoir</p>

</div>

Le resultat est :

bonjour

bonsoir

bonjourbonsoir

H & H: Research and Training 21 / 153

Page 25: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

:first-child vs :first-of-type

Le style CSS

p:first-child{background-color: red;

}p:first-of-type{color: blue;

}

Le contenu HTML

<div><p>bonjour</p><p>bonsoir</p>

</div><div><h1>bonjour</h1><p>bonsoir</p>

</div>

Le resultat est :

bonjour

bonsoir

bonjourbonsoir

H & H: Research and Training 21 / 153

Page 26: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

:first-child vs :first-of-type

Le style CSS

p:first-child{background-color: red;

}p:first-of-type{color: blue;

}

Le contenu HTML

<div><p>bonjour</p><p>bonsoir</p>

</div><div><h1>bonjour</h1><p>bonsoir</p>

</div>

Le resultat est :

bonjour

bonsoir

bonjourbonsoir

H & H: Research and Training 21 / 153

Page 27: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style Sheets

<body><p msg="ligne ecrite le 16 octobre 2017">

formation PHP </p></body>

p:before {content: "bonjour ";

}p:after {

content: " c’est ma page ("attr(msg)") Aurevoir";

}

Affiche :bonjour formation PHP c’est ma page (ligne ecrite le16 octobre 2017) Aurevoir

H & H: Research and Training 22 / 153

Page 28: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style Sheets

Selecteur(s)[:pseudoSelecteur]{

property: value;}

H & H: Research and Training 23 / 153

Page 29: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Selecteur CSS

CSS : Cascading Style Sheets

Pour bien maıtriser les selecteurs

https://flukeout.github.io/

H & H: Research and Training 24 / 153

Page 30: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Les valeurs de la propriete font-style

italic

normal

oblique

Les valeurs de la propriete font-weight

normal

bold

Les valeurs de la propriete text-decoration

underline

overline

line-through

none

H & H: Research and Training 25 / 153

Page 31: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Les valeurs de la propriete font-style

italic

normal

oblique

Les valeurs de la propriete font-weight

normal

bold

Les valeurs de la propriete text-decoration

underline

overline

line-through

none

H & H: Research and Training 25 / 153

Page 32: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Les valeurs de la propriete font-style

italic

normal

oblique

Les valeurs de la propriete font-weight

normal

bold

Les valeurs de la propriete text-decoration

underline

overline

line-through

none

H & H: Research and Training 25 / 153

Page 33: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Les valeurs de la propriete font-size

nombre px

small, large, medium, x-large, xx-large,...

decimal em : 1em la taille normale

Les valeurs de la propriete font-family

"Times New Roman"

Arial

...

La propriete @font-face

pour definir sa propre police

Autres fonts disponibles

https://fonts.google.com/

selectionner un et l’ajouter dans la partie head de votre document HTML

H & H: Research and Training 26 / 153

Page 34: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Les valeurs de la propriete font-size

nombre px

small, large, medium, x-large, xx-large,...

decimal em : 1em la taille normale

Les valeurs de la propriete font-family

"Times New Roman"

Arial

...

La propriete @font-face

pour definir sa propre police

Autres fonts disponibles

https://fonts.google.com/

selectionner un et l’ajouter dans la partie head de votre document HTML

H & H: Research and Training 26 / 153

Page 35: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Les valeurs de la propriete font-size

nombre px

small, large, medium, x-large, xx-large,...

decimal em : 1em la taille normale

Les valeurs de la propriete font-family

"Times New Roman"

Arial

...

La propriete @font-face

pour definir sa propre police

Autres fonts disponibles

https://fonts.google.com/

selectionner un et l’ajouter dans la partie head de votre document HTML

H & H: Research and Training 26 / 153

Page 36: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Les valeurs de la propriete font-size

nombre px

small, large, medium, x-large, xx-large,...

decimal em : 1em la taille normale

Les valeurs de la propriete font-family

"Times New Roman"

Arial

...

La propriete @font-face

pour definir sa propre police

Autres fonts disponibles

https://fonts.google.com/

selectionner un et l’ajouter dans la partie head de votre document HTML

H & H: Research and Training 26 / 153

Page 37: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Les valeurs de la propriete text-align

center

left (par defaut)

right

justify

H & H: Research and Training 27 / 153

Page 38: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Les proprietes de fond

background-color : couleur de fond

background-image : url(image de fond)

background-repeat : permet de repeter l’imagehorizontalement et verticalement avec la valeur repeat,verticalement avec la valeur repeat-y,horizontalement avec la valeur repeat-x,aucune repetition avec la valeur no-repeat,...

background-position : permet d’indiquer la position del’image (left top, right top, center...)

...

H & H: Research and Training 28 / 153

Page 39: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

La propriete background

un raccourci de toutes les autres proprietes sur le background

Exemple : background: pink url("mario.jpg")no-repeat center;

Autres proprietes

color : couleur du texte

opacity : transparence (valeur de 0 a 1)

...

H & H: Research and Training 29 / 153

Page 40: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

La propriete background

un raccourci de toutes les autres proprietes sur le background

Exemple : background: pink url("mario.jpg")no-repeat center;

Autres proprietes

color : couleur du texte

opacity : transparence (valeur de 0 a 1)

...

H & H: Research and Training 29 / 153

Page 41: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style SheetsExercice

Etant donnee une balise <div class=container> contenant plusieursbalises p, ecrire le code CSS qui permet d’afficher en gras le paragraphesurvole, en italic les paragraphes situes avant le paragraphe survole et ensouligne les paragraphes situes apres le paragraphe survole.

Exemple :

Je fais parti des paragraphes situes avant le paragraphe survole.

Je fais parti des paragraphes situes avant le paragraphe survole.

Je suis le paragraphe survole.

Je fais parti des paragraphes situes apres le paragraphe survole.

Je fais parti des paragraphes situes apres le paragraphe survole.H & H: Research and Training 30 / 153

Page 42: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style SheetsCorrection : HTML

<div class="container"><p>paragraph 1</p><p>paragraph 2</p><p>paragraph 3</p><p>paragraph 4</p><p>paragraph 5</p>

</div>

Correction : CSS

.container:hover p {text-decoration: underline;

}.container p:hover{text-decoration: none;font-weight: bold;

}.container p:hover ˜ p {text-decoration: none;font-style: italic;

}

H & H: Research and Training 31 / 153

Page 43: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Les valeurs de la propriete border

border-width : epaisseur

border-color : couleur

border-style : plusieurs valeurs possibles : none, solid,dashed, dotted...

Selecteur{

border: 1px red dotted;}

H & H: Research and Training 32 / 153

Page 44: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Autres proprietes de bordure

border-top : haut

border-bottom : bas

border-left : gauche

border-right : droite

border-radius : pour arrondir une bordure, peut prendre 4 valeurs differentes pour enhaut a gauche, en haut a droite, en bas a droite, en bas a gauche.

box-shadow : pour l’ombre. prend quatre valeurs, le decalage horizontal de l’ombre (enpx), le decalage vertical de l’ombre (en px), l’adoucissement du degrade (en px) et lacouleur de l’ombre.

text-shadow : pour l’ombre d’un texte.

border-collapse : pour preciser si les bordures des cellules d’un tableau sontfusionnees (collapse) ou separees (separate, par defaut). Pour ce dernier cas, onpeut utiliser la propriete border-spacing pour definir l’espace entre les bordures.

...

H & H: Research and Training 33 / 153

Page 45: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

Exemple

p{

border-bottom: 1px red dotted;border-top: 1px red dashed;border-right: 1px blue solid;border-left: 1px blue double;box-shadow: 3px 3px 1px gray;

}

H & H: Research and Training 34 / 153

Page 46: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Comment changer les puces ou les numeros?

La propriete : list-style-type

Les valeurs possibles pour les listes non-ordonnees : circle,square, none...

Les valeurs possibles pour les listes ordonnees : upper-roman,lower-alpha, none...

On peut aussi utiliser une image comme puce pour les <ul>

list-style-image: url(’image.gif’);

H & H: Research and Training 35 / 153

Page 47: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Supprimer les valeurs par defaut? (pour un menu par exemple)

ul {list-style-type: none;margin: 0;padding: 0;

}

Les puces a l’interieur ou a l’exterieur de la liste

list-style-position

Les valeurs possibles : inside ou outside (par defaut)

H & H: Research and Training 36 / 153

Page 48: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Exemple avec outside

Tu as regarde l’egaliseur de Denzel Washington? ou John Wickde Keanu Charles Reeves?

Tu aimes bien le Bresil ? Tu te souviens de Romario, Bebeto,Ronaldo et Dunga?

Exemple avec inside

Tu as regarde l’egaliseur de Denzel Washington? ou John Wickde Keanu Charles Reeves?

Tu aimes bien le Bresil ? Tu te souviens de Romario, Bebeto,Ronaldo et Dunga?

Autre exemple sur https://www.w3schools.com/css/tryit.asp?filename=trycss list-style-position

H & H: Research and Training 37 / 153

Page 49: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Exemple avec outside

Tu as regarde l’egaliseur de Denzel Washington? ou John Wickde Keanu Charles Reeves?

Tu aimes bien le Bresil ? Tu te souviens de Romario, Bebeto,Ronaldo et Dunga?

Exemple avec inside

Tu as regarde l’egaliseur de Denzel Washington? ou John Wickde Keanu Charles Reeves?

Tu aimes bien le Bresil ? Tu te souviens de Romario, Bebeto,Ronaldo et Dunga ?

Autre exemple sur https://www.w3schools.com/css/tryit.asp?filename=trycss list-style-position

H & H: Research and Training 37 / 153

Page 50: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style Sheets

Exemple avec outside

Tu as regarde l’egaliseur de Denzel Washington? ou John Wickde Keanu Charles Reeves?

Tu aimes bien le Bresil ? Tu te souviens de Romario, Bebeto,Ronaldo et Dunga?

Exemple avec inside

Tu as regarde l’egaliseur de Denzel Washington? ou John Wickde Keanu Charles Reeves?

Tu aimes bien le Bresil ? Tu te souviens de Romario, Bebeto,Ronaldo et Dunga ?

Autre exemple sur https://www.w3schools.com/css/tryit.asp?filename=trycss list-style-position

H & H: Research and Training 37 / 153

Page 51: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les proprietes basiques

CSS : Cascading Style SheetsUn raccourci ?

ul {list-style: square inside url("image.gif");

}

Explication

Les valeurs, dans l’ordre, correspondent a :

list-style-type : si un style-image est specifie, ceci seraaffiche quand l’image ne peut etre affiche

list-style-position : pour indiquer la position des puces (al’interieur ou a l’exterieur)

list-style-image : pour specifier l’image a utiliser commepuce

H & H: Research and Training 38 / 153

Page 52: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style Sheets

position : static

position, par defaut, naturelle sur la page.

position : relative

position qui peut changer par rapport a une position de reference (unleft: 30px; par exemple).

H & H: Research and Training 39 / 153

Page 53: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style Sheets

position : static

position, par defaut, naturelle sur la page.

position : relative

position qui peut changer par rapport a une position de reference (unleft: 30px; par exemple).

H & H: Research and Training 39 / 153

Page 54: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style Sheets

position : static

position, par defaut, naturelle sur la page.

position : relative

position qui peut changer par rapport a une position de reference (unleft: 30px; par exemple).

H & H: Research and Training 39 / 153

Page 55: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style SheetsPour tester la difference entre static et relative

div.static {position: static;left: 30px;border: 1px solid red;width: 400px;height: 200px;

}div.relative {position: relative;left: 30px;border: 1px solid red;width: 400px;height: 200px;

}

HTML

<div class ="static"> static </div>

<div class ="relative"> relative </div>

H & H: Research and Training 40 / 153

Page 56: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style Sheets

position : absolute

definie par rapport au block englobant : se refere a son premierancetre positionne qu’il rencontre.

H & H: Research and Training 41 / 153

Page 57: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style SheetsPour tester la difference entre absolute et relative

div.absolute {position: absolute;top: 80px;left: 30px;width: 200px;height: 100px;border: 1px solid red;

}div.relative {position: relative;left: 30px;border: 1px solid red;width: 400px;height: 200px;

}

HTML

<div class ="absolute"> absolute </div>

<div class ="relative"> relative </div>

H & H: Research and Training 42 / 153

Page 58: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style Sheetsposition : fixed

position qui reste fixe, l’element est toujours positionne par rapport a lafenetre du navigateur meme si on descend dans la page (avec un scroll parexemple).

Pour tester fixed

div.fixed {position: fixed;border: 1px solid red;

}

HTML

<div class ="fixed"> fixed </div>

<img src="http://www.lsis.org/elmouelhia/images/Bruxelles.jpg" alt="">

H & H: Research and Training 43 / 153

Page 59: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style Sheetsposition : fixed

position qui reste fixe, l’element est toujours positionne par rapport a lafenetre du navigateur meme si on descend dans la page (avec un scroll parexemple).

Pour tester fixed

div.fixed {position: fixed;border: 1px solid red;

}

HTML

<div class ="fixed"> fixed </div>

<img src="http://www.lsis.org/elmouelhia/images/Bruxelles.jpg" alt="">

H & H: Research and Training 43 / 153

Page 60: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style Sheets

position : sticky (collant)

position dependante de defilement de l’utilisateur

Exemple sur le lien suivant :https://www.w3schools.com/css/tryit.asp?filename=trycss position sticky

H & H: Research and Training 44 / 153

Page 61: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style Sheets

position : sticky (collant)

position dependante de defilement de l’utilisateur

Exemple sur le lien suivant :https://www.w3schools.com/css/tryit.asp?filename=trycss position sticky

H & H: Research and Training 44 / 153

Page 62: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les positions

CSS : Cascading Style Sheets

La propriete z-index

z-index prend une valeur numerique. L’element avec un plusgrand z-index sera place au dessus des autres.

il ne fonctionne que sur des elements ayant une positionabsolute, relative ou fixed.

H & H: Research and Training 45 / 153

Page 63: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les boites : dimensions et marges

CSS : Cascading Style Sheets

Propriete et valeur

width (largeur) : valeur en pixel, pourcentage relatif

height (hauteur) : valeur en pixel, pourcentage relatif

min-width (largeur minimale) : valeur en pixel, pourcentagerelatif

min-height (hauteur minimale) : valeur en pixel, pourcentagerelatif

max-width (largeur minimale) : valeur en pixel, pourcentagerelatif

max-height (hauteur minimale) : valeur en pixel, pourcentagerelatif

H & H: Research and Training 46 / 153

Page 64: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les boites : dimensions et marges

CSS : Cascading Style Sheets

Deux types de marges

margin (marge exterieure) : valeur en pixelpadding (marge interieure) : valeur en pixel

marge exterieure

espace entre les frontieres de la boite et les boites situees a l’exterieurmargin-top (marge exterieure en haut) : valeur en pixelmargin-bottom (marge exterieure en bas) : valeur en pixelmargin-right (marge exterieure a droite) : valeur en pixelmargin-left (marge exterieure a gauche) : valeur en pixel

H & H: Research and Training 47 / 153

Page 65: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les boites : dimensions et marges

CSS : Cascading Style Sheets

Deux types de marges

margin (marge exterieure) : valeur en pixelpadding (marge interieure) : valeur en pixel

marge exterieure

espace entre les frontieres de la boite et les boites situees a l’exterieurmargin-top (marge exterieure en haut) : valeur en pixelmargin-bottom (marge exterieure en bas) : valeur en pixelmargin-right (marge exterieure a droite) : valeur en pixelmargin-left (marge exterieure a gauche) : valeur en pixel

H & H: Research and Training 47 / 153

Page 66: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les boites : dimensions et marges

CSS : Cascading Style Sheets

marge interieure

espace entre le contenu et les frontieres de la boite

padding-top (marge interieure en haut) : valeur en pixel

padding-bottom (marge interieure en bas) : valeur en pixel

padding-right (marge interieure a droite) : valeur en pixel

padding-left (marge interieure a gauche) : valeur en pixel

H & H: Research and Training 48 / 153

Page 67: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les boites : dimensions et marges

CSS : Cascading Style Sheets

La propriete overflow

Et si notre texte ne rentre pas dans la boite, on peut utiliser la proprieteoverflow pour indiquer ce qu’il faut faire

hidden : cacher le texte qui depasse

visible : le texte reste visible a l’exterieur de la boite

scroll : ajouter une barre de defilement pour parcourir le textequi depasse

auto : le navigateur decide d’ajouter une barre de defilement sinecessaire

H & H: Research and Training 49 / 153

Page 68: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete float

CSS : Cascading Style Sheets

La propriete float

permet de declarer et choisir l’emplacement d’un objet flottant.

Les valeurs de la propriete float

left

right

Les valeurs de la propriete clear : pour annuler float

left

right

both

H & H: Research and Training 50 / 153

Page 69: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete float

CSS : Cascading Style Sheets

La propriete float

permet de declarer et choisir l’emplacement d’un objet flottant.

Les valeurs de la propriete float

left

right

Les valeurs de la propriete clear : pour annuler float

left

right

both

H & H: Research and Training 50 / 153

Page 70: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete float

CSS : Cascading Style Sheets

Considerons l’exemple suivant :

Le fichier index.html

<!DOCTYPE html><html><head><title> float et clear </title><link rel="stylesheet" href="style.css">

</head><body><div class="container" ><div class=component1 >red</div><div class=component2 >green</div><div class=component3 >blue</div><div class=component4 >yellow</div>

</div></body>

</html>

Le fichier style.css

.component1 {background-color: red;

}.component2 {

background-color: green;}.component3 {

background-color: blue;}.component4 {

background-color: yellow;}.container > div {text-align: center;

}

H & H: Research and Training 51 / 153

Page 71: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete float

CSS : Cascading Style Sheets

Le resultat du code precedent :

red

green

blue

yellow

Et si on veut placer le bleu a gauche du vert ?

H & H: Research and Training 52 / 153

Page 72: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete float

CSS : Cascading Style Sheets

Le resultat du code precedent :

red

green

blue

yellow

Et si on veut placer le bleu a gauche du vert ?

H & H: Research and Training 52 / 153

Page 73: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete float

CSS : Cascading Style Sheets

.component2 {float: right;background-color: green;

}.component3 {float: left;background-color: blue;

}

red

greenblue yellow

Oui, mais le jaune, on voulait qu’il reste a la ligne

H & H: Research and Training 53 / 153

Page 74: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete float

CSS : Cascading Style Sheets

.component2 {float: right;background-color: green;

}.component3 {float: left;background-color: blue;

}

red

greenblue yellow

Oui, mais le jaune, on voulait qu’il reste a la ligne

H & H: Research and Training 53 / 153

Page 75: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete float

CSS : Cascading Style Sheets

Dans ce cas, il faut ajouter

.component4 {clear: both;background-color: yellow;

}

red

greenblue

yellow

H & H: Research and Training 54 / 153

Page 76: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete visibility

CSS : Cascading Style Sheets

La propriete visibility

Plusieurs valeurs possibles pour visibility :

hidden : pour rendre un element invisible (sa place estconservee)

visible : pour rendre un element visible

collapse : pour rendre un element du tableau invisible, mais laplace qu’il occupe est perdue (propriete compatible seulementavec IE et Firefox)

inherit : pour avoir la meme visibilite de l’element parent

H & H: Research and Training 55 / 153

Page 77: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete visibility

CSS : Cascading Style Sheetscollapse vs hidden : CSS

#hiddenRow {visibility: hidden;

}#collapseRow {

visibility: collapse;}

collapse vs hidden : HTML

<table><tr><td> 1 </td><td> 2 </td></tr><tr id=hiddenRow><td> 3 </td><td> 4 </td></tr><tr><td> 5 </td><td > 6 </td></tr><tr id=collapseRow><td> 7 </td><td > 8 </td></tr><tr><td > 9 </td><td> 10 </td></tr>

</table>

Resultat :

1 2

5 69 10

H & H: Research and Training 56 / 153

Page 78: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete visibility

CSS : Cascading Style Sheetscollapse vs hidden : CSS

#hiddenRow {visibility: hidden;

}#collapseRow {

visibility: collapse;}

collapse vs hidden : HTML

<table><tr><td> 1 </td><td> 2 </td></tr><tr id=hiddenRow><td> 3 </td><td> 4 </td></tr><tr><td> 5 </td><td > 6 </td></tr><tr id=collapseRow><td> 7 </td><td > 8 </td></tr><tr><td > 9 </td><td> 10 </td></tr>

</table>

Resultat :

1 2

5 69 10

H & H: Research and Training 56 / 153

Page 79: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style Sheets

La propriete display

Chaque element HTML a une propriete display qui est par defautsoit inline soit block.

Autres valeurs possibles?

Oui : none, inline-block, flex, grid...

La valeur none pour la propriete display

Un element HTML ayant la valeur none pour la propriete display nesera pas affiche, sans avoir a le supprimer reellement de la page(DOM).

H & H: Research and Training 57 / 153

Page 80: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style Sheets

La propriete display

Chaque element HTML a une propriete display qui est par defautsoit inline soit block.

Autres valeurs possibles?

Oui : none, inline-block, flex, grid...

La valeur none pour la propriete display

Un element HTML ayant la valeur none pour la propriete display nesera pas affiche, sans avoir a le supprimer reellement de la page(DOM).

H & H: Research and Training 57 / 153

Page 81: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style Sheets

La propriete display

Chaque element HTML a une propriete display qui est par defautsoit inline soit block.

Autres valeurs possibles?

Oui : none, inline-block, flex, grid...

La valeur none pour la propriete display

Un element HTML ayant la valeur none pour la propriete display nesera pas affiche, sans avoir a le supprimer reellement de la page(DOM).

H & H: Research and Training 57 / 153

Page 82: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

visibility:hidden vs display:none

A ne pas confondre display : none et visibility : hidden

display: none masque totalement l’element et annule desproprietes telles que margin, padding, width...

visibility: hidden masque seulement l’element, ce qui peutlaisser des espaces vides.

H & H: Research and Training 58 / 153

Page 83: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style SheetsPour tester : CSS

.propDisplay {display: none;

}.propHidden {visibility: hidden;

}

HTML

Bonjour. Apres les deux points, il y a un mot dont display = none : <span class="propDisplay"> ICI </span>. Entre parentheses, il y a unmot dont visibility = hidden (<span class="propHidden"> ICI </span>).

Le resultat

Bonjour. Apres les deux points, il y a un mot dont display = none : .Entre parentheses, il y a un mot dont visibility = hidden ( ).

Aller verifier le DOM dans le navigateur

H & H: Research and Training 59 / 153

Page 84: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style SheetsPour tester : CSS

.propDisplay {display: none;

}.propHidden {visibility: hidden;

}

HTML

Bonjour. Apres les deux points, il y a un mot dont display = none : <span class="propDisplay"> ICI </span>. Entre parentheses, il y a unmot dont visibility = hidden (<span class="propHidden"> ICI </span>).

Le resultat

Bonjour. Apres les deux points, il y a un mot dont display = none : .Entre parentheses, il y a un mot dont visibility = hidden ( ).

Aller verifier le DOM dans le navigateur

H & H: Research and Training 59 / 153

Page 85: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style SheetsPour tester : CSS

.propDisplay {display: none;

}.propHidden {visibility: hidden;

}

HTML

Bonjour. Apres les deux points, il y a un mot dont display = none : <span class="propDisplay"> ICI </span>. Entre parentheses, il y a unmot dont visibility = hidden (<span class="propHidden"> ICI </span>).

Le resultat

Bonjour. Apres les deux points, il y a un mot dont display = none : .Entre parentheses, il y a un mot dont visibility = hidden ( ).

Aller verifier le DOM dans le navigateurH & H: Research and Training 59 / 153

Page 86: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style Sheets

La valeur inline-block de la propriete display

inline-block : permet de placer des elements inline tout enpreservant leurs capacites d’elements block, tels que la possibilite dedefinir une largeur et une hauteur, des marges et padding top etbottom,...

H & H: Research and Training 60 / 153

Page 87: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

inline-block vs inline vs blockExemple avec block : CSS

.propBlock {display: block;height: 100px;width: 100px;

}

Exemple avec block : HTML

<p> Bonjour, ceci est une balise <span class=propBlock> block </span>,aurevoir </p>

<p> CSS3 </p>

Le resultat

Bonjour, ceci est une baliseblock

, aurevoir

H & H: Research and Training 61 / 153

Page 88: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

inline-block vs inline vs blockExemple avec block : CSS

.propBlock {display: block;height: 100px;width: 100px;

}

Exemple avec block : HTML

<p> Bonjour, ceci est une balise <span class=propBlock> block </span>,aurevoir </p>

<p> CSS3 </p>

Le resultat

Bonjour, ceci est une baliseblock

, aurevoir

H & H: Research and Training 61 / 153

Page 89: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

inline-block vs inline vs block

Exemple avec inline : CSS

.propInline {display: inline;height: 100px;width: 100px;

}

Exemple avec inline : HTML

<p> Bonjour, ceci est une balise <span class=propInline> inline</span>,aurevoir </p>

<p> CSS3 </p>

Le resultat

Bonjour, ceci est une balise inline, aurevoir

CSS3

H & H: Research and Training 62 / 153

Page 90: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

inline-block vs inline vs block

Exemple avec inline : CSS

.propInline {display: inline;height: 100px;width: 100px;

}

Exemple avec inline : HTML

<p> Bonjour, ceci est une balise <span class=propInline> inline</span>,aurevoir </p>

<p> CSS3 </p>

Le resultat

Bonjour, ceci est une balise inline, aurevoir

CSS3

H & H: Research and Training 62 / 153

Page 91: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

inline-block vs inline vs blockExemple avec inline-block : CSS

.propInlineBlock {display: inline-block;height: 100px;width: 100px;

}

Exemple avec inline-block : HTML

<p> Bonjour, ceci est une balise <span class=propInlineBlock> inline-block </span>, aurevoir </p>

<p> CSS3 </p>

Le resultat

Bonjour, ceci est une balise inline-block , aurevoir

CSS3

H & H: Research and Training 63 / 153

Page 92: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

inline-block vs inline vs blockExemple avec inline-block : CSS

.propInlineBlock {display: inline-block;height: 100px;width: 100px;

}

Exemple avec inline-block : HTML

<p> Bonjour, ceci est une balise <span class=propInlineBlock> inline-block </span>, aurevoir </p>

<p> CSS3 </p>

Le resultat

Bonjour, ceci est une balise inline-block , aurevoir

CSS3

H & H: Research and Training 63 / 153

Page 93: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style Sheets

Autres valeurs de display

list-item : pour afficher sous forme de liste, avec retour a laligne apres chaque element.

inherit : pour avoir les proprietes du block conteneur.

flex

grid

table

...

H & H: Research and Training 64 / 153

Page 94: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style Sheets

ExerciceAvant de continuer avec Flexbox et Grid, faisons un exercice sur lesmenus.

Comment creer un menu?

Elements <ul> et <li> + <a> pour les actions (liens)

Styles CSS pour l’affichage des differents menus et sous-menus

Exploitation des pseudo-classes (ex :hover) pour faireapparaıtre/disparaıtre les sous-menus

H & H: Research and Training 65 / 153

Page 95: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style Sheets

ExerciceAvant de continuer avec Flexbox et Grid, faisons un exercice sur lesmenus.

Comment creer un menu?

Elements <ul> et <li> + <a> pour les actions (liens)

Styles CSS pour l’affichage des differents menus et sous-menus

Exploitation des pseudo-classes (ex :hover) pour faireapparaıtre/disparaıtre les sous-menus

H & H: Research and Training 65 / 153

Page 96: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

<nav><ul id="menu"><li><a href="page1.html">menu1</a><ul class="sous-menu"><li><a href="page11.html">menu11</a></li><li><a href="page12.html">menu12</a></li>

</ul></li><li><a href="page2.html">menu2</a></li><li><a href="page3.html">menu3</a></li><li><a href="page4.html">menu4</a><ul class="sous-menu"><li><a href="page41.html">menu41</a></li><li><a href="page42.html">menu42</a></li>

</ul></li>

</ul></nav>

H & H: Research and Training 66 / 153

Page 97: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style Sheets

Exercice, en se basant sur le code HTML permettant de creer la liste(et sous-liste) precedente

ecrire un premier code CSS permettant de creer un menu vertical

ecrire un deuxieme code CSS permettant de creer un menuhorizontal

H & H: Research and Training 67 / 153

Page 98: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style Sheets

Solution pour le menu vertical

ul {list-style-type: none;

}

.sous-menu {display: none;

}

li:hover > ul {display: list-item;

}

H & H: Research and Training 68 / 153

Page 99: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style Sheets

Une deuxieme solution pour le menu vertical consistant a afficher lessous-menu a cote du menu principal

ul {list-style-type: none;

}

.sous-menu {display: none;

}

li:hover > ul {display: inline-block;position: absolute;padding-left: 0px;padding-top: 0px;

}

H & H: Research and Training 69 / 153

Page 100: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display

CSS : Cascading Style SheetsSolution pour le menu horizontal

#menu {display: inline-block;

}li, ul {

display: inline-block;list-style: none;padding: 0;

}.sous-menu {

display: none;}li:hover .sous-menu {

border: 1px solid black;display: block;position: absolute;padding-left: 2px;padding-top: 0px;

}.sous-menu li {

display: block;}

H & H: Research and Training 70 / 153

Page 101: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Considerons l’exemple suivant :

Le fichier flex.html

<!DOCTYPE html><html><head><title> flex </title><link rel="stylesheet" href="flex.css">

</head><body><div class="container"><div class=component1 >red</div><div class=component2 >green</div><div class=component3 >blue</div><div class=component4 >yellow</div>

</div></body>

</html>

Le fichier flex.css

.component1 {background-color: red;

}.component2 {

background-color: green;}.component3 {

background-color: blue;}.component4 {

background-color: yellow;}.container {

background-color: black;}

H & H: Research and Training 71 / 153

Page 102: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Le resultat du code precedent :

red

green

blue

yellow

Et si on veut placer les balises div les unes a cote des autres?

H & H: Research and Training 72 / 153

Page 103: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Le resultat du code precedent :

red

green

blue

yellow

Et si on veut placer les balises div les unes a cote des autres?

H & H: Research and Training 72 / 153

Page 104: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

.container {display: flex;

}

red green blue yellow

Et si on veut donner la meme largeur a toutes les div?

H & H: Research and Training 73 / 153

Page 105: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

.container {display: flex;

}.container > div {width: 30%;

}

red green blue yellow

Et si on veut afficher les div dans le sens oppose?H & H: Research and Training 74 / 153

Page 106: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

.container {background-color: black;display: flex;flex-direction: row-reverse;

}

redgreenblueyellow

H & H: Research and Training 75 / 153

Page 107: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Autres valeurs de flex-direction

row (par defaut) : organiser les boites sur une ligne.

row-reverse : organiser les boites sur une ligne dans le sens inverse.

column : organiser les boites sur une colonne.

column-reverse : organiser les boites sur une colonne dans le sens inverse.

Remarque

Les 4 div de l’exemple precedent avait chacune une largeur de 30%. MaisFlexbox les place, par defaut, sur une seule ligne.

Et si on veut le forcer a retourner a la ligne si espace insuffisant? ⇒ il faututiliser la propriete flex-wrap.

H & H: Research and Training 76 / 153

Page 108: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Autres valeurs de flex-direction

row (par defaut) : organiser les boites sur une ligne.

row-reverse : organiser les boites sur une ligne dans le sens inverse.

column : organiser les boites sur une colonne.

column-reverse : organiser les boites sur une colonne dans le sens inverse.

Remarque

Les 4 div de l’exemple precedent avait chacune une largeur de 30%. MaisFlexbox les place, par defaut, sur une seule ligne.

Et si on veut le forcer a retourner a la ligne si espace insuffisant? ⇒ il faututiliser la propriete flex-wrap.

H & H: Research and Training 76 / 153

Page 109: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

La propriete flex-wrap

Pour indiquer s’il faut retourner a la ligne si la boite container ne suffitpas

nowrap (par defaut) : organiser les boites sans retour a la ligne

wrap : retourner a la ligne si place insuffisante

wrap-reverse : retourner a la ligne si place insuffisante dans lesens inverse

H & H: Research and Training 77 / 153

Page 110: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style SheetsRevenons a l’exemple precedent

.container {background-color: black;display: flex;flex-wrap: wrap;

}

red green blue

yellow

H & H: Research and Training 78 / 153

Page 111: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

flex-flow

raccourci de flex-direction et flex-wrap

exemple : flex-flow : row wrap;

H & H: Research and Training 79 / 153

Page 112: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Trois proprietes pour l’alignement des boites

justify-content : permet d’aligner horizontalement les boitesd’une meme ligne (si elles n’utilisent pas tout l’espace valable).

align-items : permet de definir la disposition verticale desboites d’une meme ligne (si elles n’utilisent pas tout l’espacevalable).

align-content : permet d’aligner verticalement les lignes deboites d’un conteneur (sans effet si toutes les boites sont sur uneseule ligne)

H & H: Research and Training 80 / 153

Page 113: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

Pour la suite, on considere le code CSS suivant

.component1 {background-color: red;width : 10%;height: 80px;

}.component2 {background-color: green;width : 15%;height: 100px;

}.component3 {background-color: blue;

width : 20%;height: 140px;

}.component4 {background-color: yellow;width : 25%;height: 180px;

}.container {background-color: black;display: flex;height: 250px;

}

red green

blue

yellow

H & H: Research and Training 81 / 153

Page 114: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

justify-content : pour l’alignement des boites (horizontal)

center : pour centrer les elements dans le conteneur

flex-start : pour aligner les elements au debut du conteneur

flex-end : pour aligner les elements a l’extremite gauche duconteneur

space-around : pour ajouter de l’espace autour de chaqueelement

space-between : pour ajouter de l’espace entre les elements

H & H: Research and Training 82 / 153

Page 115: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheetsflex-start est la valeur par defaut de justify-content et ne change donc rien de laconfiguration precedente

.container {background-color: black;display: flex;height: 200px;justify-content: flex-start;

}

red green

blue

yellow

H & H: Research and Training 83 / 153

Page 116: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style SheetsResultat de justify-content: flex-end

.container {background-color: black;display: flex;height: 200px;justify-content: flex-end;

}

red green

blue

yellow

H & H: Research and Training 84 / 153

Page 117: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style SheetsResultat de justify-content: center

.container {background-color: black;display: flex;height: 200px;justify-content: center;

}

red green

blue

yellow

H & H: Research and Training 85 / 153

Page 118: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style SheetsResultat de justify-content: space-between

.container {background-color: black;display: flex;height: 200px;justify-content: space-between;

}

red green

blue

yellow

H & H: Research and Training 86 / 153

Page 119: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style SheetsResultat de justify-content: space-around

.container {background-color: black;display: flex;height: 200px;justify-content: space-around;

}

red green

blue

yellow

H & H: Research and Training 87 / 153

Page 120: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

align-items : pour l’alignement (vertical)

peut prendre les valeurs center, flex-start et flex-end toutcomme justify-content

ou aussi stretch (valeur par defaut, rempli le conteneur enhauteur avec les elements) ou baseline (qui aligne les elementsflexibles d’une facon que leurs lignes de base soient alignees)

H & H: Research and Training 88 / 153

Page 121: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style SheetsPour la suite, on considere les codes HTML et CSS suivants

<div class="container" ><div class=component1>

red</div><div class=component2>

green <br> green</div><div class=component3>

blue <br> blue <br> blue</div><div class=component4>

yellow <br> yellow <br>yellow <br> yellow

</div></div>

.component1 {background-color: red;

}.component2 {background-color: green;

}.component3 {background-color: blue;

}.component4 {background-color: yellow;

}.container > div {width: 30%;

}.container {background-color: black;display: flex;height: 200px;

}

H & H: Research and Training 89 / 153

Page 122: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Le code precedent permet l’emplacement suivant

red greengreen

blueblueblue

yellowyellowyellowyellow

H & H: Research and Training 90 / 153

Page 123: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

stretch est la valeur par defaut de align-items et ne changedonc rien de la configuration de depart

.container {background-color: black;display: flex;height: 200px;align-items: stretch;

}

red greengreen

blueblueblue

yellowyellowyellowyellow

H & H: Research and Training 91 / 153

Page 124: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Resultat de la valeur flex-start affectee a align-items

.container {background-color: black;display: flex;height: 200px;align-items: flex-start;

}

red greengreen

blueblueblue

yellowyellowyellowyellow

H & H: Research and Training 92 / 153

Page 125: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Resultat de la valeur flex-end affectee a align-items

.container {background-color: black;display: flex;height: 200px;align-items: flex-end;

}

red

greengreen blue

blueblue

yellowyellowyellowyellow

H & H: Research and Training 93 / 153

Page 126: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Resultat de la valeur center affectee a align-items

.container {background-color: black;display: flex;height: 200px;align-items: center;

}

redgreengreen

blueblueblue

yellowyellowyellowyellow

H & H: Research and Training 94 / 153

Page 127: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Pour pouvoir tester la valeur baseline, on ajoute un padding-top pourquelques components

.component1 {background-color: red;

}.component2 {background-color: green;padding-top: 20px;

}.component3 {background-color: blue;padding-top: 10px;

}.component4 {background-color: yellow;padding-top: 30px;

}

.container {background-color: black;display: flex;height: 200px;align-items: baseline;

}.container > div {width: 30%;

}

Le HTML ne change pas.

H & H: Research and Training 95 / 153

Page 128: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Resultat de la valeur baseline affectee a align-items

.container {background-color: black;display: flex;height: 200px;align-items: baseline;

}

red greengreen

blueblueblue

yellowyellowyellowyellow

H & H: Research and Training 96 / 153

Page 129: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

Le fichier flex.css

.component1 {background-color: red;

}.component2 {background-color: green;

}.component3 {background-color: blue;

}.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;

}

Le resultat

red green

blue yellow

H & H: Research and Training 97 / 153

Page 130: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Exemple avec align-content: flex-end;

red green

blue yellow

H & H: Research and Training 98 / 153

Page 131: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Exemple avec align-content: center;

red green

blue yellow

H & H: Research and Training 99 / 153

Page 132: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Exemple avec align-content: stretch;

red green

blue yellow

H & H: Research and Training 100 / 153

Page 133: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Exemple avec align-content: space-around;

red green

blue yellow

H & H: Research and Training 101 / 153

Page 134: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Exemple avec align-content: space-between;

red green

blue yellow

H & H: Research and Training 102 / 153

Page 135: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Proprietes pour les elements enfants

Les proprietes precedentes sont a mettre dans le style du container.Mais il existe des proprietes qu’on peut preciser dans le style dechaque enfant

H & H: Research and Training 103 / 153

Page 136: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

order

permet de changer l’ordre d’affichage des composants d’unconteneur

H & H: Research and Training 104 / 153

Page 137: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

Le fichier flex.css

.component1 {background-color: red;order:3;

}.component2 {background-color: green;order: 2;

}.component3 {background-color: blue;order:4;

}.component4 {background-color: yellow;order:1;

}.container {background-color: black;display: flex;

}.container > div {

width : 30%;}

Le resultat

yellow green red blue

H & H: Research and Training 105 / 153

Page 138: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

align-self

permet de changer la valeur d’align-items pour un blockdonne.

H & H: Research and Training 106 / 153

Page 139: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

Le fichier flex.css

.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%;}

Le resultat

red

green blue

yellow

H & H: Research and Training 107 / 153

Page 140: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Proprietes pour modifier la largeur

flex-grow : permet d’agrandir certains blocks par rapport a lataille des autres

flex-shrink : permet de retrecir certains blocks si necessairelorsqu’il n’y a pas assez d’espace dans une rangee

flex-basis : permet de specifies la largeur initiale d’uncomposant, avant qu’un eventuel espace disponible soit distribueselon les facteurs flex

...

H & H: Research and Training 108 / 153

Page 141: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

flex-grow

precise de combien croıtre la taille des enfants

H & H: Research and Training 109 / 153

Page 142: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

Le fichier flex.css

.component1 {background-color: red;flex-grow: 1;

}.component2 {background-color: green;flex-grow: 3;

}.component3 {background-color: blue;flex-grow: 1;

}

.component4 {background-color: yellow;flex-grow: 1;

}.container {background-color: black;display: flex;

}

Le resultat

red green blue yellow

H & H: Research and Training 110 / 153

Page 143: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Flexbox

CSS : Cascading Style Sheets

Pour mieux comprendre Flexbox

http://flexboxfroggy.com/#fr

http://www.flexboxdefense.com/

H & H: Research and Training 111 / 153

Page 144: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style SheetsConsiderons l’exemple suivant :

Le fichier grid.html

<!DOCTYPE html><html><head><title> grid </title><link rel="stylesheet" href="grid.css">

</head><body><div class="container" ><div class=component1 >red</div><div class=component2 >green</div><div class=component3 >blue</div><div class=component4 >yellow</div>

</div></body>

</html>

Le fichier grid.css

.component1 {background-color: red;

}.component2 {

background-color: green;}.component3 {

background-color: blue;}.component4 {

background-color: yellow;}.container {

background-color: black;display: grid;

}.container > div {

height: 100px;}

H & H: Research and Training 112 / 153

Page 145: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style Sheets

red

green

blue

yellow

H & H: Research and Training 113 / 153

Page 146: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style SheetsDefinissons une grille composee de 4 colonnes

.container {background-color: black;display: grid;grid-template-columns: auto auto auto auto;

}.container > div {height: 100px;

}

red green blue yellow

Si le nombre de composants depasse le nombre de colonnes, alors la grille ajoutera

automatiquement une ligne pour placer les composants manquants.

H & H: Research and Training 114 / 153

Page 147: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style SheetsDefinissons une grille composee de 4 colonnes

.container {background-color: black;display: grid;grid-template-columns: auto auto auto auto;

}.container > div {height: 100px;

}

red green blue yellow

Si le nombre de composants depasse le nombre de colonnes, alors la grille ajoutera

automatiquement une ligne pour placer les composants manquants.

H & H: Research and Training 114 / 153

Page 148: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style SheetsExemple avec une grille composee de 3 colonnes

.container {background-color: black;display: grid;grid-template-columns: auto auto auto;

}.container > div{height: 100px;

}

red green blue

yellow

H & H: Research and Training 115 / 153

Page 149: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style SheetsOn peut aussi utiliser le nombre de fractions : nombre de part de l’espace disponible

.container {background-color: black;display: grid;grid-template-columns: 1.5fr 0.5fr 1.5fr 0.5fr;

}.container > div{height: 100px;

}

red green blue yellow

Cette ecriture grid-template-columns: 1.5fr 0.5fr 1.5fr 0.5fr; a

grid-template-columns: repeat(2, 1.5fr 0.5fr);.H & H: Research and Training 116 / 153

Page 150: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

Exemple avec une grille composee de 2 colonnes avec deux largeurs differentes

.container {background-color: black;display: grid;grid-template-columns: 40% 60%; // on peut aussi utiliser px : pixel

ou fr : fraction : nombre de part de l’espace disponible}.container > div {height: 100px;

}

red green

yellowblue

H & H: Research and Training 117 / 153

Page 151: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

On peut aussi definir la hauteur de chaque rangee (ligne)

.container {background-color: black;display: grid;grid-template-columns: 40% 60%;grid-template-rows: 100px 200px;

}

red green

yellowblue

H & H: Research and Training 118 / 153

Page 152: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style Sheets

On peut aussi remplacer les deux proprietesgrid-template-columns et grid-template-rows pargrid-template

.container {background-color: black;display: grid;grid-template: 100px 200px / 40% 60%;/*grid-template-columns: 40% 60%;

grid-template-rows: 100px 200px;

*/}

H & H: Research and Training 119 / 153

Page 153: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style Sheets

Grid : autres proprietes

grid-column-gap : permet de definir un espace entre lescolonnes

grid-row-gap : permet de definir un espace entre les lignes

justify-content : permet de definir la facon dont l’espacedoit etre reparti entre et autour des composants par rapport a unaxe vertical

align-content : permet de definir la facon dont l’espace doitetre reparti entre et autour des composants par rapport a un axehorizontal

H & H: Research and Training 120 / 153

Page 154: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style Sheets

On peut aussi placer les composants en precisant pour chacunentre quelles colonnes et lignes il faut le placer

1

2...

n - 1

n

1 2

· · ·

n - 1 ncolonnes

lignes

H & H: Research and Training 121 / 153

Page 155: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style Sheets

Exemple

grid-column-start: 1;grid-column-end: 2;grid-row-start: 1;grid-row-end: 2;

1

2...

n - 1

n

1 2

· · ·

n - 1 n

H & H: Research and Training 122 / 153

Page 156: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

On peut aussi modifier les proprietes des composantsLe fichier grid.css

.component1 {background-color: red;grid-column-start: 1;grid-column-end: 3;grid-row-start: 1;grid-row-end: 3;

}.component2 {

background-color: green;grid-column-start: 2;grid-column-end: 4;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;

}

.component4 {background-color: yellow;grid-column-start: 3;grid-column-end: 4;grid-row-start: 2;grid-row-end: 4;

}.container {

background-color: black;display : grid;height: 500px;grid-template-columns: repeat(3, 1fr);

}

H & H: Research and Training 123 / 153

Page 157: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style Sheets

Le resultat est :

red green

yellowblue

H & H: Research and Training 124 / 153

Page 158: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

On peut aussi utiliser la propriete span qui indique le nombre de colonnes (lignes)Le fichier grid.css

.component1 {background-color: red;grid-column-start: 1;grid-column-end: span 2;grid-row-start: 1;grid-row-end: span 2;

}.component2 {

background-color: green;grid-column-start: 2;grid-column-end: span 2;grid-row-start: 1;grid-row-end: 2;

}.component3 {

background-color: blue;grid-column-start: 1;grid-column-end: span 2;grid-row-start: 2;grid-row-end: span 2;

}

.component4 {background-color: yellow;grid-column-start: 3;grid-column-end: 4;grid-row-start: 2;grid-row-end: span 2;

}.container {

background-color: black;height: 500px;display : grid;grid-template-columns: repeat(3, 1fr);

}

H & H: Research and Training 125 / 153

Page 159: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style SheetsOn peut encore le simplifier

.component1 {background-color: red;grid-column: 1 / span 2;grid-row: 1 / span 2;

}.component2 {background-color: green;grid-column: 2 / span 2;grid-row: 1 / span 1;

}.component3 {background-color: blue;grid-column: 1 / span 2;grid-row: 2 / span 2;

}.component4 {background-color: yellow;grid-column: 3 / span 1;grid-row: 2 / span 2;

}

On peut utiliser la propriete z-index pour definir l’ordre dans lequel les composants s’empilent.

H & H: Research and Training 126 / 153

Page 160: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style SheetsOn peut encore le simplifier

.component1 {background-color: red;grid-column: 1 / span 2;grid-row: 1 / span 2;

}.component2 {background-color: green;grid-column: 2 / span 2;grid-row: 1 / span 1;

}.component3 {background-color: blue;grid-column: 1 / span 2;grid-row: 2 / span 2;

}.component4 {background-color: yellow;grid-column: 3 / span 1;grid-row: 2 / span 2;

}

On peut utiliser la propriete z-index pour definir l’ordre dans lequel les composants s’empilent.H & H: Research and Training 126 / 153

Page 161: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

On peut aussi utiliser grid-area: row-start / col-start / row-number /col-number

.container {background-color: black;height: 500px;display : grid;grid-template-columns: repeat(3, 1fr);

}.component1 {background-color: red;grid-area: 1 / 1 / span 2 / span 2;

}.component2 {background-color: green;grid-area: 1 / 2 / span 1 / span 2;

}.component3 {background-color: blue;grid-area: 2 / 1 / span 2 / span 2;

}.component4 {background-color: yellow;grid-area: 2 / 3 / span 2 / span 1;

}

H & H: Research and Training 127 / 153

Page 162: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

On peut aussi definir un grid-template-areas

.component1 {background-color: red;grid-area: rouge;

}.component2 {background-color: green;grid-area: vert;

}.component3 {background-color: blue;grid-area: bleu;

}.component4 {background-color: yellow;grid-area: jaune;

}.container {height: 500px;display : grid;grid-template-areas:’rouge vert vert’’bleu bleu jaune’’bleu bleu jaune’;

}

H & H: Research and Training 128 / 153

Page 163: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

La propriete display Emplacement de boites avec Grid

CSS : Cascading Style Sheets

Pour mieux comprendre Grid

http://cssgridgarden.com/#fr

H & H: Research and Training 129 / 153

Page 164: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style SheetsLes Media Queries

definit les techniques CSS d’adaptation du contenu de notre page weben fonction de la resolution d’ecran de nos visiteurs

<head><meta charset="utf-8"><title>Affichage selon resolution</title><link rel="stylesheet" media="screen" href="file.css"><link rel="stylesheet" media="print" href="print.css">

</head>

Depuis CSS2

On avait la possibilite de definir une version :

screen : pour les ecrans

print : pour impression

H & H: Research and Training 130 / 153

Page 165: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style SheetsLes Media Queries

definit les techniques CSS d’adaptation du contenu de notre page weben fonction de la resolution d’ecran de nos visiteurs

<head><meta charset="utf-8"><title>Affichage selon resolution</title><link rel="stylesheet" media="screen" href="file.css"><link rel="stylesheet" media="print" href="print.css">

</head>

Depuis CSS2

On avait la possibilite de definir une version :

screen : pour les ecrans

print : pour impression

H & H: Research and Training 130 / 153

Page 166: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style SheetsLes Media Queries

definit les techniques CSS d’adaptation du contenu de notre page weben fonction de la resolution d’ecran de nos visiteurs

<head><meta charset="utf-8"><title>Affichage selon resolution</title><link rel="stylesheet" media="screen" href="file.css"><link rel="stylesheet" media="print" href="print.css">

</head>

Depuis CSS2

On avait la possibilite de definir une version :

screen : pour les ecrans

print : pour impression

H & H: Research and Training 130 / 153

Page 167: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style Sheets

Dans le fichier print.css#menu, #footer, #header {

display:none;}body {

font-size:80%;}

H & H: Research and Training 131 / 153

Page 168: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style Sheets

Tout mettre dans un fichier?

Il faut juste preciser chaque fois le type de peripherique concerne parle style.

@media print {#menu, #footer, #header {

display:none;}body {

font-size:80%;}

}

@media screen {...

}

H & H: Research and Training 132 / 153

Page 169: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style Sheets

Depuis CSS2, autres types de media disponibles

handheld : Peripheriques mobiles ou de petite taille

projection : Projecteurs (ou presentations avec slides)

tv : Televiseur

all : Toutes les resolutions

...

Plusieurs navigateurs mobiles ignorent le media handheld (parexemple Safari Mobile) et se considerent comme un media screen.

H & H: Research and Training 133 / 153

Page 170: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style Sheets

Depuis CSS3, on peut definir des regles

height : hauteur de la zone d’affichagewidth : largeur de la zone d’affichagedevice-height : hauteur du peripheriqueresolution resolution du peripheriquemax-height : hauteur maximale de la zone d’affichagemax-width : largeur maximale de la zone d’affichagemin-height : hauteur minimale de la zone d’affichagemin-width : largeur minimale de la zone d’affichageorientation : orientation du peripherique (portrait ou paysage)...

H & H: Research and Training 134 / 153

Page 171: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style Sheets

<link rel="stylesheet" media="(orientation:portrait)" href="file1.css">

<link rel="stylesheet" media="(orientation:landscape)" href="file2.css">

...

H & H: Research and Training 135 / 153

Page 172: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style Sheets

Depuis CSS3, il est possible de combiner ces regles

and : et

only : seulement

not : non

H & H: Research and Training 136 / 153

Page 173: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style Sheets

<link rel="stylesheet" media="screen and (max-width: 640px)" href="file1.css">

<link rel="stylesheet" media="only screen and print" href="file2.css">...

ou dans un seul fichier CSS :@media screen and (max-width: 1024px) {

}@media all and (min-width: 1024px) and (max-width: 1280px) {

}@media projection and tv {

}@media all and (orientation: portrait) {

}

H & H: Research and Training 137 / 153

Page 174: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les Media Queries

CSS : Cascading Style Sheets

<link rel="stylesheet" media="screen and (max-width: 640px)" href="file1.css">

<link rel="stylesheet" media="only screen and print" href="file2.css">...

ou dans un seul fichier CSS :@media screen and (max-width: 1024px) {

}@media all and (min-width: 1024px) and (max-width: 1280px) {

}@media projection and tv {

}@media all and (orientation: portrait) {

}

H & H: Research and Training 137 / 153

Page 175: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Bootstrap

framework CSS

open source depuis 2012

concu par des developpeurs Twitter Mark Otto et Jacob Thornton

utilisant flexbox

H & H: Research and Training 138 / 153

Page 176: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Documentation officielle

http://getbootstrap.com/

Documentation sur w3schools

https://www.w3schools.com/bootstrap4/bootstrap get started.asp

H & H: Research and Training 139 / 153

Page 177: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Documentation officielle

http://getbootstrap.com/

Documentation sur w3schools

https://www.w3schools.com/bootstrap4/bootstrap get started.asp

H & H: Research and Training 139 / 153

Page 178: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Deux facons differentes pour integrer Bootstrap

en faisant reference a un fichier bootstrap.min.css, situe surle site de Bootstrap, dans la balise link (Content DeliveryNetwork : CDN)

en telechargeant Bootstrap et en referencantbootstrap.min.css

Commencons par l’integrer dans notre page HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">

H & H: Research and Training 140 / 153

Page 179: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Deux facons differentes pour integrer Bootstrap

en faisant reference a un fichier bootstrap.min.css, situe surle site de Bootstrap, dans la balise link (Content DeliveryNetwork : CDN)

en telechargeant Bootstrap et en referencantbootstrap.min.css

Commencons par l’integrer dans notre page HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">

H & H: Research and Training 140 / 153

Page 180: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

La grille de Bootstrap (6= Grid)

Bootstrap utilise une grille composee de 12 colonnes pour chaqueligne (row)

En cas d’imbrication, la nouvelle sous-ligne sera aussi composeede 12 colonnes

H & H: Research and Training 141 / 153

Page 181: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style SheetsPour bien voir la limite de chaque element, commencons par definir une bordure pour noselements

p {border: 1px black solid;

}

Exemple (remplacer bonjour par le paragraphe lorem ipsum)

<div class=container> <!-- essayer container-fluid aussi --><div class=row>

<p class=col-md-6>Bonjour

</p><p class=col-md-2>

Bonjour</p><p class=col-md-4>

Bonjour</p>

</div></div>

H & H: Research and Training 142 / 153

Page 182: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style SheetsPour bien voir la limite de chaque element, commencons par definir une bordure pour noselements

p {border: 1px black solid;

}

Exemple (remplacer bonjour par le paragraphe lorem ipsum)

<div class=container> <!-- essayer container-fluid aussi --><div class=row>

<p class=col-md-6>Bonjour

</p><p class=col-md-2>

Bonjour</p><p class=col-md-4>

Bonjour</p>

</div></div>

H & H: Research and Training 142 / 153

Page 183: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Des colonnes definies par rapport au type de media

sm : tablettes de largeur superieure ou egale a 576px

md : ecrans de largeur superieure ou egale a 768px

lg : grands ecrans de largeur superieure ou egale a 992px

xl : tres grands ecrans de largeur superieure ou egale a 1200px

Remarque

Il est possible de combiner ces proprietes pour adapter l’affichage auxdifferents medias.

H & H: Research and Training 143 / 153

Page 184: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Des colonnes definies par rapport au type de media

sm : tablettes de largeur superieure ou egale a 576px

md : ecrans de largeur superieure ou egale a 768px

lg : grands ecrans de largeur superieure ou egale a 992px

xl : tres grands ecrans de largeur superieure ou egale a 1200px

Remarque

Il est possible de combiner ces proprietes pour adapter l’affichage auxdifferents medias.

H & H: Research and Training 143 / 153

Page 185: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Exemple en combinant les classes

<div class=container><div class=row><p class="col-md-6 col-lg-4">Bonjour

</p><p class="col-md-2 col-lg-4">Bonjour

</p><p class="col-md-4 col-lg-4">Bonjour

</p></div>

</div>

H & H: Research and Training 144 / 153

Page 186: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Pour que tous les paragraphes aient la meme largeur

<div class=container><div class=row><p class=col>Bonjour

</p><p class=col>Bonjour

</p><p class=col>Bonjour

</p></div>

</div>

H & H: Research and Training 145 / 153

Page 187: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Liens vers les classes Bootstrap

https://www.w3schools.com/bootstrap/default.asp

Exemple de boutons bootstrap

<button class =’btn btn-success’> ajouter </button>

H & H: Research and Training 146 / 153

Page 188: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Liens vers les classes Bootstrap

https://www.w3schools.com/bootstrap/default.asp

Exemple de boutons bootstrap

<button class =’btn btn-success’> ajouter </button>

H & H: Research and Training 146 / 153

Page 189: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Bootstrap

CSS : Cascading Style Sheets

Liens vers les classes Bootstrap

https://www.w3schools.com/bootstrap/default.asp

Exemple de boutons bootstrap

<button class =’btn btn-success’> ajouter </button>

H & H: Research and Training 146 / 153

Page 190: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Autres frameworks CSS

CSS : Cascading Style Sheets

Autres frameworks CSS

Semantic UI : https://semantic-ui.com/

Foundation : https://foundation.zurb.com/

Bulma : https://bulma.io/

UIKit : https://getuikit.com/

Material UI : http://www.material-ui.com/#/

KNACSS : https://knacss.com/

...

H & H: Research and Training 147 / 153

Page 191: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les icones

CSS : Cascading Style Sheets

Les icones

Font Awesome :https://fontawesome.com/

Google :https://material.io/resources/icons/?style=baseline

Bootstrap :https://glyphicons.bootstrapcheatsheets.com/

...

H & H: Research and Training 148 / 153

Page 192: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les icones

Les icones

Font Awesome 5

a deux editions :

edition gratuite avec 1 535 icones

edition pro avec 7 020 icones

peut etre utilise de deux manieres differentes

en telechargeant puis en referencant la librairie

en ajoutant un lien contenant un Kit code

H & H: Research and Training 149 / 153

Page 193: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les icones

Les iconesPour utiliser les icones de Font Awesome (avec un lien), il faut ajouter

<script src="https://kit.fontawesome.com/code.js"></script>

Comment obtenir un code?

Aller sur https://fontawesome.com/

Cliquer sur start for free

Creer un compte pour recevoir un code

...

Integrer le code obtenu dans l’URL de Font Awesome

<script src="https://kit.fontawesome.com/a6c393237d.js"></script>

H & H: Research and Training 150 / 153

Page 194: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les icones

Les iconesPour utiliser les icones de Font Awesome (avec un lien), il faut ajouter

<script src="https://kit.fontawesome.com/code.js"></script>

Comment obtenir un code ?

Aller sur https://fontawesome.com/

Cliquer sur start for free

Creer un compte pour recevoir un code

...

Integrer le code obtenu dans l’URL de Font Awesome

<script src="https://kit.fontawesome.com/a6c393237d.js"></script>

H & H: Research and Training 150 / 153

Page 195: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les icones

Les iconesPour utiliser les icones de Font Awesome (avec un lien), il faut ajouter

<script src="https://kit.fontawesome.com/code.js"></script>

Comment obtenir un code ?

Aller sur https://fontawesome.com/

Cliquer sur start for free

Creer un compte pour recevoir un code

...

Integrer le code obtenu dans l’URL de Font Awesome

<script src="https://kit.fontawesome.com/a6c393237d.js"></script>

H & H: Research and Training 150 / 153

Page 196: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les icones

Les icones

Exemple d’utilisation d’icone Font Awesome

<i class="fab fa-html5"></i>

Ou trouver les icones?

Allez sur https://fontawesome.com/icons?d=gallery

Vous pouvez selectionner ou chercher (les icones grisesappartiennent a l’edition pro)

H & H: Research and Training 151 / 153

Page 197: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Les icones

Les icones

Exemple d’utilisation d’icone Font Awesome

<i class="fab fa-html5"></i>

Ou trouver les icones?

Allez sur https://fontawesome.com/icons?d=gallery

Vous pouvez selectionner ou chercher (les icones grisesappartiennent a l’edition pro)

H & H: Research and Training 151 / 153

Page 198: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

CSS3 et compatibilite des navigateurs

CSS : Cascading Style Sheets

Pour tester la compatibilite d’une propriete CSS3 avec les navigateurs

https://caniuse.com/

H & H: Research and Training 152 / 153

Page 199: CSS : Cascading Style Sheets · CSS: Cascading Style Sheets Achref El Mouelhi Docteur de l’universite d’Aix-Marseille´ Chercheur en programmation par contrainte (IA) Ingenieur

Quelques liens utiles

CSS : Cascading Style Sheets

Pour mieux apprendre HTML, CSS, JavaScript...

https://htmlcheatsheet.com/

https://css-tricks.com/snippets/

H & H: Research and Training 153 / 153