Отступы в плиточке с автошириной блоков в CSS

Пусть у нас есть плиточка по четыре блока в ряд:

css.child {
  width: 25%;
}

Давайте добавим нашим блокам отступы в процентах по горизонтали и по вертикали:

css.child {
  margin-right: 1.5%;
  margin-bottom: 1.5%;
}
.child:nth-child(4n) {
  margin-right: 0;
}

Пока то, что мы сделали, будет работать некорректно, так как суммарная ширина блоков и отступов больше 100%. Для корректной работы мы должны от каждого блока откусить некоторый кусочек, чтобы было место под наши отступы. Давайте вычислим эти кусочки.

В нашем случае получается, что блоков четыре, а между ними три отступа - по полтора процента. Чтобы вычислить отнимаемый кусочек, нужно суммарный отступ поделить на количество блоков:

1.5% * 3 / 4 = 1.125

Toгда ширина каждого блока будет равна:

25% - 1.5% * 3 / 4 = 23.875%

Получится следующий код:

css.child {
  width: 23.875%;
  margin-right: 1.5%;
  margin-bottom: 1.5%;
}
.child:nth-child(4n) {
  margin-right: 0;
}

Можно не вычислять этот отступ самим, а переложить работу по вычислению на функцию calc:

css.child {
  width: calc(25% - 1.5% * 3 / 4);
  margin-right: 1.5%;
  margin-bottom: 1.5%;
}
.child:nth-child(4n) {
  margin-right: 0;
}

Ширину блока также пусть вычисляет функция calc:

css.child {
  width: calc(100% / 4 - 1.5% * 3 / 4);
  margin-right: 1.5%;
  margin-bottom: 1.5%;
}
.child:nth-child(4n) {
  margin-right: 0;
}
Задание 1

Задайте блокам ширину в процентах так, чтобы в плитке стало три блока в ряд, а между ними расстояние в 3%.

Задание 2

Задайте блокам ширину в процентах так, чтобы в плитке стало шесть блоков в ряд, а между ними расстояние в 0.5%.

Задание 3

Задайте блокам ширину в процентах так, чтобы в плитке стало четыре блока в ряд, а между блоками было расстояние в 30px.

Задание 4

Задайте блокам ширину в процентах так, чтобы в плитке стало пять блоков в ряд, а между блоками было расстояние в 50px.