Решение проблемы таилось в добавлении следующего неочевидного правила:
html, body {height: 100%}
чтобы элементу задавать относительную высоту, должна быть задана высота у родительского элемента. поэтому от дива, что должен растянутся по высоте на 100% надо пройтись по всем родителям от него и задать им какие бы то ни было высоты. Например все тот height 100%