Responzivna pločica bez margina u CSS-u

Hajde da napravimo pločicu koja će imati različit broj blokova u redu u zavisnosti od širine ekrana. Evo primera kako bi naš rezultat trebao da izgleda:

Prvo napišimo HTML kod:

html<div class="parent">
  <div class="child">1</div>
  <div class="child">2</div>
  <div class="child">3</div>
  <div class="child">4</div>
  <div class="child">5</div>
  <div class="child">6</div>
  <div class="child">7</div>
  <div class="child">8</div>
  <div class="child">9</div>
  <div class="child">10</div>
  <div class="child">11</div>
  <div class="child">12</div>
</div>

Sada hajde da dodamo stilove roditelju blokova:

css.parent {
  display: flex;
  flex-wrap: wrap;
  width: 95%;
  margin: 50px auto;
}

Sada postavimo stilove samim blokovima, bez postavljanja širine:

css.child {
  box-sizing: border-box;
  height: 100px;
  padding: 20px;
  border: 1px solid green;
}

Očigledno je da širina blokova mora biti u procentima, kako bi se blokovi pri promeni ekrana postepeno menjali u širini. Pri tome, na određenim tačkama prekida na ekranu treba da menjamo širinu blokova tako da se određeni broj blokova može smestiti u jedan red.

Hajde da napišemo kod koji će postaviti četiri bloka u jedan red:

css@media (min-width: 1000px) {
  .child {
    width: 25%;
  }
}

A sada postavimo tri bloka u red:

css@media (min-width: 700px) and (max-width: 1000px) {
  .child {
    width: 33.3333%;
  }
}

A sada postavimo dva bloka u red:

css@media (min-width: 400px) and (max-width: 700px) {
  .child {
    width: 50%;
  }
}

Jedan blok u red:

css@media (max-width: 400px) {
  .child {
    width: 100%;
  }
}

Hajde da spojimo ceo kod:

css.parent {
  display: flex;
  flex-wrap: wrap;
  width: 95%;
  margin: 50px auto;
}
.child {
  box-sizing: border-box;
  height: 100px;
  padding: 20px;
  border: 1px solid green;
}

@media (max-width: 400px) {
  .child {
    width: 100%;
  }
}
@media (min-width: 400px) and (max-width: 700px) {
  .child {
    width: 50%;
  }
}
@media (min-width: 700px) and (max-width: 1000px) {
  .child {
    width: 33.3333%;
  }
}
@media (min-width: 1000px) {
  .child {
    width: 25%;
  }
}
Задание 1

Prepravite moj kod tako da se širina blokova računa preko funkcije calc.

Задание 2

Napravite pločicu koja će pri smanjivanju ekrana prvo imati četiri elementa u redu, zatim dva elementa u redu, a onda jedan element u redu.

Задание 3

Napravite pločicu koja će pri smanjivanju ekrana prvo imati šest elemenata u redu, zatim tri elementa u redu, a onda jedan element u redu.