Tu galères avec certains layouts en CSS ? Tu as l'impression que tes éléments ne se comportent pas comme tu le voudrais ? Dans cet article, je vais te montrer 3 hacks Flexbox super utiles que j'utilise tous les jours.
1. Le hack du "flex: 1" pour pousser un élément à droite
C'est probablement le hack que j'utilise le plus souvent. Il permet de pousser un élément tout à droite d'un conteneur flex, peu importe la taille des autres éléments.
Le principe est simple : on met un élément invisible avec flex: 1 entre l'élément de gauche et celui qu'on veut pousser à droite.
C'est tout ! Le flex: 1 va faire en sorte que l'élément "spacer" prenne tout l'espace disponible, poussant ainsi le bouton à droite.
Pourquoi ça marche ?
flex: 1 est un shorthand pour :
flex-grow: 1
flex-shrink: 1
flex-basis: 0
Avec flex-basis: 0, l'élément n'a pas de taille initiale
Avec flex-grow: 1, il prend tout l'espace disponible
Résultat : le bouton est poussé à droite !
2. Le hack du "flex-shrink: 0" pour éviter l'écrasement
Un problème courant avec flexbox : un élément qui se fait écraser quand il n'y a plus assez de place. La solution ? flex-shrink: 0 !
<style>
.container {display:flex;background:#1e293b;padding:1rem;gap:1rem;border-radius:0.5rem;margin-bottom:1rem;}
.content {background:rgba(239,68,68,0.5);padding:1rem;border-radius:0.375rem;flex:1;}
.sidebar {background:rgba(59,130,246,0.5);padding:1rem;border-radius:0.375rem;width:200px;}
.sidebar.no-shrink {flex-shrink:0;}</style><divclass="container"><divclass="content">Un long contenu qui prend beaucoup de place...</div><divclass="sidebar">Je me fais écraser 😢</div></div><divclass="container"><divclass="content">Un long contenu qui prend beaucoup de place...</div><divclass="sidebar no-shrink">Avec flex-shrink: 0,<br>je garde ma taille ! 😎</div></div>