Ответ 1
Проще говоря - это "выше", если непрозрачность имеет менее 1 значения.
Ключевым термином здесь является Контекст стеков.
Установив непрозрачность на значение меньше единицы, она будет различаться по-разному в соответствии со спецификацией, так как она получает новый контекст стекирования и располагается под элементом.
Здесь указано float и непрозрачность:
Корневой элемент формирует контекст укладки корня. Другие контексты стекирования генерируются любым позиционируемым элементом (включая относительно позиционированные элементы), имеющим вычисленное значение "z-index", отличное от "auto". Контексты стеков не обязательно связаны с блоками. В будущих уровнях CSS другие свойства могут вводить контексты стекирования, например "непрозрачность" [CSS3COLOR].
Из прозрачности:
Так как элемент с непрозрачностью менее 1 составлен из одного внеэкранного изображения, содержимое за его пределами не может быть наложено в z-порядке между кусками содержимого внутри него. По той же причине реализация должна создать новый контекст стекирования для любого элемента с непрозрачностью менее 1. Если элемент с непрозрачностью менее 1 не помещен, реализации должны рисовать создаваемый им слой в контексте родительского стека, в том же порядке укладки, который будет использоваться, если бы он был позиционированным элементом с "z-index: 0 и" непрозрачностью: 1. Если элемент с непрозрачностью меньше 1, то свойство "z-index" применяется, как описано в [ CSS21], за исключением того, что "auto обрабатывается как" 0 ", поскольку всегда создается новый контекст стекирования. Дополнительную информацию о контекстах стекирования см. В разделе 9.9 и в приложении E [CSS21]. Правила этого параграфа не применяются к элементам SVG, поскольку SVG имеет свою собственную модель рендеринга ([SVG11], глава 3).
Как это исправить:
Вы можете установить pointer-events
на none
, см. эту скрипту.