Как установить новый z-индекс корневого уровня в дочернем элементе фиксированного элемента?

Учитывая следующий HTML:

#header {
  position: fixed;
  z-index: 1;
  background-color: red;
  width: 100%;
  height: 150px;
  top: 0;
}

#drop {
  position: absolute;
  top: 5px;
  width: 100px;
  background-color: green;
  height: 400px;
  z-index: 3;
}

#footer {
  position: fixed;
  z-index: 2;
  background-color: blue;
  width: 100%;
  height: 150px;
  bottom: 0;
}
<div id="header">
  <div id="drop">
  </div>
</div>

<div id="footer">
</div>

Ответ 1

В соответствии с действующим стандартом это так же просто, как удаление z-index от #header. С индексом z по умолчанию auto заголовок не устанавливает новый контекст стекирования, и, следовательно, раскрывающийся список и нижний колонтитул принадлежат один и тот же контекст стекирования, и #drop z-index 3 подталкивает его над нижним колонтитулом. Вы даже можете удалить z-index из нижнего колонтитула; потому что он появляется после заголовка в порядке документа, он все равно будет на вершине.

Попробуйте:

#header {
  position: fixed;
  background-color: red;
  width: 100%;
  height: 150px;
  top: 0;
}

#drop {
  position: absolute;
  top: 5px;
  width: 100px;
  background-color: green;
  height: 400px;
  z-index: 3;
}

#footer {
  position: fixed;
  background-color: blue;
  width: 100%;
  height: 150px;
  bottom: 0;
}
<div id="header">
  <div id="drop">
  </div>
</div>

<div id="footer">
</div>

Ответ 2

Если вы можете жить с статичным заголовком, то я думаю, что это то, что вы ищете.

#header {
  position: static;
  z-index: 1;
  background-color: red;
  width: 100%;
  height: 150px;
  top: 0;
}

#drop {
  position: absolute;
  top: 5px;
  width: 100px;
  background-color: green;
  height: 400px;
  z-index: 3;
}

#footer {
  position: fixed;
  z-index: 2;
  background-color: blue;
  width: 100%;
  height: 150px;
  bottom: 0;
}
<div id="header">
  <div id="drop">
  </div>
</div>

<div id="footer">
</div>