Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Как сделать 50% высоты у дочерних блоков, с помощью flexbox? (https://javascript.ru/forum/xhtml-html-css/65773-kak-sdelat-50%25-vysoty-u-dochernikh-blokov-s-pomoshhyu-flexbox.html)

snovapavel 07.11.2016 06:30

Как сделать 50% высоты у дочерних блоков, с помощью flexbox?
 
Добрый день!

Как с помощью flexbox сделать такую конструкцию?

<div class="wrapper"><!-- Высота этого контейнера неизвестна -->
    <div class="column"><!-- Этот, должен быть 100% высоты своего ↑ родителя -->
        <div class="cell"></div><!-- Один под другим. 50% высоты -->
        <div class="cell"></div><!-- Один под другим. 50% высоты -->
    </div>
</div>

ksa 07.11.2016 09:16

Цитата:

Сообщение от snovapavel
Как с помощью flexbox сделать такую конструкцию?

Не совсем понятно зачем именно флекс... Но, как вариант.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
.wrapper {
	/* для примера */
	height: 200px;
	border: 1px solid red;
	display: flex;
	align-items: stretch;
}
.column {
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	border: 1px solid green;
}
.cell {
	height: 50%;
	border: 1px solid;
}
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<div class="wrapper"><!-- Высота этого контейнера неизвестна -->
    <div class="column"><!-- Этот, должен быть 100% высоты своего ↑ родителя -->
        <div class="cell">1</div><!-- Один под другим. 50% высоты -->
        <div class="cell">2</div><!-- Один под другим. 50% высоты -->
    </div>
</div>
</body>
</html>

Pavel M. 07.11.2016 11:32

Цитата:

Сообщение от snovapavel
Как сделать 50% высоты у дочерних блоков, с помощью flexbox?

можно также у дочерних элементов flex-grow: 1;

<!DOCTYPE html>
<html>
<head>
<style>
.wrapper {
	height: 200px;
}
.column {
    height: 100%;
    display: flex;
    flex-direction: column;
    outline: 3px solid green;
}
.cell {
    flex-grow: 1;
    background: orange;
}
.cell:last-child {
    background: tan;
}
  
</style>
</head>
<body>
  <div class="wrapper"><!-- Высота этого контейнера неизвестна -->
      <div class="column"><!-- Этот, должен быть 100% высоты своего ↑ родителя -->
          <div class="cell">1</div><!-- Один под другим. 50% высоты -->
          <div class="cell">2</div><!-- Один под другим. 50% высоты -->
      </div>
  </div>
</body>
</html>


Часовой пояс GMT +3, время: 15:07.