Je suis nouveau en CSS et j'ai besoin d'aide pour résoudre un problème. Pourquoi flex-grow n'étend-il pas le div block__column_2 jusqu'à la fin de l'écran ? Selon la théorie du curriculum, ce comportement devrait être attendu. S'il vous plaît, dites-moi qu'est-ce que je fais de mal ?
Un exemple de code est présenté ci-dessous. index.html + style.css
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>flexbox</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="wrapper"> <div class="block"> <div class="block__row"> <div class="block__column block__column_1"> <div class="block__item">1</div> </div> <div class="block__column"> <div class="block__item block__column_2">2 <br>Более высокий блок </div> </div> <div class="block__column block__column_3"> <div class="block__item">3</div> </div> </div> </div> </div> </body> </html> .wrapper{ height: 100%; overflow: hidden; min-height: 100%; padding: 50px; } body{ font-family: Arial, Helvetica, sans-serif; } .block__row{ border: 20px solid #ece89d; margin: 0px 0px 20px 0px; display: flex; flex-direction: column; height: 1024px; align-items: stretch; } .block__column{ border: 20px solid #5e5373; } .block__column_1{} .block__column_2{ flex-grow: 1; flex-basis: auto; } .block__column_3{} .block__item{ background-color: #18b5a4; padding: 50px; font-size: 50px; color: #fff; font-weight: 700; text-align: center; }
Supprimez la classe block__column_2 de div.block__item et ajoutez-la à div.black_column
et ajoutez display:flex pour block__column L'attribut display: block sur l'élément parent empêche flex-grow d'avoir un effet. Essayez de définir la propriété display: block sur le parent pour display: flex. et ajoutez width:100%; à .block__item