Home > Software engineering >  How do I position my Stats under the main Article using flex?
How do I position my Stats under the main Article using flex?

Time:09-28

(((THE ISSUE IS IN THE @media PROPERTY))) so this is my code, I am trying to bring my stats under the main article but no matter how I change the width or height it doesn't affect the container one bit, please can someone tell me where am I doing a mistake or what should I do to make it work. (this might give you the idea of what i am looking for (https://imgur.com/2jTBb7J), also how do i make my images blend mode so that it matches the linked file.

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Lexend Deca&display=swap");

body {
  background-color: hsl(233, 47%, 7%);
  height: 100%;
}
.container {
  display: flex;
  justify-content: center;
  align-items: center;
}
.card {
  width: 300px;
  height: 800px;
  background-color: hsl(244, 38%, 16%);
  border-radius: 10px;
  margin: 70px 30px;
  box-shadow: 0 0 10px black;
}
.image_container {
  width: 300px;
  height: auto;
}
.image {
  width: 100%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  mix-blend-mode: soft-light;
}
.text-container {
  align-self: center;
  text-align: center;
}
h1,
article {
  font-family: "Inter", sans-serif;
  padding: 0px 15px;
}

h1 {
  padding-top: 10px;
  color: white;
  font-weight: 700;
}
.insights {
  color: hsl(277, 64%, 61%);
}
article {
  color: hsla(0, 0%, 100%, 0.75);
}

.stats_container {
  align-content: center;
  text-align: center;
  display: block;
}

.num1 {
  color: white;
  font-family: "Lexend Deca", sans-serif;
  font-weight: 400;
  font-size: 35px;
  display: block;
  padding-top: 25px;
}

.stats_heading {
  color: hsla(0, 0%, 100%, 0.6);
  font-family: "Lexend Deca", sans-serif;
  text-transform: uppercase;
}

@media only screen and (min-width: 1224px) {
  .card {
    display: flex;
    width: 1040px;
    height: 450px;
    align-self: center;
  }
  .image_container {
    order: 2;
    width: 1040px;
    height: 450px;
    flex-direction: row;
    justify-content: flex-end;
    align-content: flex-end;
  }
  .image {
    width: 100%;
    height: 100%;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    border-top-left-radius: 0px;
  }
  .text-container {
    height: 450px;
    border: 1px red solid;
    align-self: flex-start;
    text-align: flex-start;
  }
  h1,
  article {
    text-align: left;
    padding-left: 50px;
  }
  h1 {
    padding-top: 40px;
  }
  article {
    padding-top: 5px;
  }
  .stats_container {
    border: 1px yellow solid;
    justify-content: flex-start;
    text-align: left;
    display: inline;
  }

  .num1 {
    color: white;
    font-family: "Lexend Deca", sans-serif;
    font-weight: 400;
    font-size: 22px;
  }

  .stats_heading {
    color: hsla(0, 0%, 100%, 0.6);
    font-family: "Lexend Deca", sans-serif;
    text-transform: uppercase;
  }
}
<DOCTYPE! html>
    <html lang="en">

    <head>
        <link href="firstproject.css" rel="stylesheet">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta charset="UTF-8">
    </head>
    <body>

<div class="container">
        <div class="card">
            <div class="image_container">
                <img class="image" alt="main.jpg"  src="image-header-desktop.jpg">
            </div>
            <div class="text-container">
                <h1>Get <span class="insights">insights</span> that help your buisness grow</h1>
                <article>Discover the benfits of data analyitcs and make better decision regarding revenue, customer experience, and overall efficiency.</article>
            </div>
            <div class="stats_container">
                <section class="stats">
                <div class="companies"><span class="num1">10k </span>
                <span class="stats_heading">companies</span></div>
                <div class="templates"><span class="num1">314</span>
                <span class="stats_heading">Templates</span></div>
                <div class="queries"><span class="num1">12M </span>
                <span class="stats_heading">queries</span></div>   
            </section>
            </div>
           
        </div>
</div>
    </body>

    </html>

CodePudding user response:

I hope this is what you trying to achieve. I made some changes in answer, which I were submitted before.

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Lexend Deca&display=swap");

body {
  background-color: hsl(233, 47%, 7%);
  height: 100%;
}
.container {
  display: flex;
  justify-content: center;
  align-items: center;
}
.card {
  width: 300px;
  height: 800px;
  background-color: hsl(244, 38%, 16%);
  border-radius: 10px;
  margin: 70px 30px;
  box-shadow: 0 0 10px black;
}
.image_container {
  width: 300px;
  height: auto;
}
.image {
  width: 100%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  mix-blend-mode: soft-light;
}
.text-container {
  align-self: center;
  text-align: center;
}
h1,
article {
  font-family: "Inter", sans-serif;
  padding: 0px 15px;
}

