JdB.CSS BETA

Les classes flex

jdb-flex(-*) v1.2.0


Partager cette page

Présentation des classes flex dans JdB.CSS

Flexbox est un moyen de disposer, d'aligner et de distribuer efficacement des éléments sur une page. Si vous souhaitez en savoir plus sur Flexbox et comment l'utiliser à votre guise, il existe de nombreuses bonnes documentations sur le Web (y compris cet article CSS Tricks (en) et cette spécification MDN).

Une chose à noter est que ce système utilise un modèle de disposition en boîte flexible, qui peut ne pas bien fonctionner avec notre modèle de grille traditionnel qui se base sur le modèle de disposition en tableau. Cela signifie que, selon les besoins, vous ne pourrez peut-être pas utiliser les classes flex et et les classes d'autres dispositions sur le même élément.


Flex display

Les classes Flex display, telles que jdb-flex et jdb-inline-flex, sont des outils puissants en CSS3 qui permettent de créer des mises en page flexibles et réactives pour les éléments HTML.

Une de ces deux classes (jdb-flex et jdb-inline-flex) doit être utilisé pour sur le conteneur principal (parent) afin de pouvoir utiliser les autres classes flex, que ce soit pour le parent ou pour ses enfants (voir les exemples de code ci-dessous).

La classe jdb-flex est principalement utilisée pour transformer un élément en un conteneur flexible. Lorsqu'un élément est affecté par cette classe, il devient un conteneur principal pour ses éléments enfants, qui peuvent être organisés horizontalement ou verticalement, en fonction des propriétés flexbox que vous appliquez.

La classe jdb-inline-flex, quant à elle, est utilisée de manière similaire, mais elle s'applique aux éléments en ligne, tels que des liens ou des en-têtes de texte, permettant de les disposer de manière flexible tout en conservant leur affichage en ligne.

Un peu de texte
Code :
<div class="container">
  Un peu de texte
  <div class="parent jdb-flex">
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
  </div>
</div>

Ordre et orientation

Un conteneur flex permet de disposer son contenu dans n'importe quelle direction et ordre, remplaçant ainsi des méthodes plus complexes comme les flottants. Les classes jdb-flex-direction et jdb-flex-wrap permettent de contrôler l'ordre et l'orientation des éléments enfants d'un conteneur flexible.

flex-direction

La propriété flex-direction indique comment les éléments flex sont organisés dans le conteneur flex en précisant l'orientation de l'axe principal. Cela décide la direction dans laquelle les éléments flex sont alignés.

Code :
<div class="parent jdb-flex jdb-flex-row" style="height:250px">
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
</div>

flex-wrap

La propriété flex-wrap contrôle si le conteneur flexible est monoligne ou multiligne, ainsi que la direction de l'axe transversal, qui détermine la direction dans laquelle les nouvelles lignes sont empilées.

Code :
<div class="parent jdb-flex jdb-flex-nowrap" style="height:250px">
  <div class="child" style="width:40%"></div>
  <div class="child" style="width:40%"></div>
  <div class="child" style="width:40%"></div>
  <div class="child" style="width:40%"></div>
</div>

Ordre

Les éléments flexibles sont, par défaut, affichés et disposés dans le même ordre que celui dans lequel ils apparaissent dans le code source. Les classes jdb-order-{ordre} peuvent être utilisée pour modifier cet ordre.

Sauf indication contraire dans une future spécification du W3C, cette propriété n'a aucun effet sur les boîtes qui ne sont pas des éléments flexibles.

Par défaut, JdB.CSS fournit les classes jdb-order-first, jdb-order-last, jdb-order-none et jdb-order-{nombre} pour les nombres de 1 à 12. Vous pouvez personnaliser ces valeurs en définisant votre propre style.

Code :
<div class="parent jdb-flex jdb-flex-space-between">
  <div class="child"></div>
  <div class="child"></div>
  <div class="child jdb-order-first"></div>
  <div class="child"></div>
</div>

Alignement

Les propriétés d'alignement en flexbox, telles que justify-content, align-items et align-self, permettent de contrôler la position des éléments flex à l'intérieur de leurs conteneurs.

justify-content

La propriété justify-content contrôle l'alignement horizontal des éléments flex dans un conteneur flex et est très utile pour distribuer l'espace libre horizontalement entre les éléments flex.

Code :
<div class="parent jdb-flex jdb-flex-start" style="height:250px">
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
</div>

align-items

La propriété align-items contrôle l'alignement vertical des éléments flex dans un conteneur flex et est très utile pour distribuer l'espace libre verticalement entre les éléments flex.

Si l'une des marges transversales de l'élément flexible est sur auto, align-self n'aura aucun effet.

Lorem ipsum, dolor
Sit amet consectetur adipisicing
Odit ut
Aperiam, odit ut tempore
Code :
<div class="parent jdb-flex jdb-flex-center" style="height:250px">
  <div class="child">Lorem ipsum, dolor</div>
  <div class="child">Sit amet consectetur adipisicing</div>
  <div class="child">Odit ut</div>
  <div class="child">Aperiam, odit ut tempore</div>
</div>

Flexibilité

Les propriétés de flexibilité, telles que flex-grow, flex-shrink et flex-basis, permettent de contrôler la taille des éléments flex à l'intérieur de leurs conteneurs.

flex-grow et flex-shrink

Remarque : JdB.CSS offre quelques classes pour agrandir et rétrécir les éléments ou éviter ces deux cas. Pour toute personnalisation, il est conseillé de créer votre propre style pour personnaliser les valeurs non fournies par JdB.CSS.

Code :
<div class="parent jdb-flex" style="height:250px">
  <div class="child"></div>
  <div class="child"></div>
  <div class="child jdb-flex-item-grow"></div>
  <div class="child"></div>
</div>

Partager cette page