CSS Grid elementlarining ustma-ust joylashishi

Grid tizimida grid maydonlari kesishganda yoki manfiy tashqi chekinishlar ko'rsatilganda ba'zi elementlarni boshqalarining ustiga qo'yish imkoniyati mavjud. Ustma-ust joylashish sukut bo'yicha bo'lishi mumkin, lekin har bir element uchun uni z-index va order xossalari va ularning kombinatsiyasi orqali ma'lum bir tartibda belgilash mumkin.

Gridda elementlarning sukut bo'yicha ustma-ust joylashishi

Faraz qilaylik, bizda elementlar bir-birining ustiga chiqadigan jadval mavjud:

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 xususiyati yordamida elementlarning ustma-ust joylashish tartibini o'zgartirish

Endi order xususiyatini qo'llaymiz, uni har bir farzand elementida belgilab:

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 xususiyati yordamida elementlarning ustma-ust joylashish tartibi

Endi z-index xususiyatini qo'llaymiz, bu elementlarning z-o'qi bo'yicha joylashish tartibini sozlash imkonini beradi:

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

Результат:

Olingan natijadan ko'rinib turibdiki, z-index xususiyatining eng yuqori qiymati elementga pastroq qiymatga ega bo'lgan boshqa elementlarning ustida joylashishni belgilaydi.

order va z-index xususiyatlari yordamida elementlarning ustma-ust joylashishini birlashtirish

Agar biz elementlar tartibini z-index va order yordamida o'zgartirgan bo'lsak, ustunlik z-indexga tegishli bo'ladi. Shuning uchun elementlarning tartibini o'zgartirish mumkin, lekin shu bilan birga ularning ustma-ust joylashishini nazorat qilishni yo'qotmaslik mumkin:

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

Результат:

Amaliy vazifalar

Задание 1

Faraz qilaylik, bizning gridimizda to'rtta element mavjud:

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

Barcha elementlarni quyidagi namuna bo'yicha order xususiyatidan foydalangan holda joylashtiring:

Задание 2

Endi oldingi vazifani yechish uchun z-index xususiyatini qo'llang.

Задание 3

Faraz qilaylik, bizning gridimizda to'rtta element mavjud:

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

Barcha elementlarni quyidagi namuna bo'yicha order xususiyatidan foydalangan holda joylashtiring:

Задание 4

Endi oldingi vazifani yechish uchun z-index xususiyatini qo'llang.