Search code examples
htmlcssflexboxcenter

Center text horizontally within flexbox using CSS?


I'm trying to make a navigation bar for a website. I'm attempting to center my link text horizontally within a div. text-align: center; isn't doing the trick, and neither are align-items: center; and justify-content: center;. Any tips?

#nav {
  display: flex;
  flex-direction: row rtl;
  border-top: 3px dotted #594027;
  border-bottom: 3px dotted #594027;
  width: 100%;
  align-items: center;
  justify-content: center;
}

.navbox {
  flex-wrap: wrap;
  background-color: #594027;
  width: 125px;
  margin: 5px;
  padding: 5px;
}

.navbox a {
  display: inline-block;
  color: white;
  padding: 3px;
  margin-right: auto;
  margin-left: auto;
  text-decoration: none;
}
<div id="nav">
<div class="navbox">
<a href="index.html">Home</a>
</div>
<div class="navbox">
<a href="resume.html">Resumé</a>
</div>
<div class="navbox">
<a href="coursework.html">Coursework</a>
</div>
<div class="navbox">
<a href="accomplishments.html">Accomplishments</a>
</div>
<div class="navbox">
<a href="experience.html">Experience</a>
</div>
<div class="navbox">
<a href="blog.html">Blog</a>
</div>

</div><!--nav->


Solution

  • You can controle text from parent , for that you will need to add text-align:center to #nav

    #nav {
      display: flex;
      flex-direction: row rtl;
      border-top: 3px dotted #594027;
      border-bottom: 3px dotted #594027;
      width: 100%;
      align-items: center;
      justify-content: center;
      /* Add text-align to Parent */
      text-align:center;
    }
    
    .navbox {
      flex-wrap: wrap;
      background-color: #594027;
      width: 125px;
      margin: 5px;
      padding: 5px;
    }
    
    .navbox a {
      display: inline-block;
      color: white;
      padding: 3px;
      margin-right: auto;
      margin-left: auto;
      text-decoration: none;
    }
    <div id="nav">
    <div class="navbox">
    <a href="index.html">Home</a>
    </div>
    <div class="navbox">
    <a href="resume.html">Resumé</a>
    </div>
    <div class="navbox">
    <a href="coursework.html">Coursework</a>
    </div>
    <div class="navbox">
    <a href="accomplishments.html">Accomplishments</a>
    </div>
    <div class="navbox">
    <a href="experience.html">Experience</a>
    </div>
    <div class="navbox">
    <a href="blog.html">Blog</a>
    </div>
    
    </div><!--nav->