การซ้อนทับขององค์ประกอบ 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