Percentages work on values if you do not have a height or only have the height of the content then that is the value 100% will evaluate to.
If you do want to use percentages you have to propagate the height down starting with the root, i.e. html, then the body, then the child of the body, then the child of the child, and so on. I don’t suggest doing so as we have the vh unit.