How can I center this piece of text?

Viewed 68

The piece of text, "We do photography and videography", must be centered. I tried using the text-align command and justifying the content to the center. I'm thinking that it must have something to do with the way I have positioned the whole body of the HTML file. Help would be appreciated

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>PRODUX NA</title>
        <link rel="stylesheet" type="text/css" href="style.css">
        <link rel = "stylesheet" type = "text/css" href = "reset.css"/>
        <link href="https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@300&display=swap" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css2?family=Quicksand:wght@600&family=Roboto+Condensed:wght@300&display=swap" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@1,300&display=swap" rel="stylesheet">
    </head>
    <body>
        <nav>
            <a href="index.html">
                <img class="logo" src="1 NA.png" width="50" height="50">
            </a>
            <ul>
                <li>
                    <a href="index.html">Home</a>
                </li>
                <li>
                    <a href="about.html">About Me</a>
                </li>
                <li>
                    <a href="contacts.html">Contacts</a>
                </li>
                <li>
                    <a href="portfolio.html">Portfolio</a>
                </li>
            </ul>
        </nav>
        <div id="textAndButtonContainer">
          <div id="text">

          </div>
          <div class="container">
              <a href="commence.html">
                  <button id="button1">Get Started</button>
              </a>
          </div>
        </div>

        <script type = "text/javascript">
            var i = 0,text;
            text = "All your favorite memories in one film."

            function typing(){
                if(i < text.length){
                    document.getElementById("text").innerHTML += text.charAt(i);
                    i++
                    setTimeout(typing, 50);
                }
            }
            typing();
        </script>
        <h3 class="pv">We do photography and videography.</h3>
    </body>
</html>

* {
  margin: 0;
  padding: 0;
}
  
body {
    height: 100vh;
    width: 50vh;
    background-image: linear-gradient(rgba(68, 67, 67, 0.75), rgba(58, 58, 58, 0.75)), url(4kcamera.jpg);
    background-size: cover;
    background-position: center;
    text-align: center;
    justify-content: center;
}
  
nav {
    width: 100%;
    height: 80px;
    position: fixed;
  
}
  
.logo{
    float: left;
    padding: 0 30px;
    margin-left: 55px;
    margin-right: 30px;
    width: 50px;
    margin-top: 20px;
}

ul li {
    list-style: none;
    display: inline-block;
    line-height: 90px;
    padding: 0 31px;
}
  
ul {
    margin-left: 840px;
}
  
ul li a {
    text-decoration: none;
    font-size: 20px;
    font-family: 'Roboto Condensed', sans-serif;
    color: rgb(250, 250, 250);
}
  
ul li a:hover {
    color: rgb(102, 151, 241);
    transition-duration: 0.5s;
}
  
#text{ 
    transform: uppercase;
    color: white;
    font-family: 'Poppins', sans-serif;
    text-align: center;
    margin: 0;
    font-size: 60px;
}

#textAndButtonContainer {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: none;
}
  
.container {
    display: flex;
    justify-content: center;
}
  
#button1 {
    background-color: rgb(30, 109, 255);
    border: 2px;
    border-radius: 15px 50px;
    color: white;
    padding: 35px;
    margin: 22px;
    text-align: center;
    font-size: 13px;
    font-family: 'Poppins', Helvetica;
}

#button1:hover {
    background-color: rgb(19, 66, 165);
    color: white;
    transition-duration: 0.4s;
}

.apptmnt {
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: none;
    font-family: 'Poppins', sans-serif;
    color: white; 
    font-size: 45px;
}

.apptmnt2 {
    position: absolute;
    top: 39%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: none;
    font-family: 'Poppins', sans-serif;
    color: white;      
}

.pv {
    position: inherit;
    text-align: center;
}

I'm doing completing this as a personal project, which would have a great effect. Centering this piece of text in the most simplified way would be great and could help me apply it to any other situation.

3 Answers

At first your CSS code is not in <style>...</style> style tags.

Next, your body { width: 50vh } CSS code restricts <h3> to align because of the small width. Remove it and then everything should work fine.

body {
    height: 100vh;
    background-image: linear-gradient(rgba(68, 67, 67, 0.75), rgba(58, 58, 58, 0.75)), url(4kcamera.jpg);
    background-size: cover;
    background-position: center;
    text-align: center;
    justify-content: center;
}

use padding. although its not the best practice but it has usually helped me solve positions of texts.. the code below centers text but may not be responsive. its highly recommended to checkout other CSS units.. use Visbug chrome extension to know what units u may need

 .pv {
     text-align: center;
  position: relative;
  padding:5px 350px;
  justify content :center;
  
}

you have set with to body to 50vw, That's why you are facing this issue. As .pv can have the only width as much as width its parent(here it's body) has. So basically your text-align property is working but because width is not enough, so that you can visually watch it on site.

Remove width of 50vh from body.

Or if you don't want to do that, then

.pv{
   position:absolute;
inset:0;
}

Related