h1 {
  padding-top: 10px;
  color: white;
  font-weight: 700;
}
.insights {
  color: hsl(277, 64%, 61%);
}
article {
  color: hsla(0, 0%, 100%, 0.75);
}

.stats_container {
  align-content: center;
  text-align: center;
  display: block;
}

.num1 {
  color: white;
  font-family: "Lexend Deca", sans-serif;
  font-weight: 400;
  font-size: 35px;
  display: block;
  padding-top: 25px;
}

.stats_heading {
  color: hsla(0, 0%, 100%, 0.6);
  font-family: "Lexend Deca", sans-serif;
  text-transform: uppercase;
}

@media only screen and (min-width: 1224px) {
  
  .card {
    display:flex;
    width: 1040px;
    height: 450px;
    align-self: center;
  }
  .image_container {
    order:2;
    border: 1px red solid;
    width: 1040px;
    height: 450px;
    flex-direction: row;
    justify-content: flex-end;
    align-content: flex-end;
  }
  .stats{
    display:flex;
    justify-content:center;
  }
  .image {
    width: 100%;
    height: 100%;
    mix-blend-mode: soft-light;
  }
}
<div class="container">
        <div class="card">
            <div class="image_container">
                <img class="image" alt="main.jpg"  src="https://images.indianexpress.com/2020/08/Fujifilm-FB.jpg">
            </div>
          <div class="text-wrapper">
            <div class="text-container">
                <h1>Get <span class="insights">insights</span> that help your buisness grow</h1>
                <article>Discover the benfits of data analyitcs and make better decision regarding revenue, customer experience, and overall efficiency.</article>
            </div>
            <div class="stats_container">
                <section class="stats">
                <div class="companies"><span class="num1">10k </span>
                <span class="stats_heading">companies</span></div>
                <div class="templates"><span class="num1">314</span>
                <span class="stats_heading">Templates</span></div>
                <div class="queries"><span class="num1">12M </span>
                <span class="stats_heading">queries</span></div>   
            </section>
            </div>
  </div>
           
        </div>
</div>

CodePudding user response:

Firstly, change your HTML to this

<DOCTYPE! html>
    <html lang="en">

    <head>
        <link href="firstproject.css" rel="stylesheet">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta charset="UTF-8">
    </head>
    <body>

<div class="container">
        <div class="card">
            <div class="image_container">
                <img class="image" alt="main.jpg"  src="https://pbs.twimg.com/profile_images/1406950250158333952/fjMy7l0K_400x400.jpg">
            </div>
            <div class="text">
                <div class="text-container">
                    <h1>Get <span class="insights">insights</span> that help your buisness grow</h1>
                    <article>Discover the benfits of data analyitcs and make better decision regarding revenue, customer experience, and overall efficiency.</article>
                </div>
                <div class="stats_container">
                    <section class="stats">
                        <div class="stat-info">
                            <div class="companies"><span class="num1">10k </span>
                            <span class="stats_heading">companies</span></div>
                        </div>
                        <div class="stat-info">
                            <div class="templates"><span class="num1">314</span>
                            <span class="stats_heading">Templates</span></div>
                        </div>
                        <div class="stat-info">
                            <div class="queries"><span class="num1">12M </span>
                            <span class="stats_heading">queries</span></div> 
                        </div>
                    </section>
                </div>
            </div>
        </div> 
</div>
    </body>

    </html>

Now change your CSS to this:

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Lexend Deca&display=swap");

body {
  background-color: hsl(233, 47%, 7%);
  height: 100%;
}
.container {
  display: flex;
  justify-content: center;
  align-items: center;
}
.card {
  width: 300px;
  height: 800px;
  background-color: hsl(244, 38%, 16%);
  border-radius: 10px;
  margin: 70px 30px;
  box-shadow: 0 0 10px black;
}

.image_container {
  width: 300px;
  height: auto;
}
.image {
  width: 100%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  mix-blend-mode: soft-light;
}
.text-container {
  align-self: center;
  text-align: center;
}
h1,
article {
  font-family: "Inter", sans-serif;
  padding: 0px 15px;
}

h1 {
  padding-top: 10px;
  color: white;
  font-weight: 700;
}
.insights {
  color: hsl(277, 64%, 61%);
}
article {
  color: hsla(0, 0%, 100%, 0.75);
}

.stats_container {
  align-content: center;
  text-align: center;
  display: block;
}

.num1 {
  color: white;
  font-family: "Lexend Deca", sans-serif;
  font-weight: 400;
  font-size: 35px;
  display: block;
  padding-top: 25px;
}

