28172 sujets

CSS et mise en forme, CSS3

Bonjour/Bonsoir,

Malgré mes différentes recherches et tentatives pour trouver la solution à mon problème, je m'en remets à des têtes reposées et bien plus experte, j'en suis certain, que moi.

J'expose mon problème:

J'ai un site qui est regis comme ceci:

<body>
<wrapper>
<header></header
<content>
<sous-menu></sous-menu>
<primary></primary>
</content>
<footer></footer>
</wrapper>
</body>

Les deux soucis que j'ai, c'est que je voudrais que <sous-menu> s'adapte à la hauteur de <primary>, selon sa longueur et que <primary>, lui, s'adapte en hauteur à taille de la page. Soit, si le contenu est court, la div soit malgré tout au minimum, à la hauteur de la fenêtre du navigateur.

J'ai pseudo trouvé une astuce pour la hauteur de <sous-menu> en mettant
.sous-menu {position: absolute;
height: 100%;}

Mais après ça me cause quelque soucis dans la version mobile sur la div <primary> que je pourrais sans doute corrigé mais pas encore testé, par contre, je n'arrive pas à trouvé une solution pour la hauteur de la div <primary> par rapport à la fenêtre.

J'ai essayé différente chose, positionnement, 100vh, javascript, etc. mais rien n'y fait.

Il y a-t-il un médecin dans la salle ? Je sèche et ce que je trouve sur internet ne m'aide pas. Sans doute c'est ma structure qui est fausse, mais j'avoue ne pas trouvé où !

Merci d'avance pour vos réponses.

le site wordpress Smiley lol upload/61100-screen.jpg
Modifié par playgraphix (19 May 2016 - 19:04)
Administrateur
Bonjour,

Il y a effectivement deux questions dans ta question, et par conséquent une double réponse :
- plusieurs méthodes pour avoir un corps de page occupant la hauteur de la page (100vh ou 100%, la sedonde étant plus compliquée)
- plusieurs méthodes pour disposer d'éléments de même hauteurs (table, flexbox, grid layout)

Voici une méthode basée sur 100vh et Flexbox : http://codepen.io/raphaelgoetter/pen/EajYme

Bonne chance Smiley cligne

PS : http://schnaps.it/ permet de générer des gabarits de pages tels que tu le souhaites.
Modifié par Raphael (20 May 2016 - 08:18)
Super merci !

J'ai résolu mon soucis en modifiant l'emplacement de certaines div comme ceci:

<body>

<header></header>

<wrapper-content>
<sous-menu></sous-menu>
<primary></primary>
</wrapper-content>

<footer></footer>

</body>


Le flex a change le comportement de la navigation et le min-height:100vh a résolut la hauteur du contenu !

Merci pour le lien !

Belle journée