CSS:
html,body {margin: 0; padding: 0; height: 100%;}
#outer {height: 100%; width: 100%; overflow: hidden; position: relative; display: block;}
#outer[id] {display: table; position: static;}
#middle {position: absolute; top: 50%; display: block; width: 100%; text-align: center;} /* for explorer only*/
#middle[id] {display: table-cell; vertical-align: middle; position: static;}
#inner {position: relative; top: -50%;} /* for explorer only */
#inner[id] {position: static;} /* optional */
xHTML:
<div id="outer">
<div id="middle">
<div id="inner">
<img src="." alt="some alt"/>
<p>some text</p>
</div>
</div>
</div>
