Проблема в том, что когда вы используете height: 100%;
, он устанавливает высоту вашего элемента относительно его родителя.Это означает, что если ваш родительский элемент не имеет установленной высоты, он будет автоматически равен 0px height или только высоте вашего контента.
Чтобы ваш код работал, вам нужно установить для body и html значение 100%:
html, body{ height:100%; }