CSS "top" property not working with percentage (%), but working with pixels (px)
<p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-css lang-css prettyprint-override"><code>body {
  background: #8E2800;
}
#main {
  background: purple;
  position: relative;
  color: white;
}
#title {
  background: grey;
  position: absolute;
  top: 50%;
  left: 50%;
  height: 40%;
  width: 50%;
}</code></pre>
<pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;div&gt;
  &lt;div id="main"&gt;
    &lt;div id="title"&gt;
      &lt;h2&gt;Weather Forecast&lt;/h2&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;</code></pre>
</div>
</div>
</p>

<p>Also as working demo can be found on codepen:
<a href="http://codepen.io/manzur/pen/RomyjK?editors=1100" rel="nofollow noreferrer">http://codepen.io/manzur/pen/RomyjK?editors=1100</a></p>