Pllaka Adaptiv me Hapësira në CSS

Tani le të bëjmë një pllakë me hapësira. Ja një shembull i asaj që duhet të arrijmë:

Së pari le të bëjmë stilet për prindin e blloqeve:

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

Tani le t'u caktojmë stile vetë blloqeve, pa u caktuar gjerësi, por duke u caktuar margjinin e poshtëm në përqindje:

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

Tani le të shkruajmë kodin që do të vendosë katër blloqe në një rresht, duke caktuar hapësirat përkatëse:

css@media (min-width: 1000px) {
  .child {
    width: calc(100% / 4 - 1.5% * 3 / 4);
  }
  .child:not(:nth-child(4n)) {
    margin-right: 1.5%;
  }
}

Dhe tani le të vendosim tre blloqe në një rresht:

css@media (min-width: 700px) and (max-width: 1000px) {
  .child {
    width: calc(100% / 3 - 1.5% * 2 / 3);
  }
  .child:not(:nth-child(3n)) {
    margin-right: 1.5%;
  }
}

Dhe tani le të vendosim dy blloqe në një rresht:

css@media (min-width: 400px) and (max-width: 700px) {
  .child {
    width: calc(100% / 2 - 1.5% * 1 / 2);
  }
  .child:not(:nth-child(2n)) {
    margin-right: 1.5%;
  }
}

Një bllok në një rresht:

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

Le të mbledhim të gjithë kodin së bashku:

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

@media (max-width: 400px) {
  .child {
    width: 100%;
  }
}
@media (min-width: 400px) and (max-width: 700px) {
  .child {
    width: calc(100% / 2 - 1.5% * 1 / 2);
  }
  .child:not(:nth-child(2n)) {
    margin-right: 1.5%;
  }
}
@media (min-width: 700px) and (max-width: 1000px) {
  .child {
    width: calc(100% / 3 - 1.5% * 2 / 3);
  }
  .child:not(:nth-child(3n)) {
    margin-right: 1.5%;
  }
}
@media (min-width: 1000px) {
  .child {
    width: calc(100% / 4 - 1.5% * 3 / 4);
  }
  .child:not(:nth-child(4n)) {
    margin-right: 1.5%;
  }
}
Задание 1

Bëni një pllakë që kur ekrani zvogëlohet të ketë fillimisht tetë elemente në një rresht, pastaj katër elemente në një rresht, pastaj dy elemente në një rresht. Le të jetë hapësira midis elementeve 0.75%.

Задание 2

Modifikoni detyrën e mëparshme në mënyrë që hapësira midis elementeve të jetë një vlerë e fiksuar prej 20px.