Адаптивна плочица без одступа у CSS

Хајде да направимо плочицу која ће имати различит број блокова у реду у зависности од ширине екрана. Ево примера онога што би требало да добијемо:

Напишимо прво HTML код:

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>

Хајде сада да додамо стилове родитељу блокова:

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

Сада задајмо стилове самим блоковима, не задајући им ширину:

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

Очигледно је да ширина блокова мора бити у процентима, како би се при промени екрана блокови глатко мењали. При томе у одређеним тачкама екрана морамо мењати ширину блокова тако да у ред стане одређени број тих блокова.

Хајде да напишемо код који ће поставити четири блока у ред:

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

А сада поставимо три блока у ред:

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

А сада поставимо два блока у ред:

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

Један блок у ред:

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

Хајде да сакупимо цео код заједно:

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

Промените мој код тако да се ширина блокова рачуна преко функције calc.

Задание 2

Направите плочицу која ће при смањењу екрана прво имати четири елемента у реду, затим два елемента у реду, а потом један елемент у реду.

Задание 3

Направите плочицу која ће при смањењу екрана прво имати шест елемената у реду, затим три елемента у реду, а потом један елемент у реду.