CSS Grid Elementlərinin Üst-Üstə Düşməsi

Grid sistemində, grid sahələrinin kəsişməsi və ya mənfi xarici boşluqlar təyin edilməsi zamanı bəzi elementlərin digərlərinin üzərində üst-üstə düşmə imkanı nəzərdə tutulur. Üst-üstə düşmə standart olaraq baş verə bilər, amma həmçinin hər bir element üçün onu müəyyən qaydada təyin etmək olar, z-index və order xassələri və onların birləşməsi vasitəsilə.

Grid-də elementlərin standart üst-üstə düşməsi

Tutaq ki, bizim elementlərin bir-birinin üzərində üst-üstə düşdüyü bir cədvəlimiz var:

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 xassəsi ilə elementlərin üst-üstə düşmə qaydasının dəyişdirilməsi

İndi order xassəsini tətbiq edək, onu hər bir uşaq elementdə təyin edək:

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 xassəsi ilə elementlərin üst-üstə düşmə qaydası

İndi z-index xassəsini tətbiq edək, bu xassə elementlərin z-oxu boyunca yerləşdirilmə qaydasını tənzimləməyə imkan verir:

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;
}

Результат:

Alınan nəticədən göründüyü kimi, z-index xassəsinin ən yüksək qiyməti elementə daha aşağı qiymətlərə malik digər elementlərin üzərində yerləşməni təyin edir.

order və z-index xassələrinin birləşməsi ilə elementlərin üst-üstə düşməsi

Əgər biz elementlərin qaydasını z-index və order ilə dəyişdirdiksə, prioritet z-index-də qalacaq. Bunun sayəsində elementlərin qaydasını dəyişmək, amma eyni zamanda onların üst-üstə düşməsi üzərində nəzarəti itirməmək olar:

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;
}

Результат:

Praktiki tapşırıqlar

Задание 1

Tutaq ki, bizim grid-də dörd element var:

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;
}

Bütün elementləri aşağıdakı nümunəyə uyğun yerləşdirin, order xassəsindən istifadə edərək:

Задание 2

İndi əvvəlki tapşırığı həll etmək üçün z-index xassəsini tətbiq edin.

Задание 3

Tutaq ki, bizim grid-də dörd element var:

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;
}

Bütün elementləri aşağıdakı nümunəyə uyğun yerləşdirin, order xassəsindən istifadə edərək:

Задание 4

İndi əvvəlki tapşırığı həll etmək üçün z-index xassəsini tətbiq edin.