Я немного почистил ваш css и заставил его работать. См. Jsfiddle ниже:
https://jsfiddle.net/gqptemhu/
По сути, ваш флекс-контейнер нуждается в
.FlexContainer {
height: 65vh;
display: flex;
flex-direction: column;
}
, поэтому он знает, как складывать предметы по вертикали.
И вы используете
flex: 0 1;
flex: 1 0;
На элементах внутри гибкого контейнера, чтобы сказать, какой элемент вырастет, а какой уменьшится. Первое число соответствует flex-grow, а второе - flex-shrink. Они оба являются относительными числами, которые показывают, в каком процентном отношении места предметы будут расти / уменьшаться
Подробнее о flexbox и его использовании вы можете узнать по ссылке ниже:
https://css-tricks.com/snippets/css/a-guide-to-flexbox/