Свойство z-index контролирует позиционирование элементов только внутри контекста, определенного родительским элементом с позиционированием, отличным от статического (по умолчанию). Если родительский элемент не имеет позиционирования (например, он имеет статическое позиционирование), свойство z-index дочерних элементов не будет иметь эффекта на их позиционирование относительно других элементов на странице.
Если вы хотите, чтобы элементы перекрывали друг друга, убедитесь, что у родительского элемента, содержащего эти элементы, есть позиционирование, отличное от статического (например, relative, absolute или fixed).