Ответ 1
Проблема связана с этим стилем на вашей последней странице:
.form-status:before{
content:"";
position:absolute;
top:0;
left:0;
right:0;
height:1px;
background:#555
}
(который, я думаю, исходит из "&: before" в вашем исходном вопросе).
.form-status
является гибким контейнером, и это дает ему абсолютно позиционированное дочернее и абсолютное позиционирование для детей гибких контейнеров не вполне работоспособно еще - очевидно, что IE (или их следующий "Spartan" ) является единственным браузером, который сейчас использует последний spec-текст.
Этот стиль разбивает ваш макет, потому что абсолютно позиционированный ребенок бросает невидимый "placeholder" размером 0 размеров, который формирует гибкий элемент размера 0, и этот гибкий элемент влияет на позиционирование всех других элементов гибкости, участвуя в space-around
выравнивание. (Это потребовалось более ранней версии спецификации flexbox, но она изменилась, чтобы больше не требовать, чтобы эти заполнители формировали гибкие элементы. )
Я намерен быстро обновить Firefox в этом аспекте flexbox (здесь ошибка об этом), но в то же время я предлагаю избегать использования абсолютного позиционирования для любого прямого дочернего элемента flexbox, поскольку он работает по-разному в каждом браузере прямо сейчас.
* (UPDATE: теперь исправлено в сборках Firefox. Исправление будет в предварительном порядке находиться в Firefox 52, который, я считаю, Март 2017 года.)