42
Exemple avec un menu

Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Embed Size (px)

Citation preview

Page 1: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Exemple avec un menu

Page 2: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 02 / 42

• Exemple présenté en version html4 (avec des <div>) et en html5 (avec des <header>, <nav>, etc.)

• Règle de css correspondantes (avec des div.class ou des éléments)

Intro Dimension Transition Positionnement

Page 3: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 03 / 42

• À partir d’un exemple (ici un menu « déroulant »), nous allons voir différentes propriétés

• Définir les dimensions d’un élément width, height, min-width, max-width, min-height, max-heightMais aussi Contrôler le contenu par rapport à la dimension (overflow)

• Voir pour faire des transitions animées (transition) notamment sur la dimension et sur la transparence (opacité)

• Voir également le (re)positionnement des élements (position) • Voir comment modifier l’affichage « naturel » d’une élément (display)• Pour finir, en introduction au layout, voir comment casser le flot d’affichage

(float)

Intro Dimension Transition Positionnement

Page 4: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 04 / 42

Intro Dimension Transition Positionnement

Page 5: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 05 / 42

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

<head> <title>Cours Web, L3I parcours MIAGE, UNS</title> <link rel="stylesheet" href="css02-menu.css" type="text/css" media="screen,print" /> </head>

<body>

<div class="diplome"> <span>Années de l'IUP MIAGE</span> <div class="menudiplomecontainer">

<div><a href="http://miageprojet2.unice.fr/Licence_MIAGE_3">L3I MIAGE</a></div> <div><a href="http://miageprojet2.unice.fr/Master_MIAGE_1">M1 MIAGE</a></div> <div><a href="http://miageprojet2.unice.fr/Master_MIAGE_2_NTDP">M2 MIAGE NTDP</a></div>

</div> </div>

<div class="diplome"> <span>Les autres spécialités du M2 MIAGE </span> <div class="menudiplomecontainer">

<a href="http://miageprojet2.unice.fr/Master_MIAGE_2_SIRIS">M2 MIAGE SIRIS</a> <a href="http://miageprojet2.unice.fr/Master_MIAGE_2_SD">M2 MIAGE SD</a> <a href="http://miageprojet2.unice.fr/Master_MIAGE_2_MBDS">M2 MIAGE MBDS</a>

</div> </div>

<p> sous le menu, que ce pass-t-il ? </p> <p>Voici un lien vers <a href="http://www.unice.fr">le site de l'Université Nice Sophia Antipolis</a></p> <p> sous le menu, que ce pass-t-il ?</p> <!-- … -->

</body> </html>

Intro Dimension Transition Positionnement

Page 6: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 06 / 42

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>Cours Web, UNS</title>

</head> <body>

<nav> Années de l'IUP MIAGE <ul>

<li><a href="http://miageprojet2.unice.fr/Licence_MIAGE_3">L3I MIAGE</a></li>

<li><a href="http://miageprojet2.unice.fr/Master_MIAGE_1">M1 MIAGE</a></li>

<li><a href="http://miageprojet2.unice.fr/Master_MIAGE_2_NTDP">M2 MIAGE NTDP</a></li>

</ul> </nav>

<nav> Les autres spécialités du M2 MIAGE <ul>

<li><a href="http://miageprojet2.unice.fr/Master_MIAGE_2_SIRIS">M2 MIAGE SIRIS</a></li>

<li><a href="http://miageprojet2.unice.fr/Master_MIAGE_2_SD">M2 MIAGE SD</a></li>

<li><a href="http://miageprojet2.unice.fr/Master_MIAGE_2_MBDS">M2 MIAGE MBDS</a></li>

<li><a href="http://miageprojet2.unice.fr/Master_MIAGE_2_NTDP">NTDP 1 </a></li>

<li><a href="http://miageprojet2.unice.fr/Master_MIAGE_2_NTDP">NTDP 2</a></li>

</ul> </nav>

<h1>exemple de menu</h1>

<p> sous le menu, que ce pass-t-il ? </p> <!-- etc. -->

</body> </html>

http://dabblet.com/gist/4ebf4632269dd1a7e834

Intro Dimension Transition Positionnement

Page 7: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 07 / 42

Intro Dimension Transition Positionnement

Page 8: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 08 / 42

• Déjà, il y a une question de dimension

– Les listes (ul/li) ou les div prennent toutes la ligne

– Il faut donc retailler ces éléments

• Donner des dimensions aux éléments

– width

– height

Intro Dimension Transition Positionnement

