Как вертикально растянуть ребенка из растянутого гибкого ребенка

#html #css #flexbox

Вопрос:

У меня есть контейнер flexbox для столбцов. Я могу растянуть одного из детей flexbox, но я могу найти, как растянуть его детей. См. Пример ( .flex-child-2-child и .flex-child-2-child-child должен растягиваться вертикально для заполнения .flex-child-2 ) :

 body {  display: flex;  min-height: 100vh;  flex-direction: column;  border: 4px solid green; }  .flex-child-1 {  width: 100px;  background-color: SteelBlue; }  .flex-child-2 {  flex: 1;  background-color: LightSeaGreen; }  .flex-child-2-child-child, .flex-child-2-child {  height: 100%; }  .flex-child-2-child-child {  background-color: Tomato;  display: flex;  width: 100%; } .flex-child-2-child-child gt; div {  flex: 0 1 auto;  border: 1px solid yellow;  height: 100%;  width: 100px; } .flex-child-2-child-child gt; div   div {  flex: 1; } 
 lt;div class="flex-child flex-child-1"gt;  Test lt;/divgt; lt;div class="flex-child flex-child-2"gt;  lt;div class="flex-child-2-child"gt;  lt;div class="flex-child-2-child-child"gt;  lt;divgt;Hellolt;/divgt;  lt;divgt;Word!lt;/divgt;  lt;/divgt;  lt;/divgt; lt;/divgt; 

Я мог бы использовать height вместо min-height вкл body ., но тогда длинный контент переполнялся бы из body

 body {  display: flex;  height: 100vh;  flex-direction: column;  border: 3px solid green; }  .flex-child-1 {  width: 100px;  background-color: SteelBlue; }  .flex-child-2 {  flex: 1;  background-color: LightSeaGreen; }  .flex-child-2-child-child, .flex-child-2-child {  height: 100%; }  .flex-child-2-child-child {  background-color: Tomato;  display: flex; }  .flex-child-2-child-childgt;div {  flex: 0 1 auto;  border: 1px solid yellow;  width: 100px; }  .flex-child-2-child-childgt;div div {  flex: 1; } 
 lt;div class="flex-child flex-child-1"gt;  Test lt;/divgt; lt;div class="flex-child flex-child-2"gt;  lt;div class="flex-child-2-child"gt;  lt;div class="flex-child-2-child-child"gt;  lt;divgt;Hellolt;/divgt;  lt;divgt;Word!  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;pgt;.lt;/pgt;  lt;/divgt;  lt;/divgt;  lt;/divgt; lt;/divgt; 

Ответ №1:

Добавить flex: 1; display: flex; flex-direction: column; к .flex-child-2

И

display: flex; flex-direction: column; flex: 1; .flex-child-2-child-child, .flex-child-2-child чтобы растянуть элементы

 body {  display: flex;  min-height: 100vh;  flex-direction: column; }  .flex-child-1 {  width: 100px;  background-color: SteelBlue; }  .flex-child-2 {  flex: 1;  background-color: LightSeaGreen;  display: flex;  flex-direction: column; }  .flex-child-2-child-child, .flex-child-2-child {  /* height: 100%; */  display: flex;  flex-direction: column;  flex: 1; }  .flex-child-2-child-child {  background-color: Tomato; } 
 lt;div class="flex-child flex-child-1"gt;  Test lt;/divgt; lt;div class="flex-child flex-child-2"gt;  lt;div class="flex-child-2-child"gt;  lt;div class="flex-child-2-child-child"gt;  Hello Word!  lt;/divgt;  lt;/divgt; lt;/divgt; 

Комментарии:

1. Проблема, с которой я столкнулся , заключается в том, что в заключительном проекте у одного из детей уже есть display:flex; flex-direction: row , я редактирую свой вопрос, чтобы отразить его.

2. Пожалуйста, обновите вопросы в соответствии со сценарием реальной проблемы, чтобы это можно было проверить.

3. Все готово, я отредактировал его

4. Хорошо, «дочерний элемент строки flexbox» должен получить только дополнительный flex: 1 , и это работает.

5. Пожалуйста, одобрите ansr, если это работает для вас.