How to Center Using Margin Auto in CSS: Simple Guide
To center a block element horizontally in CSS, set its
margin-left and margin-right to auto and give it a fixed width. This tells the browser to evenly distribute the leftover space on both sides, centering the element.Syntax
Use margin: 0 auto; on a block element with a fixed width. Here, 0 sets the top and bottom margins to zero, and auto sets the left and right margins to automatically fill the available space equally.
css
selector {
width: 300px; /* fixed width needed */
margin: 0 auto; /* top/bottom 0, left/right auto */
}Example
This example shows a blue box centered horizontally inside the page using margin: 0 auto;.
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Center with margin auto</title> <style> .box { width: 200px; height: 100px; background-color: #3498db; margin: 0 auto; } </style> </head> <body> <div class="box"></div> </body> </html>
Output
A blue rectangle 200px wide and 100px tall is horizontally centered in the browser window with equal space on left and right.
Common Pitfalls
- No fixed width: Without a set width,
margin: autowon't center the element because it expands to full width by default. - Inline elements:
margin: autoonly works on block or flex items, not inline elements. - Parent container: The parent must have enough width for centering to be visible.
css
/* Wrong: no width set, so margin auto does nothing */ .box { background-color: red; margin: 0 auto; /* width missing */ } /* Right: fixed width allows centering */ .box { width: 150px; background-color: green; margin: 0 auto; }
Quick Reference
Remember these tips for centering with margin auto:
- Set a fixed
widthon the element. - Use
margin-left: auto;andmargin-right: auto;or shorthandmargin: 0 auto;. - Works only on block-level or flex items.
- Parent container must have space to center inside.
Key Takeaways
Set a fixed width on the element before using margin auto to center it.
Use margin-left and margin-right set to auto to evenly distribute horizontal space.
Margin auto centering works only on block or flex container elements.
Without a fixed width, the element will take full width and not appear centered.
Ensure the parent container has enough width to see the centering effect.