Фон над содержимым или ловля прозрачной кошки в прозрачной комнате

назад далее

 

 

Вот еще пример неожиданного нарушения области владения parent-child, но уже на уровне иерархии контейнеров.

Контейнер с фоновым изображением One содержит в себе таблицу, которая содержит второй контейнер с вложенным изображением имеющим z-index -1. Мы ожидаем, что все, что расположено над фоном, мы должны видеть незавимимо от назначенного z-index, потому что мы делаем различные назначения z-index -1 вложенным дочерним элементам. Как бы не так! На самом деле фон нижнего контейнера в FireFox и Opera может рисоваться сверху вложенных в него других контейнеров.

Вопрос:

Ситуация разрешается очень просто, если иметь ввиду, что в Opera и FireFox нельзя применять отрицательные индексы. По крайней мере для значимых элементов.

Интересно, что в Opera и FireFox прозрачные фоны точно так же заслоняют изображения, как и непрозрачные. Обычно это обнаруживается, когда какие-нибудь активные элементы, например, ссылки, перестают работать. В сложном макете с множеством слоев 100%-й высоты бывает непросто найти, какой именно прозрачный слой закрывает содержание. Если для слоев используются имена классов, можно прощупать страницу, добавив ко всем подозрительным слоям такой код:

onclick="alert(this.className)"

Тогда при нажатии на невидимый слой вы узнаете имя его стилевого класса.