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

Ստեղծեք ցանց, որը էկրանը նեղացնելիս սկզբում կունենա վեց տարր տողում, հետո երեք տարր տողում, իսկ հետո մեկ տարր տողում: