Maison > Questions et réponses > le corps du texte
J'essaie d'utiliser une mise en page flexible simple composée d'un en-tête, d'une grille de contenu 2x2, puis d'une barre latérale. Lorsque la largeur de la fenêtre est inférieure à une certaine taille, la barre latérale doit se déplacer vers le bas de l'écran.
Actuellement, une fois cette taille atteinte, si la hauteur de la fenêtre est trop petite, le contenu de la grille se chevauchera au-dessus de l'en-tête, mais je ne sais pas pourquoi cela se produit. L'écran ne doit avoir que la taille de la hauteur de la vue, mais le déplacement de la barre latérale l'agrandit.
@media (max-width:960px) { .main-screen { height: 100vh; display: flex; flex-direction: column-reverse; .toolbar { padding: 10px; height: 90px; width: auto; } .body { display: flex; .grid { flex: 1; max-height: 36vh; } .row1, .row2 { flex: 1; height: 10%; max-width: 100%; } } } }
Voici le code complet dans jsfiddle
(Redimensionnez simplement la fenêtre pour voir comment la grille se chevauche au-dessus du titre)
P粉6524951942024-03-31 12:37:11
Bonjour ^^ J'ai construit ça pour toi. c'est ce que tu veux?
*{margin: 0px; padding: 0px;} html{height: 100%; width: 100%;} body{background-color: lightblue;} /* Header, Main Content, Nav/Sidebar */ header{background-color: lightgray; height: 50px;} .Main{background-color: darkblue; display: grid; grid-template-columns: 1fr 80px;} nav{background-color: pink; width: 100%; outline: 5px solid white;} /* Rows */ .Main .Row1, .Main .Row2{display: grid; grid-template-columns: 50% 50%; height: 120px;} /* Row 1 */ .Main .Row1 .Div1{margin: 5px; background-color: lightgreen;} .Main .Row1 .Div2{margin: 5px; background-color: forestgreen;} /* Row 2 */ .Main .Row2 .Div3{margin: 5px; background-color: forestgreen;} .Main .Row2 .Div4{margin: 5px; background-color: lightgreen;} /* Smaller Size */ @media (max-width:960px) { .Main{background-color: blue; grid-template-columns: auto;} nav{height: 50px;} }
<body> <header> <h1>Header</h1> </header> <section class="Main"> <div> <div class="Row1"> <div class="Div1">Div1</div> <div class="Div2">Div2</div> </div> <div class="Row2"> <div class="Div3">Div3</div> <div class="Div4">Div4</div> </div> </div> <nav> <h1>Sidebar</h1> </nav> </section> </body>