Les éléments Flexbox déborderont du conteneur lorsque la fenêtre est trop courte et la barre latérale ne pourra pas maintenir l'alignement inférieur.
P粉226642568
P粉226642568 2024-03-31 00:03:58
0
1
491

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粉226642568
P粉226642568

répondre à tous(1)
P粉652495194

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>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal