Слои
CSS дает возможность работы со слоями: фрагментами HTML, которые можно
размещать на веб-странице путем наложения их друг на друга с точностью до
пиксела. Синтаксис для работы со слоями разработан и одобрен в конце 1996 года в
рабочем проекте консорциума "CSS Positioning (CSS-P)" Данный проект для
позиционирования элементов практически одинаково поддерживается браузерами
Internet Explorer 4.0 и Netscape 4.0 за исключением ряда мелких отличий. Однако
объектные модели браузеров для динамического управления слоями с помощью
JavaScript отличаются. В этом и кроется основная проблема для веб-разработчиков,
которые используют слои в своих программах.
Основы
Слой 1 наверху
Слой
1
Слой
2 Слой 2 наверху
Слой
1
Слой
2 |
Код HTML для примера показан ниже.
Пример 1. Создание слоев
<html> <body> Слой 1 наверху <div
style="position:relative; font-size:50px; z-index:2; color: navy">Слой
1</div> <div style="position:relative; top:-55; left:5;
color:orange; font-size:80px; z-index:1">Слой 2</div> Слой 2 наверху
<div style="position:relative; font-size:50px; z-index:3; color:
navy">Слой 1</div> <div style="position:relative; top:-55;
left:5; color:orange; font-size:80px; z-index:4">Слой 2</div>
</body> </html>
Для создания слоев следует использовать тег DIV или
SPAN. Эти теги взаимозаменяемы и различаются лишь внешним
видом в браузере. Если требуются отступы до и после текста, следует использовать
элемент DIV. При размещении текста внутри параграфа
применяется тег SPAN.
Тип позиционирования определяется параметром position, положение элемента двумя координатами top и left, а порядок слоя
значением z-index.
Позиционирование слоя
Свойство position может принимать одно из трех значений: static (статическое), absolute
(абсолютное) и relative (относительное). Параметр
static по умолчанию не оказывает никакого влияния на
расположение слоев.
При абсолютном позиционировании слой размещается относительно левого верхнего
угла окна документа. В случае размещения слоя внутри другого, абсолютные
координаты считаются от левого верхнего угла родительского слоя.
Кроме тегов DIV и SPAN абсолютное позиционирование поддерживают следующие
элементы: APPLET, INPUT, BUTTON, OBJECT, SELECT, FIELDSET, IFRAME, TABLE,
IMG, TEXTAREA.
Параметр position: relative используется для
смещения слоя относительно родительского элемента. Установка этого значения не
изменяет размещение элемента, но если установлены значения свойств top или left, то слой смещается
от своего нормального положения в документе.
Положение слоя
В то время как свойство position указывает тип
системы координат, параметры top и left определяют точную позицию слоя. Значения этих
параметров могут определяться в процентном отношении или пикселах, принимать
положительные и отрицательные величины. Это дает возможность размещать контент
выше или ниже на странице независимо от физической позиции кода HTML. То есть, в
верхней части страницы можно поместить слой, который описан внизу
HTML-документа.
Положение слоя можно менять динамически с помощью JavaScript. Это позволяет
изменять расположение элементов уже после загрузки страницы. Подобная техника
применяется при создании баннеров, игр, выпадающих меню и др.
Свойство z-index
Свойство z-index определяет порядок слоев, или их
перекрытие по отношению к другим слоям. По умолчанию все слои позиционированы со
значением z-index равным нулю. Другие слои могут
размещаться ниже путем установки отрицательного значения z-index (рис. 1). Для слоев, у которых z-index не установлен, это значение назначается неявно в
соответствии с их положением в документе. Поэтому слой, который помещен в
документ позже, размещается выше остальных элементов, позиционированных
ранее.
Рис. 1. Расположение слоев
В примере, приведенном в начале, показано использование параметра z-index для изменения положения слоев относительно друг
друга.
Свойство visibility
Для отображения или скрытия слоя используется параметр visibility. Он может принимать значения visible, установленное по умолчанию, для показа слоя, и
hidden, которое его прячет.
<div style="visibility:
hidden">Спрятанный слой</div>
Динамическое управление отображением слоя позволяет создавать выпадающие
меню, анимацию на веб-странице, свертывающие и развертывающие окна и многое
другое.
|