Search code examples
htmlcssflexboxcenter

How do I center text in flexbox?


Why the texts are not at the center in the below code? (Title & Tag Line).

It should be like, see image

body {
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background: #000;
}

p {
  position: relative;
  font-family: sans-serif;
  text-transform: uppercase;
  font-size: 2em;
  letter-spacing: 4px;
  overflow: hidden;
  background: linear-gradient(90deg, #000, #000fe6, #000);
  background-repeat: no-repeat;
  background-size: 80%;
  animation: animate 3.75s linear infinite;
  -webkit-background-clip: text;
  -webkit-text-fill-color: rgba(45, 45, 45, .05);
}

@keyframes animate {
  0% {
    background-position: -500%;
  }
  100% {
    background-position: 500%;
  }
}
<body>
  <div>
    <p>Title</p>
    <p>Tag Line</p>
  </div>
</body>

Why the texts are not at the center in the above code? (Title & Tag Line)

It should be like, see image


Solution

  • use this in your p

     margin:0 auto;
      display:block;
      text-align:center;
    

    body {
      margin: 0;
      padding: 0;
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      background: #000;
    }
    
    p {
      position: relative;
      font-family: sans-serif;
      text-transform: uppercase;
      margin:0 auto;
      display:block;
      text-align:center;
      font-size: 2em;
      letter-spacing: 4px;
      overflow: hidden;
      background: linear-gradient(90deg, #000, #000fe6, #000);
      background-repeat: no-repeat;
      background-size: 80%;
      animation: animate 3.75s linear infinite;
      -webkit-background-clip: text;
      -webkit-text-fill-color: rgba(45, 45, 45, .05);
    }
    
    @keyframes animate {
      0% {
        background-position: -500%;
      }
      100% {
        background-position: 500%;
      }
    }
    <body>
      <div>
        <p>Title</p>
        <p>Tag Line</p>
      </div>
    </body>