0
votes

Flexbox avec flex: 1 enfant et petit-enfant avec 100%

Imaginez avoir cette situation: une simple mise en page de 3 rangées faite avec FLEXBOX, avec la ligne centrale remplissant tout l'espace disponible. Jolie de choses standard. xxx

ici le CSS: xxx

(omettant CSS pour les couleurs d'arrière-plan, vous pouvez le deviner).

Le problème est que le "contenu" DIV ne pousse pas le pied de page DIV, le garder au bas de la page, comme la position: fixe en bas: 0. Faire défiler la page Afficher, à l'exception de ce problème, le comportement correct, avec 3 DIV avec une couleur différente de toutes les dimensions 100% de la fenêtre du navigateur.

Qu'est-ce qui me manque?

Modifier : regardez ce jsfiddle https://jsfiddle.net/rq1xywng/


9 commentaires

Hauteur: 100% On Corps ne fera que si vous spécifiez également une hauteur pour HTML . Vous manquez également un point-virgule après les deux premiers Hauteur: 100%


Corps {Hauteur: 100vh}


Code fixe comme @turnip suggéré, le problème reste. J'ai essayé de temps réel


Vous parlez d'un pied de page de position fixe, mais vous n'avez posé aucun CSS pour cela? Et il n'est toujours pas clair ce que vous voulez réaliser ...


Ce que je dis, c'est que le pied de page se comporte comme «position: fixe; bas: 0". Ce que j'essaie de faire est de le pousser en bas, après le "contenu", DIV se termine le défilement


Est-ce ce que vous essayez d'atteindre? jsfiddle.net/ttpslmfca


@Turnip presque. L'en-tête doit faire défiler l'extérieur et je ne peux pas voir le pied de page de votre Jsfiddle


"Je ne peux pas voir le pied de page dans votre jsfiddlle" Assurez-vous que la console ne s'affiche pas (éteignez-la dans les paramètres). "L'en-tête doit faire défiler" ça sonne comme Flex n'est pas la bonne approche. Vous voulez juste un pied de page de position fixe.


Bon sang, je ne connaissais pas la console. Merci!!! Je ne veux rien que rien ne soit fixé, juste le flux régulier. Mais chaque enfant de "contenu" doit être de 100% de hauteur. Si .Item a une valeur px, comme 500, cela fonctionne. Je vais trouver une autre façon que vous le suggérez


3 Réponses :


-2
votes

Si vous modifiez les 100% en 100vh, ces travaux

.flex-container .content .item {
    height: 100vh;
}


6 commentaires

Merci@itamar pouvez-vous s'il vous plaît laissez-moi savoir pourquoi ce n'est pas correct CSS sage? Ce n'est pas argumentatif, c'est de m'aider à mieux comprendre.


Vous définissez tous les articles pour prendre 100% de la hauteur de la vue


Au lieu d'étirer les articles sur l'écran existant, comme demandé


Fondamentalement, vous avez trouvé la solution de bande-aide parfaite au lieu de résoudre le vélo cassé :)


Merci Itamar fait un sens parfait :)


Heureux d'aider. J'espère que ma propre réponse sera la bonne pour la puissance



1
votes

Vous avez donc quelques erreurs ici:

  • Vous définissez chaque élément du conteneur pour être 100% - cela s'élève à 300% :)
  • Leur parent est "seulement" 100%
  • le pied de page sera caché à moins que la hauteur donnée
  • vous avez utilisé VH et% combiné de manière malsaine.

    Vous devez avoir 2 composants flexibles:


2 commentaires

J'ai fini par utiliser JavaScript pour calculer la hauteur pour atteindre ce que je voulais visuellement. Mais merci à vous @itamar, vous m'avez donné des idées intéressantes pour un autre projet.


Serait heureux si vous pouviez ajouter votre solution au poste, pour les recherches futures



2
votes

Je ne suis pas sûr de ce que vous recherchez. Peut-être que ce sera une aide pour vous.

p>

<div class="container">
  <div class="flex-container">
    <div class="header">header</div>
    <div class="content">
      <div class="item red">asdasd</div>
      <div class="item yellow">asdasd</div>
      <div class="item green">asdasd</div>
    </div>
    <div class="footer">footer</div>
  </div>
  <div>


0 commentaires