Page 9: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 09 / 42

• Indique la largeur du contenu d’un élément

• S’applique à tous les éléments sauf les lignes des tableaux et les éléments inline qui ne sont pas remplacés (i.e., les balises inclues dans le texte, comme a, em, etc.)

• Valeur par défaut : auto• Chaque élément n’hérite pas de la largeur de l’élément parent (pas systématiquement)• Cette propriété est prise en compte dans les animations CSS (sauf si la valeur d’arrivée ou de départ est auto)

• Les valeurs possibles, une valeur qui peut être :– Une longueur positive (10rem ou 150px etc.)– auto (calcul par le navigateur, en fonction de la nature de l’élément, de son contenu, des autres propriétés et du parent)– un mot-clef (c.f. dans 5 transparents)– Un pourcentage par rapport à la largeur de la boite englobante (i.e., width « normale » + padding + épaisseur des contours gauche

et droit + marge )

• http://dabblet.com/gist/4e44eeca6cd8afec3d49

Intro Dimension Transition Positionnement

Page 10: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 10 / 42

width

pour connaitre les cas très particuliers de calcul des largeur (position absolue, etc.) : http://www.w3.org/TR/CSS21/visudet.html#Computing_widths_and_margins

Intro Dimension Transition Positionnement

Page 11: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 11 / 42

• Indique la hauteur du contenu d’un élément

• S’applique à tous les éléments sauf les éléments inline qui ne sont pas remplacés (i.e., les balises inclues dans le texte, comme a, em, etc.)

• Valeur par défaut : auto• Chaque élément n’hérite pas de la hauteur de l’élément parent (pas systématiquement)• Cette propriété est prise en compte dans les animations CSS (sauf si la valeur d’arrivée ou de départ est auto)

• Les valeurs possibles, une valeur qui peut être :– Une longueur positive (10rem ou 150px etc.)– auto (calcul par le navigateur, en fonction de la nature de l’élément, de son contenu, des autres propriétés et du parent)– un mot-clef (c.f. dans 3 transparents)– Un pourcentage par rapport à la hauteur de la boite englobante (i.e., height « normale » + padding + épaisseur des contours haut

et bas + marge )

• http://dabblet.com/gist/9982b56b40c843050414

Intro Dimension Transition Positionnement

Page 12: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 12 / 42

height

pour connaitre les cas très particuliers de calcul des hauteurs (position absolue, etc.) : http://www.w3.org/TR/CSS21/visudet.html#Computing_heights_and_margins

Intro Dimension Transition Positionnement

Page 13: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 13 / 42

• min-width, min-height permettent de définir une largeur et une hauteur minimale– Fonctionne comme width et height– Valeur par défaut : 0

• max-width, max-height permettent de définir une largeur et une hauteur maximale– Fonctionne comme width et height avec une valeur de plus, « none »

• Valeur par défaut• Signifie qu’il n’y a pas de limite dans la dimension

• Dans le calcul des dimensions des éléments, voici l’impact des contraintes:– Calcul de la largeur et de la hauteur– 1er vérification : si ça dépasse, il faut tout recalculer en prenant la taille maximale concernée– 2de vérification : si c’est trop petit, il faut tout recalculer en prenant la taille minimale concernée– Donc si min-width > max-width, c’est min-width qui « l’emporte »

Intro Dimension Transition Positionnement

Page 14: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 14 / 42

• ‘fill-available’ | ‘max-content’ | ‘min-content’ | ‘fit-content’– Fonctionnent avec ‘width’, ‘min-width’, ‘max-width’, ‘height’, ‘min-height’, ‘max-height’– Ces valeurs sont préfixées (ex : -webkit-min-content)– pas pour ie ni opera-mini, pas pour height sur firefox

• min-content : taille minimale • max-content : taille maximale, sans ajout de ligne (pas de « wrap »)• fit-content : s’adapte au contenu (ni + ni -)• fill-available : taille maximale, mais avec ajout de ligne. • http://dabblet.com/gist/64b99efe26794234f26d

• Encore plus : http://www.w3.org/TR/css3-sizing/

Intro Dimension Transition Positionnement

Page 15: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 15 / 42

nav {

/* mise en forme "général" */

border-radius: 5px;

padding: 5px;

text-align: center;

border: blue thin solid;

box-shadow: 1px 1px 2px black;

/* dimension du menu */

/* un peu plus qu'une ligne */

height: 1.3em;

width: 13em;

}

• Concerne les balises nav

