CSS Grid elemek egymásra helyezése

A grid rendszer lehetővé teszi az egyes elemek más elemekre helyezését, amikor a grid területek metszik egymást, vagy negatív külső margót adunk meg. Az egymásra helyezés alapértelmezés szerint is megtörténhet, de minden elem esetében meghatározhatjuk a sorrendjét a z-index és a order tulajdonságok, valamint ezek kombinációja segítségével.

Elemek egymásra helyezése a gridben alapértelmezés szerint

Tegyük fel, hogy van egy táblázatunk, amelyben az elemek egymásra helyezkednek el:

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

Результат:

Az elemek egymásra helyezésének sorrendjének módosítása a order tulajdonsággal

Most alkalmazzuk a order tulajdonságot, minden gyermek elemben megadva azt:

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

Результат:

Az elemek egymásra helyezésének sorrendje a z-index tulajdonsággal

Most alkalmazzuk a z-index tulajdonságot, amely lehetővé teszi az elemek sorrendjének beállítását a z-tengely mentén:

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

Результат:

Amint az a kapott eredményből látható, a z-index tulajdonság legmagasabb értéke azt eredményezi, hogy az elem a többi elem elé kerül, amelyeknek alacsonyabb az értéke.

Az elemek egymásra helyezésének kombinálása a order és z-index tulajdonságokkal

Ha megváltoztattuk az elemek sorrendjét a z-index és a order segítségével, akkor a prioritás a z-indexé lesz. Ennek köszönhetően megváltoztathatjuk az elemek sorrendjét, de közben nem veszítjük el az irányítást az egymásra helyezésük felett:

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

Результат:

Gyakorlati feladatok

Задание 1

Tegyük fel, hogy a gridünkben négy elem van:

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

Helyezze el az összes elemet a következő példának megfelelően, a order tulajdonság használatával:

Задание 2

Most az előző feladat megoldásához alkalmazza a z-index tulajdonságot.

Задание 3

Tegyük fel, hogy a gridünkben négy elem van:

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

Helyezze el az összes elemet a következő példának megfelelően, a order tulajdonság használatával:

Задание 4

Most az előző feladat megoldásához alkalmazza a z-index tulajdonságot.