.stats_heading {
  color: hsla(0, 0%, 100%, 0.6);
  font-family: "Lexend Deca", sans-serif;
  text-transform: uppercase;
}

@media only screen and (min-width: 1224px) {
  .card {
    display: flex;
    width: 1040px;
    height: 450px;
    align-self: center;
  }
  .image_container {
    order: 2;
    width: 1040px;
    height: 450px;
    flex-direction: row;
    justify-content: flex-end;
    align-content: flex-end;
  }
  .image {
    width: 100%;
    height: 100%;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    border-top-left-radius: 0px;
  }

  .text {
    display: flex;
    flex-direction: column;
  }

  .text div {
    flex: 1;
  }

  .text-container {
    /* height: 450px; */
    /* border: 1px red solid; */
    align-self: flex-start;
    text-align: flex-start;
  }
  h1,
  article {
    text-align: left;
    padding-left: 50px;
  }
  h1 {
    padding-top: 40px;
  }
  article {
    padding-top: 5px;
  }
  .stats_container {
    /* border: 1px yellow solid; */
    justify-content: flex-start;
    text-align: left;
    display: flex;
  }

  .stats {
    display: flex;
    padding-left: 30px;
  }

  .stat-info {
    margin: 20px;
  }

  .num1 {
    color: white;
    font-family: "Lexend Deca", sans-serif;
    font-weight: 400;
    font-size: 22px;
  }

  .stats_heading {
    color: hsla(0, 0%, 100%, 0.6);
    font-family: "Lexend Deca", sans-serif;
    text-transform: uppercase;
  }
}

CodePudding user response:

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Lexend Deca&display=swap");

body {
  background-color: hsl(233, 47%, 7%);
  height: 100%;
}
.container {
  display: flex;
  justify-content: center;
  align-items: center;
}
.card {
  width: 300px;
  height: 800px;
  background-color: hsl(244, 38%, 16%);
  border-radius: 10px;
  margin: 70px 30px;
  box-shadow: 0 0 10px black;
}
.image_container {
  width: 300px;
  height: auto;
}
.image {
  width: 100%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  mix-blend-mode: soft-light;
}
.text-container {
  align-self: center;
  text-align: center;
}
h1,
article {
  font-family: "Inter", sans-serif;
  padding: 0px 15px;
}

h1 {
  padding-top: 10px;
  color: white;
  font-weight: 700;
}
.insights {
  color: hsl(277, 64%, 61%);
}
article {
  color: hsla(0, 0%, 100%, 0.75);
}

.stats{
  align-content: center;
  text-align: center;
  display: flex;
  flex-direction: column;
}

.num1 {
  color: white;
  font-family: "Lexend Deca", sans-serif;
  font-weight: 400;
  font-size: 35px;
  display: block;
  padding-top: 25px;
}

.stats_heading {
  color: hsla(0, 0%, 100%, 0.6);
  font-family: "Lexend Deca", sans-serif;
  text-transform: uppercase;
}

@media only screen and (min-width: 800px) {
  .card {
    display: flex;
    width: 80vw;
    height: 450px;
    align-self: center;
  }
  .image_container {
    order: 2;
    width: 1040px;
    height: 450px;
    flex-direction: row;
    justify-content: flex-end;
    align-content: flex-end;
  }
  .image {
    width: 100%;
    height: 100%;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    border-top-left-radius: 0px;
  }
  .text-container {
/*     height: 450px; */
    border: 1px red solid;
    align-self: flex-start;
    text-align: flex-start;
  }
  h1,
  article {
    text-align: left;
    padding-left: 50px;
  }
  h1 {
    padding-top: 40px;
  }
  article {
    padding-top: 5px;
  }
  .stats {
    border: 1px yellow solid;
    justify-content: space-around;
    text-align: center;
    flex-direction: row;
  }

  .num1 {
    color: white;
    font-family: "Lexend Deca", sans-serif;
    font-weight: 400;
    font-size: 22px;
  }

  .stats_heading {
    color: hsla(0, 0%, 100%, 0.6);
    font-family: "Lexend Deca", sans-serif;
    text-transform: uppercase;
  }
}
<div class="container">
  <div class="card">
    <div class="image_container">
      <img class="image" alt="main.jpg" src="image-header-desktop.jpg">
    </div>
    <div class="wrapper">
      <div class="text-container">
        <h1>Get <span class="insights">insights</span> that help your buisness grow</h1>
        <article>Discover the benfits of data analyitcs and make better decision regarding revenue, customer experience, and overall efficiency.</article>
      </div>
      <div class="stats_container">
        <section class="stats">
          <div class="companies"><span class="num1">10k </span>
            <span class="stats_heading">companies</span>
          </div>
          <div class="templates"><span class="num1">314</span>
            <span class="stats_heading">Templates</span>
          </div>
          <div class="queries"><span class="num1">12M </span>
            <span class="stats_heading">queries</span>
          </div>
        </section>
      </div>
    </div>
  </div>
