Reszponzív csempe margók nélkül CSS-ben

Készítsünk egy csempét, amely a képernyő szélességétől függően különböző számú blokkot fog tartalmazni egy sorban. Íme egy példa arra, amit kapnunk kellene:

Először írjuk meg a HTML kódot:

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>

Most adjunk hozzá stílusokat a blokkok szülőjének:

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

Most állítsuk be maguknak a blokkoknak a stílusait, anélkül, hogy beállítanánk a szélességüket:

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

Nyilvánvaló, hogy a blokkok szélességének százalékban kell lennie, hogy a képernyő méretének változásakor a blokkok fokozatosan változtassák a szélességüket. Ugyanakkor a képernyő bizonyos pontjain meg kell változtatnunk a blokkok szélességét úgy, hogy egy sorban meghatározott számú blokk férjen el.

Írjunk kódot, amely négy blokkot helyez el egy sorban:

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

Most helyezzünk el három blokkot egy sorban:

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

Most helyezzünk el két blokkot egy sorban:

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

Egy blokk egy sorban:

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

Most gyűjtsük össze az összes kódot:

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

Alakítsd át a kódomat úgy, hogy a blokkok szélessége a calc függvénnyel legyen kiszámolva.

Задание 2

Készíts egy csempét, amely a képernyő méretének csökkenésével először négy elemet jelenít meg egy sorban, majd két elemet egy sorban, végül pedig egy elemet egy sorban.

Задание 3

Készíts egy csempét, amely a képernyő méretének csökkenésével először hat elemet jelenít meg egy sorban, majd három elemet egy sorban, végül pedig egy elemet egy sorban.