css поверх всех элементов

Свойство CSS z-index отвечает за то, какой элемент будет находится выше/ниже при наложении. Другими словами какой конкретно элемент перекроет другой. Это свойство работает только для элементов, у которых значение position задано как:

  • position : absolute ;
  • positionn : fixed ;
  • positionn : relative ;

Синтаксис CSS z-index

Число задает как раз на каком уровне будет находится элемент. Чем выше число, тем выше слой. Иногда z-index еще называют третьем измерением. Если представить трехмерное пространство, то вот как будет выглядеть наложение:

Значение auto означает, что браузер самостоятельно определит какой блок на каком уровне находится. Значение inherit означает наследование от родителя (предка).

Как наложить один блок на другой

Пример 1. Наложение друг на друга квадратов с z-index

В первом примере мы рассмотрим самый простой вариант со смещениями блоков через margin, чтобы добиться наложения. Обратите внимание, что везде присутствует свойство position: relative .

На странице преобразуется в следующее

Сейчас у каждого нового блока z-index на единицу больше (block1 — 1, block2 — 2, block3 — 3, block4 — 4, block5 — 5). Изменим порядок z-index в нашем примере следующим образом:

На странице преобразуется в следующее

В этом примере block4 стал выше всех, поскольку его z-index выше остальных (5). Подчеркнем еще раз, что если убрать position: relative , то это отменит действие z-index.

Для обращения к z-index из JavaScript нужно писать следующую конструкцию:

Для начала разберемся с самим понятием позиционирование. Позиционированием называют определение конкретного месторасположения на странице того или иного элемента (бокса). Позиционирование бывает абсолютным, относительным, фиксированным и статическим.

Потороплюсь с примером, ниже будем разбираться, что в нем написано.

На веб-странице расположены три изображения игральных карт (рис. 3.51). Пока они лежат рядом, их порядок значения не имеет, но если применить к ним позиционирование и сместить изображения так, чтобы они накладывались друг на друга, одна карта будет находиться выше другой (рис. 3.52).

Рис. 3.51. Карты рядом друг с другом

Рис. 3.52. Карты одна на другой

Если представить веб-страницу в виде трёхмерного пространства (рис. 3.53), то видно, что карты располагаются также по оси Z. Значения по этой оси и определяют, какая карта к нам ближе, какая дальше, иными словами порядок их наложения друг на друга. В коде документа (пример 3.38) порядок определяется автоматически на основе потока документа. Чем элемент ниже в коде, тем он выше по оси Z, поэтому изображение с тузом, как самое нижнее, располагается поверх остальных карт.

Рис. 3.53. Воображаемые координаты веб-страницы

Пример 3.38. Обычный порядок карт

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

В CSS за положением по Z-оси отвечает свойство z-index , которое определяет, «ближе» к нам элемент находится или «дальше». В качестве значений принимается целое число, чем оно больше, тем выше располагается элемент по отношению к другим. Элементам автоматически присваивается значение 0, так что даже z-index : 1 заставит элемент перекрывать все нижележащие. Доработаем пример 3.38 так, чтобы порядок карт поменялся на противоположный, причём только редактируя стиль, оставляя HTML-код прежним.

Свойство z-index для класса three специально установлено как 5 для демонстрации, что последовательность значений z-index роли не играет. Главное, чтобы одно число было больше другого.

Свойство z-index работает только для элементов, у которых значение position задано как absolute , fixed или relative .

Когда требуется расположить элемент поверх всех остальных на странице, ему ставят очень большое значение z-index , например 9999. Это гарантирует, что даже если в стилях и применяется z-index , он будет меньше указанного. В примере 3.39 у карт при наведении на них курсора меняется z-index на 10. Никаких скриптов здесь не понадобится, всё делается через псевдокласс :hover .

Пример 3.39. Изменение z-index при наведении на карту

Оцените статью