НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗mkSpGdGIO 119 of 128 menu

Наложение элементов CSS грида

В системе грид предусмотрена возможность наложения одних элементов на другие при пересечении грид областей или указании отрицательных внешних отступов. Наложение может происходить по умолчанию, но также для каждого элемента можно задать его в определенном порядке посредством свойств z-index и order, а также их комбинации.

Наложение элементов в гриде по умолчанию

Пусть у нас есть таблица, в которой элементы перекрываются друг другом:

<div id="parent"> <div id="elem1">1</div> <div id="elem2">2</div> <div id="elem3">3</div> </div> #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, задав его в каждом дочернем элементе:

<div id="parent"> <div id="elem1">1</div> <div id="elem2">2</div> <div id="elem3">3</div> </div> #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-оси:

<div id="parent"> <div id="elem1">1</div> <div id="elem2">2</div> <div id="elem3">3</div> </div> #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. Благодаря чему можно менять порядок элементов, но при этом не потерять контроля над их наложением:

<div id="parent"> <div id="elem1">1</div> <div id="elem2">2</div> <div id="elem3">3</div> </div> #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; }

:

Практические задачи

Пусть в нашем гриде есть четыре элемента:

<div id="parent"> <div id="elem1">1</div> <div id="elem2">2</div> <div id="elem3">3</div> <div id="elem4">4</div> </div> #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:

А теперь для решения предыдущей задачи примените свойство z-index.

Пусть в нашем гриде есть четыре элемента:

<div id="parent"> <div id="elem1">1</div> <div id="elem2">2</div> <div id="elem3">3</div> <div id="elem4">4</div> </div> #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:

А теперь для решения предыдущей задачи примените свойство z-index.

Русский
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить