Just to clarify the footer that @Archibald posted is a fixed positioned footer that sits at the bottom of the viewport no matter what.
The footer that @coothead posted is a sticky footer where the footer sits at the bottom of the viewport until content pushes it below the fold.
Note that for the position:fixed footer you will need to ensure that any normal content that goes below the fold will need to have padding bottom equal to the height of the footer or you won’t see all of it.
Lastly the height:100% in you wrapper rule will do nothing as you need to have html and body at height:100% also as percentage heights need an unbroken chain of fixed heights back to root.
However, although that will make the wrapper’s height work it will also limit it to 100% only and it will not grow below the fold. Therefore you would need to use a min-height on your wrapper instead of a fixed height.
You can use min-height:100vh for a minimum viewport height without needing an unbroken chain back to root but there are some small issues with it in iOS.
The 100% height is irrelevant in the version by @Archibald anyway.
I guess @igor_g was looking for a fixed positioned footer not a sticky footer. Your code works as expected and is similar to the code I’ve been using for years