Align vertically using CSS 3

Was looking at this problem recently, and tried:

HTML:

<body>
    <div id="my-div"></div>
</body>

CSS:

#my-div {               
    position: absolute;
    height: 100px;
    width: 100px;    
    left: 50%;
    top: 50%;
    background: red;
    transform: translate(-50%, -50%);    
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

Here’s the Fiddle:

http://jsfiddle.net/sTcp9/6/

It even works when using “width/height: auto”, in the place of fixed dimensions.
Tested on the latest versions on Firefox, Chrome, and IE (* gasp *).

Leave a Comment