– Bord arrondi

– Espacement entre le cadre et le texte

– Justification du texte (alignement)

– Encadrement

– Ombre

– La hauteur est fixée, pour ne pas décaler le reste de la page

– La largeur est fixée

Intro Dimension Transition Positionnement

Page 16: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 16 / 42

• De cacher ce qui dépasse

– overflow

• De transition pour faire passer d’invisible à visble

– transition

– Mais de propriétés

• opacity

Intro Dimension Transition Positionnement

Page 17: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 17 / 42

• Comme avec width / height, il est possible de changer la taille « naturelle » (i.e., calculée pour le contenu), il peut y avoir des débordement

• overflow permet de définir comment cela sera afficher (ou non)

• overflow est un raccourci : permet de définir avec la même (et unique) valeur le traitemetn du dépassement sur l’horizontale (overflow-x) et sur la verticale (overflow-y)

Intro Dimension Transition Positionnement

Page 18: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 18 / 42

• Indique comment gérer ce qui dépasse, dans la direction indiquée

• S’applique aux « containants » (niveau bloc, ou de display bloc ou flex)• Valeur par défaut : visible (ça dépasse)• Pas d’héritage• Cette propriété n’est pas prise en compte dans les animations CSS

• Les valeurs possibles, une parmi :visible | hidden | scroll | auto | paged-x | paged-y | paged-x-controls | paged-y-controls | fragments – fragments : non implémenté– paged-x | paged-y | paged-x-controls | paged-y-controls : pour les impressions (création de page)– visible : tout est visible– hidden : ce qui dépasse n’est pas visible– scroll : ajout de scrollbar (tout le temps, que cela dépasse ou non)– auto : ajout de scrollbar quand c’est nécessaire (dès que cela dépasse)

Intro Dimension Transition Positionnement

Page 19: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 19 / 42

• Lorsque le style css change (avec javascript ou des sélecteurs comme :hover), le navigateur peut calculer une animation fait d’étape intermédiaire

• transition• Fait sans javascript, mais sur le même thread• Permet de définit

– Quelles propriétés (« animables ») sont concernés : transition-property

– La durée de l’animation : transition-duration– Avec quelle vitesse/accélération : transition-timing-function– S’il y a un décalage temporelle (avant l’animation) :

transition-delay

Intro Dimension Transition Positionnement

Page 20: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 20 / 42

• Indique ce qui sera pris en compte dans l’animation

• S’applique à tous les éléments (y compris :before et :after)• Valeur par défaut : all (tout ce qui « animable » est animé)• Pas d’héritage• Cette propriété participe à définir les animations CSS

• Les valeurs possibles, une parmi :– all (tout ce qui « animable » est animé)– none (pas d’animation)– Une propriété CSS

• Attention aux noms (et aux noms multiples quand c’est préfixé)

– Une suite de propriétés css, séparées par des « , »

• La dernière déclaration transition-property avec la plus grande spécificité sera appliquée… donc faire attention à tout mettre sur “une ligne/déclaration”

• http://dabblet.com/gist/b8a1b5dce7e39cd678f2

Intro Dimension Transition Positionnement

Page 21: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 21 / 42

• Indique la durée de chaque animation

• S’applique à tous les éléments (y compris :before et :after)• Valeur par défaut : 0s (pas de transition)• Pas d’héritage• Cette propriété participe à définir les animations CSS

• Les valeurs possibles, une parmi :– Une durée (en s ou en ms)– Une suite de durées, séparées par des « , »

• Chaque durée s’appliquera alors à la propriété correspondante dans transition-property• S’il n’y a pas assez de durée, on recommence avec la première durée et ainsi de suite

• http://dabblet.com/gist/ea3a60a66698fae40e35

Intro Dimension Transition Positionnement

Page 22: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 22 / 42

• Indique la vitesse et l’accélération de l’animation

• S’applique à tous les éléments (y compris :before et :after)• Valeur par défaut : ease• Pas d’héritage• Cette propriété participe à définir les animations CSS

• Les valeurs possibles, une parmi :– Une fonction

ease | linear | ease-in | ease-out | ease-in-out | step-start | step-end | steps(<integer>[, [ start | end ] ]?) | cubic-bezier(<number>, <number>, <number>, <number>)

– Une suite de fonctions, séparées par des « , »• Chaque fonction s’appliquera alors à la propriété correspondante dans transition-property

– c.f. http://www.w3.org/TR/css3-transitions/#transition-timing-function-property

