JavaScript: Vertically Aligned Elements

by MythOfEchelon

HTML

<!DOCTYPE html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style type="text/css" rel="stylesheet">
            * {
                margin: 0;
                padding: 0;
            }
            
            #element {
                width: 300px;
                height: 300px;
                margin: auto;
                border: 3px solid blue;
                position: relative;
            }
        </style>
        
        <script type="text/javascript">
            window.onload = setPos;
            window.onresize = setPos;
            
            function setPos(){
                var element = document.getElementById("element");
                var windowHeight = window.innerHeight;
                var elementHeight = element.clientHeight;
                
                var offset = (windowHeight / 2) - (elementHeight / 2);
                
                element.style.top = offset + "px";
            }
        </script>
    </head>
    
    <body>
        <div id="element"></div>
    </body>
</html>