CSS
How to Center a Header in CSS (Complete Guide)
Centering a header in CSS is a fundamental skill for creating visually balanced web pages. Whether you need to center a text-based header (<h1>
, <h2>
, etc.), a logo, or a navigation bar, there are different techniques depending on whether you’re centering horizontally, vertically, or both.
In this blog, you’ll learn:
✅ How to center a header text horizontally
✅ How to center a header element inside a container
✅ How to center a navigation bar inside a header
✅ How to center a header logo
✅ Best practices for centering headers
1. Centering a Header Text Horizontally
The simplest way to center a header text (<h1>
, <h2>
) is by using text-align: center
.
Example 1: Centering Header Text Horizontally
.centered-header {
text-align: center;
font-size: 2rem;
color: #333;
}
<h1 class="centered-header">Welcome to My Website</h1>
✅ Why this works?
text-align: center;
aligns inline text within its block container.
2. Centering a Header Element Horizontally (<header>
)
If you want to center the entire header container, use margin: auto;
with a defined width
.
Example 2: Centering a Header Block
.header-container {
width: 80%; /* Set a fixed width */
margin: 0 auto; /* Centers the block */
text-align: center;
padding: 20px;
background-color: #f4f4f4;
}
<header class="header-container">
<h1>My Website</h1>
</header>
✅ Why this works?
margin: 0 auto;
centers the block container.width: 80%;
prevents it from stretching to full width.
3. Centering a Header Vertically
To center a header vertically, use display: flex;
with align-items: center;
.
Example 3: Vertical Centering with Flexbox
.header-vertical {
display: flex;
align-items: center; /* Centers vertically */
justify-content: center; /* Centers horizontally */
height: 100vh; /* Full height */
background-color: #ddd;
}
<header class="header-vertical">
<h1>Centered Header</h1>
</header>
✅ Why this works?
align-items: center;
centers the text vertically.justify-content: center;
centers the text horizontally.
4. Centering a Navigation Bar Inside a Header
For horizontal navigation bars, use display: flex;
with justify-content: center;
.
Example 4: Centering a Navigation Menu
.header-nav {
display: flex;
justify-content: center;
background: #333;
padding: 10px 0;
}
.header-nav ul {
list-style: none;
padding: 0;
display: flex;
}
.header-nav ul li {
margin: 0 15px;
}
.header-nav ul li a {
text-decoration: none;
color: white;
font-size: 1.2rem;
}
<header>
<nav class="header-nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>
✅ Why this works?
display: flex;
allows flexbox positioning.justify-content: center;
centers items inside the<nav>
.
5. Centering a Logo in a Header
If your header contains a logo, you can center it using flexbox.
Example 5: Centering a Logo
.header-logo {
display: flex;
justify-content: center;
align-items: center;
height: 100px;
background-color: #eee;
}
<header class="header-logo">
<img src="logo.png" alt="Website Logo">
</header>
✅ Why this works?
justify-content: center;
centers the logo horizontally.align-items: center;
ensures vertical alignment.
6. Best Practices for Centering Headers
✅ Use text-align: center;
for simple text-based headers.
✅ Use flexbox (display: flex;
) for full control over positioning.
✅ Set margin: auto;
when centering a block-level element.
✅ For vertical centering, always use align-items: center;
.
✅ Keep headers responsive by using relative units (vw
, %
) instead of fixed widths.
Conclusion
Centering a header in CSS depends on what you’re centering—text, a container, a logo, or a navigation bar. By using text-align: center;
, flexbox, and proper margin settings, you can create a well-aligned and responsive header.
By following these techniques, you ensure a clean, professional design that looks great across all screen sizes.