I have the following structure of HTML document:
<body>
<header></header>
<main class="page-main">
<div>
<aside></aside>
<div class="page-content"></div>
</div>
</main>
<footer class="page-footer"></footer>
</body>
And here are basic css rules:
html {
height: 100%;
width: 100%;
position: relative;
}
body {
padding-bottom: 256px;
width: 100%;
min-width: 1124px;
min-height: 100%;
position: relative;
}
.page-main {
height: 100%;
}
.page-footer {
position: absolute;
background-color: #3D3D3D;
bottom: 0;
width: 100%;
height: 256px;
}
On desktops everything looks good, but on mobile devices if content of "main" tag is too short it doesn't take all available height and there is a blank space.
What is the best way to stretch "page-main" height to all available height?
UPD1
Please note, that I use min-height for "body" tag and set it to 100%. If I define "height" property for body and set it to 100% - problem with long content occur (see image below)
UPD2
I created basic layout to explain my problem:
My goal is to make "aside" element to stretch to all available height of it's parent. I want to know if it's possible to do with my current layout?
html{margin: 0px; padding: 0px; height: 100%;}
body {margin: 0px; background-color: pink; min-height: 100%; position: relative; }
header {background-color: red; text-align: center;}
main {height: 100%; padding-bottom: 100px;}
footer {position: absolute; height: 100px; background-color: black; width: 100%; bottom: 0px; color: white; text-align: center}
aside {float: left; width: 100px; border-right: 3px #008000 solid; }
.page-content {float: left;}
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<header>
<div>Header1</div>
<br>
<div>Header2</div>
</header>
<main class="page-main">
<div class="wrapper">
<aside>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
</aside>
<div class="page-content"> Lorem ipsum dolor sit fdgk ;ldgk ;ldfkg ;krtj kljgf ;oitrji ojfglkh;j l;gfhj io
</div>
</div>
</main>
<footer>MY FOOTER</footer>
</body>
</html>