Intro Dimension Transition Positionnement

Page 23: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 23 / 42

• Indique le temps avec de commencer (ou de cesser) l’animation

• S’applique à tous les éléments (y compris :before et :after)• Valeur par défaut : 0s (pas de délai)• Pas d’héritage• Cette propriété participe à définir les animations CSS

• Les valeurs possibles, une parmi :– Une durée (en s ou en ms)– Une suite de durées, séparées par des « , »

• Chaque délai s’appliquera alors à la propriété correspondante dans transition-property• S’il n’y a pas assez de délai, on recommence avec le premier délai et ainsi de suite

Intro Dimension Transition Positionnement

Page 24: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 24 / 42

• Une notation raccourcie

• Valeur possible :

– none (pas de transition)

– <une propriété> || <une durée d’animation> || <une fonction> || <un délai>

• Ordre important, mais elles sont facultatives

• S’il n’y a qu’un temps => une durée d’animation (et donc une animation sur tout)

– Une suite de valeurs comme celle-ci-dessus, séparées par des « , »

Intro Dimension Transition Positionnement

Page 25: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 25 / 42

• Indique le degré d’opacité d’un élément

• S’applique à tous les éléments • Valeur par défaut : 1 (complétement opaque)• Chaque élément n’hérite pas de l’opacité de l’élément parent• Cette propriété est prise en compte dans les animations CSS

• Les valeurs possibles, une valeur qui peut être :– inherit (l’opacité du parent)– Une nombre en 0.0 et 1.0, e.g., 0.2412

• 1 => complétement opaque• 0 => complétement transparent (non visible)• Entre : mixage de couleur avec ce qui est dessous

Intro Dimension Transition Positionnement

Page 26: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 26 / 42

nav > ul {

/* pour etre caché */

height: 0;

overflow: hidden;

opacity: 0; /* pour tout cacher */

/* pour l'animation du menu "descendant" */

transition: all 1s ease-in-out;

-webkit-transition: all 1s ease-in-out;

/* ne sera visible que lorsque le menu sera affiché */

border-radius: 0 0 5px 5px;

padding: 0.2em;

background-color: rgb(200,200,255);

border: blue thin solid;

border-top-style: none;

box-shadow: 1px 1px 2px black;

}

• il faut cacher la partie déroulante du menu

• Concerne les ul dans des nav– Une hauteur de 0

– Ce qui dépasse est caché

– Transparence totale • Uniquement pour effet

– Animation calculée par le navigateur en cas de changement• Porte sur toutes les propriétés « éligibles »

• À faire pour chaque navigateur

– Mise en forme pour un menu visible

– coins du bas arrondis

– Couleur de fond

– Encadrement

– Sauf en haut (pour ne pas faire de séparation avec la partie toujours visible du menu

Intro Dimension Transition Positionnement

Page 27: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 27 / 42

nav:hover {

background-color: rgb(200,200,255);

}

nav:hover > ul {

/* pour rendre le menu visible */

opacity: 1;

height: 5em;

/* si auto, ne sait pas faire la

transition */

}

• Changement de couleur de fond pour le menu qui est survolé

• Pour rendre visible tout le menu si la souris survole la partie visible du menu

– Cette partie n’est pllus transparente

– Elle a une hauteur suffisante pour qu’on voit tout

– Ici, on précise une taille, sinon le navigateur ne sait pas faire la transition, c’est-à-dire l’animation lors de l’apparition du menu

Intro Dimension Transition Positionnement

Page 28: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 28 / 42

• Il faut gérer la superposition, en décidant ce qui sera par-dessus le reste

– z-index

– En liaison avec « position »

Intro Dimension Transition Positionnement

Page 29: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 29 / 42

• Par défaut, un élément se trouve à « sa place », c’est-à-dire après tous ceux qui sont écrit avant lui (e.g., en html)

• Parfois on veut positionner l’élément ailleurs

• 1ère méthode :

– Positionner par rapport à la page ou au document (position)

– Le décaler un peu (position)

– Faire des « apartés » (float)

– Utiliser d’autres « layout » (flex box par exemple)

Intro Dimension Transition Positionnement

Page 30: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 30 / 42

• Indique comment calculer la position de l’élément dans la page / le document

• S’applique à tous les éléments • Valeur par défaut : static (à l’endroit où il est inséré dans le document)• Chaque élément n’hérite pas du positionnement de l’élément parent (mais cela peut avoir un effet)• Cette propriété n’est pas prise en compte dans les animations CSS

• Valeurs possibles, 1 parmi :– static | relative | absolute | center | page | fixed– center | page ne sont pas implémentés– static : à l’endroit où il est inséré dans le document– relative : à l’endroit où il est inséré dans le document modulo un décalage à préciser avec top | right | bottom | left– absolute : une position fixe par rapport au document (si on scrolle, l’élément suit le mouvement), en précisant la position avec top

| right | bottom | left– fixed: une position fixe par rapport à la fenêtre (si on scrolle, l’élément ne bouge pas, il reste où il est), en précisant la position

avec top | right | bottom | left

Intro Dimension Transition Positionnement

Page 31: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 31 / 42

• Indique la distance par rapport au bord indiqué– Si la position est relative, c’est par rapport à l’endroit où l’élément aurait du être– Si la position est absolute, c’est par rapport à boite du parent si le parent est en position absolute ou fixed, ou relative, sinon au document– Si la position est fixed, c’est par rapport à la fenêtre (viewport)

• S’applique à tous les éléments • Valeur par défaut : auto (valeur calculer pour une position: static)• Chaque élément n’hérite pas du positionnement de l’élément parent • Cette propriété est prise en compte dans les animations CSS

• Valeurs possibles, 1 parmi :– auto : la valeur calculée normalement prévue– Une longueur (qui peut être négative, mais l’élément peut ne plus être visible)– Un pourcentage par rapport:

• À sa propre largeur et hauteur totale si c’est relative• À la largeur et hauteur totale du parent si c’est absolute et que le parent est en position absolute ou fixed ou relative, sinon du document• À la propre largeur et hauteur totale du viewport si c’est fixed

• Utilisée deux propriétés opposées définit une largeur ou une hauteur (mais elle ne supplante pas width et height)

Intro Dimension Transition Positionnement

Page 32: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 32 / 42

• Indique à quelle « hauteur » se trouve l’élément

• S’applique à tous les éléments repositionnés• Valeur par défaut : auto (0, comme les « autres »)• Chaque élément n’hérite pas du positionnement de l’élément parent • Cette propriété est prise en compte dans les animations CSS (valeur entière)

• Valeurs possibles, 1 parmi :– auto (= 0)– Un entier

• positif ou négatif• Plus la valeur est grande, plus l’élément est haut, plus il est au dessus des autres et se verra• Plus la valeur est petite, moins ou le voit• Les éléments « static », affichés à leur place vis-à-vis du document html sont au niveau 0

Intro Dimension Transition Positionnement

Page 33: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 33 / 42

/* pouvoir interagir avec le menu

"déroulé" */

nav > ul {

/* pour être au dessus de ce

qu'il y a en dessous du menu */

position: relative;

z-index: 1;

}

• La partie déroulante est en position relative

• Mais sans modifier sa place (= elle reste à la même place)

• C’est positionné (z-index) au dessus du reste (valeur par défaut 0)

Intro Dimension Transition Positionnement

Page 34: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 34 / 42

• Il faut modifier l’apparence des liens, les faires afficher comment des phrases

– display

• Les mettre en valeur lors du survol

– Faire en sorte qu’il n’y ait pas de « mouvement » => ajout d’un contour de la même couleur que le fond

Intro Dimension Transition Positionnement

Page 35: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 35 / 42

• Permet de dire si l’élément va s’afficher comme un morceau de phrase (inline), un paragraphe (block), un tableau, etc.

• Se décompose en théorie de 3 propriétés

– display-inside : définit le comportement de l’affichage, à l’intérieur de l’élément

– display-outside : permet de placer l’élément dans le reste de la page

– pour dire si c’est une liste : display-list

– (implémentation à vérifier, a priori pas encore supporté)

Intro Dimension Transition Positionnement

Page 36: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 36 / 42

• Indique le type d’affiche de l’élément

• S’applique à tous les éléments• Valeur par défaut : inline• Pas d’héritage• Cette propriété n’est pas prise en compte dans les animations CSS

• Valeurs possibles, 1 parmi :– inline comme un morceau de phrase– block comme un “block” (p, h1, etc.)– inline-block à l’intérieur comme un block, à l’extérieur traité comme un inline– flex pour une mise en page avec des boites facilements déplaçables– inline-flex comme s’il était dans un parent lui même en flex– inline-table un morceau de phrase dans un tableau– list-item comme un item de liste– run-in commence comme un block, mais se termine comme inline (en accolant ce qui suit) (non implémenté)– table comme <table> element

• table-caption comme <caption> element • table-column-group comme <colgroup> element • table-header-group comme <thead> element • table-footer-group comme <tfoot> element • table-row-group comme <tbody> element • table-cell comme <td> element • table-column comme <col> element • table-row comme <tr> element

– none l’élément n’apparait pas, ne prend pas de place, comme s’il n’existait pas– initial sa valeur par défaut (un p sera block, un span sera inline, etc.)– inherit pour avoir celui de l’élément parent

Intro Dimension Transition Positionnement

Page 37: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 37 / 42

/* mise en forme des liens */

nav a {

/* uniquement pour les liens du menu */

text-align: center;

display: block;

border: rgba(0,0,0,0) thin solid;

/* pour ne pas que cela bouge en :hover

avec l'ajout d'un cadre */

}

nav:hover > ul a:hover

{

/* un mise en valeur par un fond blanc

semi-transparent et par un cadre bleu */

border: blue thin solid;

background: rgba(255,255,255,0.5);

}

• Les liens qui sont dans la partie déroulante (directement ou indirectement)

• Les liens s’affichent justifiés

• Ils s’affichent comme des paragraphes (retour à la ligne)

• Ils ont un bord non visible pour éviter un léger déplacement en cas de survol (car ajout d’un cadre, c.f. ci-dessous)

• Lors du survol des liens qui sont dans la partie déroulante

• Ils sont encadrés

• Leur fond change

Intro Dimension Transition Positionnement

Page 38: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 38 / 42

• Aligner les éléments « menus »

• Ancienne solution

– float

• Version plus récente

– Flex – box (plus tard ☺ )

Intro Dimension Transition Positionnement

Page 39: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 39 / 42

• http://www.w3.org/TR/CSS2/visuren.html#floats

• Permet de positionner l’élément sur le côté (comme dans un article de journal)

• Attention à l’ordre du html qui n’est pas sans conséquence

• http://dabblet.com/gist/72c7f579778e51dc2c96

– Voir l’effet en cas de largeur insuffisante…

– Voir l’effet des marges…

Intro Dimension Transition Positionnement

Page 40: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 40 / 42

• Indique la boite est flottant ou pas

• S’applique à tous les éléments (mais voir les relation avec display et position : http://www.w3.org/TR/CSS2/visuren.html#dis-pos-flo )

• Valeur par défaut : none• Pas d’héritage• Cette propriété n’est pas prise en compte dans les animations CSS

• Valeurs possibles, 1 parmi :left | right | none | inherit– left : pour mettre sur la gauche– right : pour mettre sur la droite– none : ce n’est pas flottant– De nouvelles valeurs à venir (top bottom et snap), notamment avec le multi-columns, c.f.,

http://alistapart.com/blog/post/ten-css-one-liners-to-replace-native-apps/

Intro Dimension Transition Positionnement

Page 41: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 41 / 42

• Permet de dire qu’on ne veut rien de flottant (ou au contraire) sur tel ou tel côté

• S’applique à tous les éléments de niveau block• Pas d’héritage• Cette propriété n’est pas prise en compte dans les animations CSS

• Valeurs possibles, une parmi :none | left | right | both | inherit– none : on accepte encore des éléments flottant sur les côtés– both : on n’en accepte plus, sur aucun des deux côtés (place en dessous des éventuels éléments flottant qui

le précèdent)– left : on n’en accepte plus sur le côté gauche (place en dessous des éventuels éléments flottant sur la

gauche qui le précèdent)– right: on n’en accepte plus sur le côté droit (place en dessous des éventuels éléments flottant sur la droite

qui le précèdent)

Intro Dimension Transition Positionnement

Page 42: Exemple avec un menu - Département Informatique - …deptinfo.unice.fr/~renevier/introweb/cours/cours3b layout - partie... · débordement •overflow permet de définir comment

Philippe Renevier Gonin - CSS/Mise en page (01) - Intro Web, 2017-2018 42 / 42

/* 2 menus déroulants côte à côte */

nav {

/* pour placer plusieurs menus

l'un à côté de l'autre */

float: left;

margin: 0 1em;

}

nav + *:not(nav) {

/* *:not(.diplome) ou ici pourrait être "p" */

/* pour mettre fin au menu */

clear: both;

}

• Les menus sont flottant (sur la gauche)

• Avec une marge (pour les espacer)

• Le premier élément qui n’est pas un menu et qui suit un menu est remis à la ligne

Intro Dimension Transition Positionnement