Как расположить один div над другим?

Есть несколько способов расположить один div над другим с помощью CSS. Рассмотрим некоторые из них:

1. Использование позиционирования absolute:
- Установите position: relative для родительского контейнера, чтобы сделать его контекстом позиционирования.
- Затем установите position: absolute для дочернего div, который нужно расположить над остальными.
- Укажите top, right, bottom или left для задания положения дочернего div.

Пример кода:

   .parent {
     position: relative;
   }

   .child {
     position: absolute;
     top: 0;
     left: 0;
   }

В этом примере, дочерний div будет располагаться в левом верхнем углу родительского контейнера.

2. Использование позиционирования relative и отрицательного значения margin-top:
- Установите position: relative для родительского контейнера.
- Затем установите position: relative и z-index для дочернего div для управления его порядком отображения.
- Укажите отрицательное значение margin-top для сдвига дочернего div наверх.

Пример кода:

   .parent {
     position: relative;
   }

   .child {
     position: relative;
     z-index: 1;
     margin-top: -20px;
   }

В этом примере, дочерний div будет сдвинут вверх на 20 пикселей.

3. Использование flexbox:
- Установите display: flex для родительского контейнера, чтобы создать гибкую модель размещения.
- Затем установите position: relative для родительского контейнера и position: absolute для дочернего div, которому нужно быть над остальными.
- Укажите align-self: flex-start для дочернего div, чтобы выровнять его в верхней части родительского контейнера.

Пример кода:

   .parent {
     display: flex;
     position: relative;
   }

   .child {
     position: absolute;
     align-self: flex-start;
   }

В этом примере, дочерний div будет выровнен в верхней части родительского контейнера.

4. Использование grid:
- Установите display: grid для родительского контейнера, чтобы создать сетку.
- Установите grid-template-rows и grid-template-columns для задания сетки с одним рядом и одной колонкой.
- Затем установите position: relative для родительского контейнера и position: absolute для дочернего div, которому нужно быть над остальными.
- Укажите grid-row-start и grid-column-start для позиционирования дочернего div в первой ячейке сетки.

Пример кода:

   .parent {
     display: grid;
     grid-template-rows: 1fr;
     grid-template-columns: 1fr;
     position: relative;
   }

   .child {
     position: absolute;
     grid-row-start: 1;
     grid-column-start: 1;
   }

В этом примере, дочерний div будет располагаться в первой ячейке сетки.

Однако, при использовании позиционирования absolute, relative, flexbox или grid, не забудьте, что порядок отображения элементов на странице также может быть определен с помощью значения z-index, где большее значение z-index означает, что элемент будет отображаться над элементами с меньшим значением z-index.