CSS Grid элементтеринин катмалашуусу

Grid системасында грид аймактары кесилгенде же терс сырткы четтер белгиленгенде бир элементтердин башкалардын үстүнө катмалашуу мүмкүнчүлүгү камсыз кылынган. Катмалашуу демейки абалда болушу мүмкүн, бирок ар бир элемент үчүн аны белгилүү бир тартипте z-index жана order касиеттери, ошондой эле алардын айкалышы аркылуу коюуга болот.

Gridде элементтердин демейки катмалашуусу

Бизде элементтери бири-бири менен катмалашкан таблица бар деп коёлу:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
</div>
css#parent {
  display: grid;
  grid: repeat(6, 1fr) / repeat(6, 1fr);
  border: 2px solid #696989;
  padding: 10px;
  width: 400px;
  height: 300px;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  background-color: pink;
  grid-column: 1 / 4;
  grid-row: 1 / 5;
}
#elem2 {
  background-color: orange;
  grid-column: 2 / 5;
  grid-row: 3 / 6;
}
#elem3 {
  background-color: green;
  grid-column: 3 / 6;
  grid-row: 2 / 4;
}

Результат:

order касиети менен элементтердин катмалашуу тартибин өзгөртүү

Эми order касиетин колдонуп, аны ар бир балага элементке коёлу:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
</div>
css#parent {
  display: grid;
  grid: repeat(6, 1fr) / repeat(6, 1fr);
  border: 2px solid #696989;
  padding: 10px;
  width: 400px;
  height: 300px;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  background-color: pink;
  grid-column: 1 / 4;
  grid-row: 1 / 5;
  order: 3;
}
#elem2 {
  background-color: orange;
  grid-column: 2 / 5;
  grid-row: 3 / 6;
  order: 2;
}
#elem3 {
  background-color: green;
  grid-column: 3 / 6;
  grid-row: 2 / 4;
  order: 1;
}

Результат:

z-index касиети менен элементтердин катмалашуу тартиби

Эми z-index касиетин колдонолу, ал элементтердин орношуу тартибин z-огу боюнча түзөөгө мүмкүндүк берет:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
</div>
css#parent {
  display: grid;
  grid: repeat(6, 1fr) / repeat(6, 1fr);
  border: 2px solid #696989;
  padding: 10px;
  width: 400px;
  height: 300px;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  background-color: pink;
  grid-column: 1 / 4;
  grid-row: 1 / 5;
  z-index: 1;
}
#elem2 {
  background-color: orange;
  grid-column: 2 / 5;
  grid-row: 3 / 6;
  z-index: 3;
}
#elem3 {
  background-color: green;
  grid-column: 3 / 6;
  grid-row: 2 / 4;
  z-index: 2;
}

Результат:

Алынган натыйжадан көрүнүп тургандай, z-index касиетинин эң жогорку мааниси элементти төмөнкү маанилерге ээ башка элементтердин үстүнө жайгаштырууну белгилейт.

order жана z-index касиеттеринин айкалышы менен элементтердин катмалашуусу

Эгерде биз элементтердин тартибин z-index жана order менен өзгөртсөк, анда артыкчылык z-index касиетине кала берет. Бул элементтердин тартибин өзгөртүүгө мүмкүндүк берет, бирок ошону менен бирге алардын катмалашуусуна көзөмөлдү жоготпойт:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
</div>
css#parent {
  display: grid;
  grid: repeat(6, 1fr) / repeat(6, 1fr);
  border: 2px solid #696989;
  padding: 10px;
  width: 400px;
  height: 300px;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  background-color: pink;
  grid-column: 1 / 4;
  grid-row: 1 / 5;
  order: 3;
  z-index: 1;
}
#elem2 {
  background-color: orange;
  grid-column: 2 / 5;
  grid-row: 3 / 6;
  order: 1;
  z-index: 2;
}
#elem3 {
  background-color: green;
  grid-column: 3 / 6;
  grid-row: 2 / 4;
  order: 1;
  z-index: 3;
}

Результат:

Практикалык тапшырмалар

Задание 1

Биздин gridде төрт элемент бар деп коёлу:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
  <div id="elem4">4</div>
</div>
css#parent {
  display: grid;
  grid: repeat(6, 1fr) / repeat(6, 1fr);
  border: 2px solid #696989;
  padding: 10px;
  width: 400px;
  height: 300px;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  background-color: pink;
}
#elem2 {
  background-color: orange;
}
#elem3 {
  background-color: green;
}
#elem4 {
  background-color: lightblue;
}

Бардык элементтерди төмөнкү үлгүгө ылайык орнотуңуз, order касиетин колдонуу менен:

Задание 2

Эми мурунку тапшырманы чечүү үчүн z-index касиетин колдонуңуз.

Задание 3

Биздин gridде төрт элемент бар деп коёлу:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
  <div id="elem4">4</div>
</div>
css#parent {
  display: grid;
  grid: repeat(6, 1fr) / repeat(6, 1fr);
  border: 2px solid #696989;
  padding: 10px;
  width: 400px;
  height: 300px;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  background-color: pink;
}
#elem2 {
  background-color: orange;
}
#elem3 {
  background-color: green;
}
#elem4 {
  background-color: lightblue;
}

Бардык элементтерди төмөнкү үлгүгө ылайык орнотуңуз, order касиетин колдонуу менен:

Задание 4

Эми мурунку тапшырманы чечүү үчүн z-index касиетин колдонуңуз.