Un flux alternatif : les boîtes flexibles
Une proposition de boîtes flexibles : FLEX
Au delà des propriétés déjà vues,
le
W3C propose un module permettant de
définir les positions, tailles et interactions
des
boites : flex.
Ce module permet de déclarer la dynamique, en une dimension, des enfants d'un conteneur déclaré flex :
Ce module permet de déclarer la dynamique, en une dimension, des enfants d'un conteneur déclaré flex :
- forme d'affichage des éléments enfants (ligne ou colonne) avec flex-direction
- ordre d'affichage des éléments enfants (normale ou inversée) avec flex-direction
- la possibilité des éléments enfants à occuper plusieurs lignes ou une seule du conteneur avec flex-wrap
Par ailleurs, les éléments eux-mêmes sont flexibles :
- la taille des éléments, dans l'axe principal, n'est indiqué que comme référence avec flex-basis,
- cette taille peut ensuite être modifiée par pour s'étendre ou se contracter avec flex-grow et flex-shrink,
- dans leur place dans le flux par order .
Et le conteneur gère les alignement et espacements de ses enfants :
- flex-direction, selon sa valeur (ligne ou colonne) définit l'axe principal (vertical en colonne) et l'axe secondaire (vertical en ligne).
- le conteneur contrôle :
- par justify-content les espacement de ses enfants sur l'axe principal.
- par align-items les alignements de ses enfants sur l'axe secondaire.
Un premier exemple
À l'aide des propriétés flex approchez-vous de ce résultat à l'aide de ce fichier.
Quelques consignes :
Une fois le résultat obtenu, regarder les effets de la propriété align-items, appliquée sur le conteneur principal.
Appliquez votre feuille de styles sur ce nouveau fichier :
Quelques consignes :
- ne pas intégrer de marge !
- jouer avec le débugger pour tester les propriétés proposées pour chaque propriétés,
- travailler d'abord sur .conteneur, ensuite sur les fils,
- ne pas se contenter des valeurs par défaut sur les propriétés flex, expliciter toutes les propriétés.
Une fois le résultat obtenu, regarder les effets de la propriété align-items, appliquée sur le conteneur principal.
Appliquez votre feuille de styles sur ce nouveau fichier :
- jouer avec la propriété flex-wrap,
- regarder les propriétés 'inverse' sur flex-direction, tout en variant flex-wrap,
- conclure.
Un second exemple
Pour illustrer ces propriétés nous utiliserons ce fichier.
Pensez à dessiner votre arborescence et le rendu souhaité, comme toujours,
bordurer et colorer les principaux éléments.
À l'aide
des proprétés de flex construire la
feuille permettant d'obtenir une version
beaucoup plus jolie
de cette
maquette pour un écran normal et de celle-ci pour un écran plus petit.
Vous pouvez aussi vous appuyer sur ce tutoriel.
Flex et adaptatif
En reprenant le menu flottant,
proposer cette fois une solution adaptative uniquement à base de flex.