How to Dead Center Absolutely Positioned Elements in CSS

Use transform: translate with negative values of top and left to dead center an absolutely positioned element in CSS:

.center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
center.css
Copied to clipboard!

This will move the element -50% to the top and also -50% to the left. By default, anchor points are set to the top-left corner of an element. To dead center absolutely positioned elements, you need to move them back -50% on both axis. Think of it as setting an anchor point to the center.

Note that you should use the negative values of top and left. For different values, your translate rule should look similar:

.center {
    position: absolute;
    top: 25%;
    left: 30%;
    transform: translate(-25%, -30%);
}
center.css
Copied to clipboard!

The first parameter of the translate function is used for the x-axis, while the second is used for the y-axis.


Are you not using absolute positioning?

You can also use flexbox, to center an element, with only three lines:

.center {
    display: flex;
    justify-content: center;
    align-items: center;
}
center.css
Copied to clipboard!

Another option is to set the line-height to the height of the container:

.center {
    height: 250px;
    line-height: 250px; /* Set the line-height to the same as the height */
}
center.css
Copied to clipboard!
How to dead center absolutely positioned elements in CSS
If you would like to see more Webtips, follow @flowforfrank

10 Best Practices for Quickly Improving Your CSS

Resources:

Remove ads
Remove ads

📚 Get access to exclusive content

Want to get access to exclusive content? Support webtips with the price of a coffee to get access to tips, checklists, cheatsheets, and much more. ☕

Get access Support us
Remove ads Read more on
Remove ads
Remove ads
🎉 Thank you for subscribing to our newsletter. x This site uses cookies We use cookies to understand visitors and create a better experience for you. By clicking on "Accept", you accept its use. To find out more, please see our privacy policy.