1 pièce(s) jointe(s)
Div hauteur automatique sans dimension en absolu
Bonjour la communauté !
Selon le schéma suivant :
Pièce jointe 152237
Comment faire pour tailler automatiquement en hauteur la div3.
Sachant que :
- La hauteur du corps de la fenêtre est inconnu.
- La hauteur des div 1, 2 et 4, sont adaptées automatiquement en fonction du contenu (donc hauteur inconnue).
J'ai beaucoup cherché, impossible de trouver quoique ce soit de valable.
Je ne veux pas attribuer de hauteur fixe à l'ensemble.
J'avais écris un petit script JS, qui bon an mal an, donnait le résultat escompté.
Cependant, j'aimerai beaucoup faire ça en CSS pure.
Des idées ?
Merci.
Nils.
5 pièce(s) jointe(s)
Les flexBox, une approche simple...
Je vais essayer de te simplifier la vision que tu as des flexBox
En partant d'une structure HTML standard suivante
Code:
1 2 3 4 5 6
| <div class="conteneur_flex">
<div>Content 1</div>
<div>Content 2</div>
<div>Content 3</div>
<div>Content 4</div>
</div> |
on commence par déclarer le CSS du conteneur comme ceci (voir la documentation pour la signification de chaque propriété)
Code:
1 2 3 4
| .conteneur_flex {
display:flex;
flex-direction:column;
} |
dans ce cas les éléments n'occupent que la place nécessaire à leur contenu, pas grand intérêt.
Maintenant mettons le CSS suivant sur l'item #3
Code:
1 2 3
| .item_flex_expand {
flex: 1 1 auto;
} |
on obtient le rendu suivant
super, l'élément #3 occupe la place restante du conteneur.
Si l'on ajoute un élément l'item #3 verra sa place réduire, il y a moins d'espace disponible dans le conteneur.
de même si l'on supprime un élément, l'item #3 verra sa place augmenter, il y a plus d'espace disponible dans le conteneur.
Si deux éléments sont en flex: 1 1 auto, ils se partageront l'espace restant du conteneur
de même si tous les item_flex sont en flex: 1 1 auto, ils se partageront l'espace du conteneur.
Attention c'est l'espace restant du conteneur qui est partagé entre les différents éléments.
Voilà pour une première approche simple voir simpliste :aie:
pour finir il existe également Redécouvrez la mise en page avec Flexbox simple d’abord.