Показать блок поверх другого без absolute?

Да, возможно показать блок поверх другого без использования свойства CSS position: absolute. Для этого можно использовать свойство position: fixed в комбинации с z-index.

position: fixed позволяет элементу для всегда оставаться на том же месте на экране независимо от прокрутки. Вы можете указать координаты блока, используя свойства top, bottom, left и right.

z-index определяет порядок отображения элементов в слоях. Элементы с более высоким значением z-index будут отрисованы поверх элементов с более низким значением.

Таким образом, чтобы показать блок поверх другого, вы можете применить следующий CSS:

.block1 {
  background-color: red;
  width: 300px;
  height: 200px;
  position: fixed;
  top: 50px;
  left: 50px;
  z-index: 1;
}

.block2 {
  background-color: blue;
  width: 200px;
  height: 150px;
  position: relative;
  margin-top: 20px;
  margin-left: 50px;
  z-index: 2;
}

В этом примере block1 будет отображаться поверх block2, потому что у block2 задано значение z-index: 2, в то время как у block1 - z-index: 1. Обратите внимание, что в данном случае block2 имеет значение position: relative, но его позиция будет расчитана относительно оригинального места блока в потоке документа.