Zamiki v ploščicah s samodejno širino blokov v CSS

Recimo, da imamo ploščico s štirimi bloki v vrsti:

css.child {
  width: 25%;
}

Dodajmo našim blokom odstotke zamikov vodoravno in navpično:

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

Zaenkrat bo to, kar smo naredili, delovalo nepravilno, ker je skupna širina blokov in zamikov večja od 100%. Za pravilno delovanje moramo od vsakega bloka odvzeti določen del, da bo prostor za naše zamike. Izračunajmo te dele.

V našem primeru se izkaže, da so bloki štirje, med njimi pa so trije zamiki - po en in pol odstotka. Za izračun odvzetega dela je treba skupni zamik deliti s številom blokov:

1.5% * 3 / 4 = 1.125

Potem bo širina vsakega bloka enaka:

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

Rezultat je naslednja koda:

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

Teh zamikov ni treba računati sami, ampak lahko nalogo izračuna prepustimo funkciji 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;
}

Naj tudi širino bloka izračuna funkcija 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

Nastavite blokom širino v odstotkih tako, da v ploščici postanejo trije bloki v vrsti, med njimi pa razdalja 3%.

Задание 2

Nastavite blokom širino v odstotkih tako, da v ploščici postane šest blokov v vrsti, med njimi pa razdalja 0.5%.

Задание 3

Nastavite blokom širino v odstotkih tako, da v ploščici postanejo štirje bloki v vrsti, med bloki pa naj bo razdalja 30px.

Задание 4

Nastavite blokom širino v odstotkih tako, da v ploščici postane pet blokov v vrsti, med bloki pa naj bo razdalja 50px.