</div>

Made some changes to the existing HTML and CSS. You needed a wrapper element. Please modify the CSS as needed.

CodePudding user response:

Putted your text and stats in a single container and applied :

.side-container {
   display: flex;
   flex-flow: column
}

So that they inner containers(stats & text) can be shown in columns using
flex-flow: column

Also applied some additional flexy to .stats like below :

 .stats {
    justify-content: space-around;
    display: flex;
    flex-flow: row;
  }

This is for stats to be in row and have space around them

You can use CSS according to need . I used here some only for demo purpose

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Lexend Deca&display=swap");
body {
  background-color: hsl(233, 47%, 7%);
  height: 100%;
}

.container {
  display: flex;
  justify-content: center;
  align-items: center;
}

.card {
  width: 300px;
  height: 800px;
  background-color: hsl(244, 38%, 16%);
  border-radius: 10px;
  margin: 70px 30px;
  box-shadow: 0 0 10px black;
}

.image_container {
  width: 300px;
  height: auto;
}

.image {
  width: 100%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  mix-blend-mode: soft-light;
}

.text-container {
  align-self: center;
  text-align: center;
}

h1,
article {
  font-family: "Inter", sans-serif;
  padding: 0px 15px;
}

h1 {
  padding-top: 10px;
  color: white;
  font-weight: 700;
}

.insights {
  color: hsl(277, 64%, 61%);
}

article {
  color: hsla(0, 0%, 100%, 0.75);
}

.stats_container {
  align-content: center;
  text-align: center;
  display: block;
}

.num1 {
  color: white;
  font-family: "Lexend Deca", sans-serif;
  font-weight: 400;
  font-size: 35px;
  display: block;
  padding-top: 25px;
}

.stats_heading {
  color: hsla(0, 0%, 100%, 0.6);
  font-family: "Lexend Deca", sans-serif;
  text-transform: uppercase;
}

@media only screen and (min-width: 1224px) {
  .card {
    display: flex;
    width: 1040px;
    height: 450px;
    align-self: center;
  }
  .image_container {
    order: 2;
    width: 1040px;
    height: 450px;
    flex-direction: row;
    justify-content: flex-end;
    align-content: flex-end;
  }
  .image {
    width: 100%;
    height: 100%;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    border-top-left-radius: 0px;
  }
  .text-container {
    height: 450px;
    border: 1px red solid;
    align-self: flex-start;
    text-align: flex-start;
  }
  h1,
  article {
    text-align: left;
    padding-left: 50px;
  }
  h1 {
    padding-top: 40px;
  }
  article {
    padding-top: 5px;
  }
  .stats_container {
    border: 1px yellow solid;
    justify-content: flex-start;
    text-align: left;
    display: inline;
  }
  .num1 {
    color: white;
    font-family: "Lexend Deca", sans-serif;
    font-weight: 400;
    font-size: 22px;
  }
  .stats_heading {
    color: hsla(0, 0%, 100%, 0.6);
    font-family: "Lexend Deca", sans-serif;
    text-transform: uppercase;
  }
  .side-container {
    display: flex;
    flex-flow: column
  }
  .stats {
    justify-content: space-around;
    display: flex;
    flex-flow: row;
  }
}
<DOCTYPE! html>
  <html lang="en">

  <head>
    <link href="firstproject.css" rel="stylesheet">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta charset="UTF-8">
  </head>

  <body>

    <div class="container">
      <div class="card">
        <div class="image_container">
          <img class="image" alt="main.jpg" src="https://jooinn.com/images/dramatic-landscape-7.jpg">
        </div>
        <div class="side-container">
          <div class="text-container">
            <h1>Get <span class="insights">insights</span> that help your buisness grow</h1>
            <article>Discover the benfits of data analyitcs and make better decision regarding revenue, customer experience, and overall efficiency.</article>
          </div>
          <div class="stats_container">
            <section class="stats">
              <div class="companies"><span class="num1">10k </span>
                <span class="stats_heading">companies</span></div>
              <div class="templates"><span class="num1">314</span>
                <span class="stats_heading">Templates</span></div>
              <div class="queries"><span class="num1">12M </span>
                <span class="stats_heading">queries</span></div>
            </section>
          </div>
        </div>

      </div>
    </div>
  </body>

  </html>

  • Related