Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Shift cards over to next row when browser size is 915px width

How do I shift the content over to the next row when browser width is 915px?

This is what I have now:

<div class="body">
    <div class="container">
        <div class="card">
            <div class="box">
                <div class="percent">
                    <svg>
                        <circle cx="70" cy="70" r="70"></circle>
                        <circle cx="70" cy="70" r="70"></circle>
                    </svg>
                    <div class="number">
                        <h2>90<span>%</span></h2>
                    </div>
                </div>
                <h2 class="text">Html</h2>
            </div>
        </div>
        <div class="card">
            <div class="box">
                <div class="percent">
                    <svg>
                        <circle cx="70" cy="70" r="70"></circle>
                        <circle cx="70" cy="70" r="70"></circle>
                    </svg>
                    <div class="number">
                        <h2>85<span>%</span></h2>
                    </div>
                </div>
                <h2 class="text">CSS</h2>
            </div>
        </div>
        <div class="card">
            <div class="box">
                <div class="percent">
                    <svg>
                        <circle cx="70" cy="70" r="70"></circle>
                        <circle cx="70" cy="70" r="70"></circle>
                    </svg>
                    <div class="number">
                        <h2>60<span>%</span></h2>
                    </div>
                </div>
                <h2 class="text">Javascript</h2>
            </div>
        </div>
    </div>
</div>

And my css

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

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

  min-height: 100vh;
}

.container {
  display: flex;
  justify-content: space-around;
}
.container .card {
  margin-left: 20px;
  position: relative;
  width: 250px;
  background: #222;
  background: linear-gradient(0deg, #1b1b1b, #222, #1b1b1b);
  display: flex;
  justify-content: center;
  align-items: center;
  height: 300px;
  border-radius: 4px;
  text-align: center;
  overflow: hidden;
  transition: 0.5s;
}
.container .card:hover {
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5);
  transform: translateY(-10px);
}
.container .card:before {
  content: "";
  position: absolute;
  top: 0;
  left: -50%;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.03);
  pointer-events: none;
  z-index: 1;
}
.percent {
  position: relative;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  box-shadow: inset 0 0 50px #000;
  background: #222;
  z-index: 100;
}
.percent .number {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
}
.percent .number h2 {
  color: #777;
  font-weight: 700;
  font-size: 40px;
  transition: 0.5s;
}
.card:hover .percent .number h2 {
  color: #fff;
  font-size: 60px;
}
.percent .number h2 span {
  font-size: 24px;
  color: #777;
}
.text {
  color: #777;
  margin-top: 20px;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: 0.5s;
}
.card:hover .text {
  color: #fff;
}
svg {
  position: relative;
  width: 150px;
  height: 150px;
  z-index: 1000;
}
circle {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: #191919;
  stroke-width: 10;
  stroke-linecap: round;
  transform: translate(5px, 5px);
}
circle:nth-child(2) {
  stroke-dasharray: 440;
  stroke-dashoffset: 440;
}
.card:nth-child(1) svg circle:nth-child(2) {
  stroke-dashoffset: calc(440 - (440 * 90) / 100);
  stroke: #00ff43;
}
.card:nth-child(2) svg circle:nth-child(2) {
  stroke-dashoffset: calc(440 - (440 * 85) / 100);
  stroke: #00a1ff;
}
.card:nth-child(3) svg circle:nth-child(2) {
  stroke-dashoffset: calc(440 - (440 * 60) / 100);
  stroke: #c104ff;
}

@media only screen and (max-width: 915px) {
  /* your css of 1024 px screen size */
  .card {
    flex: 10% !important;
  }
}

How do I make the content shift downwards when on 915px browser width so it looks good on mobile. I’ve tried flex, change display, change width but nothing works. I don’t know if it has to do with any of that but I’d appreciate the help.

>Solution :

You can use the grid layout. First, set the container to display: grid;. After you can set how your grid will be with the grid-template-columns: 1fr; (1fr = one column, 1fr 1fr = 2 column, 1fr 2fr = 2 column, but the right one is bigger… etc). After that, you can add gap: 1rem; to have a gap between you column and row.

The Grid Documentation on W3School

Here is a example:

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

  min-height: 100vh;
}

.container {
  display: flex;
  justify-content: space-around;
}
.container .card {
  margin-left: 20px;
  position: relative;
  width: 250px;
  background: #222;
  background: linear-gradient(0deg, #1b1b1b, #222, #1b1b1b);
  display: flex;
  justify-content: center;
  align-items: center;
  height: 300px;
  border-radius: 4px;
  text-align: center;
  overflow: hidden;
  transition: 0.5s;
}
.container .card:hover {
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5);
  transform: translateY(-10px);
}
.container .card:before {
  content: "";
  position: absolute;
  top: 0;
  left: -50%;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.03);
  pointer-events: none;
  z-index: 1;
}
.percent {
  position: relative;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  box-shadow: inset 0 0 50px #000;
  background: #222;
  z-index: 100;
}
.percent .number {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
}
.percent .number h2 {
  color: #777;
  font-weight: 700;
  font-size: 40px;
  transition: 0.5s;
}
.card:hover .percent .number h2 {
  color: #fff;
  font-size: 60px;
}
.percent .number h2 span {
  font-size: 24px;
  color: #777;
}
.text {
  color: #777;
  margin-top: 20px;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: 0.5s;
}
.card:hover .text {
  color: #fff;
}
svg {
  position: relative;
  width: 150px;
  height: 150px;
  z-index: 1000;
}
circle {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: #191919;
  stroke-width: 10;
  stroke-linecap: round;
  transform: translate(5px, 5px);
}
circle:nth-child(2) {
  stroke-dasharray: 440;
  stroke-dashoffset: 440;
}
.card:nth-child(1) svg circle:nth-child(2) {
  stroke-dashoffset: calc(440 - (440 * 90) / 100);
  stroke: #00ff43;
}
.card:nth-child(2) svg circle:nth-child(2) {
  stroke-dashoffset: calc(440 - (440 * 85) / 100);
  stroke: #00a1ff;
}
.card:nth-child(3) svg circle:nth-child(2) {
  stroke-dashoffset: calc(440 - (440 * 60) / 100);
  stroke: #c104ff;
}

@media only screen and (max-width: 915px) {
  /* your css of 1024 px screen size */
  .card {
    flex: 10% !important;
  }
  .grid-class{
      display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}
<div class="body">
    <div class="container grid-class">
        <div class="card">
            <div class="box">
                <div class="percent">
                    <svg>
                        <circle cx="70" cy="70" r="70"></circle>
                        <circle cx="70" cy="70" r="70"></circle>
                    </svg>
                    <div class="number">
                        <h2>90<span>%</span></h2>
                    </div>
                </div>
                <h2 class="text">Html</h2>
            </div>
        </div>
        <div class="card">
            <div class="box">
                <div class="percent">
                    <svg>
                        <circle cx="70" cy="70" r="70"></circle>
                        <circle cx="70" cy="70" r="70"></circle>
                    </svg>
                    <div class="number">
                        <h2>85<span>%</span></h2>
                    </div>
                </div>
                <h2 class="text">CSS</h2>
            </div>
        </div>
        <div class="card">
            <div class="box">
                <div class="percent">
                    <svg>
                        <circle cx="70" cy="70" r="70"></circle>
                        <circle cx="70" cy="70" r="70"></circle>
                    </svg>
                    <div class="number">
                        <h2>60<span>%</span></h2>
                    </div>
                </div>
                <h2 class="text">Javascript</h2>
            </div>
        </div>
    </div>
</div>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading