Позиционирование это управление координатами размещения элемента в окне браузера. CSS предлагает для позиционирования свойство position. У этого свойства могут быть три значения absolute (абсолютное позиционирование), relative (относительное позиционирование) и static (статическое позиционирование). Значение static размещает элемент на странице так, как он располагался бы без всякого позиционирования, поэтому использование этого значения не дает ничего нового. Алгоритмы работы значений absolute и relative будут рассмотрены ниже, но сначала одно важное напоминание об иерархической структуре кода HTML.
Иерархия это структура, в которой содержимое упаковано по пакетикам, вложенным друг в друга наподобие матрешек.
Все элементы страницы расположены внутри элемента BODY
(блока
Элемент BODY имеет здесь два прямых потомка
e01 и e02. В свою очередь, эти элементы тоже имеют
по два потомка e011, e012 и e021,
e022 соответственно. Эту иерархическую схему можно
изобразить так: ![]() |
Позиционирование элементов выполняется с учетом иерархии кода. Вот
почему так важно отчетливо представлять
Абсолютное позиционирование задается стилевым указанием position:absolute. При этом начало координат элемента находится в верхнем левом углу прямого предка, при условии, что он также позиционирован (абсолютно или относительно). Если родитель не позиционирован, то берется его родитель. Если все предки не имеют указаний position, то в качестве точки отсчета принимается левый верхний угол экранного образа тега BODY, то есть, левый верхний угол документа.
Горизонтальная и вертикальная координата задаются свойствами left и top соответственно.
Ниже показан пример, в котором картинка позиционируется в точку
В следующем примере абсолютно позиционированы две картинки. В коде для
каждой из них указаны координаты
Приведенные выше примеры наглядно показывают, что абсолютно позиционированные элементы выпадают из процесса обычного последовательного форматирования. Браузер не берет в расчет порядок следования кодов, а учитывает только вложенность для определения начала координат. Элементы выводятся в указанном месте, перекрывая при этом другие элементы страницы.
Порядок следования кодов абсолютно позиционируемых элементов становится важным, если они начинают перекрывать друг друга: выше оказывается тот элемент, код которого идет позже.
Относительное позиционирование задается стилевым указанием position:relative. Такой элемент принимает участие в обычном последовательном форматировании документа. За начало координат принимается та точка, куда элемент был бы размещен без позиционирования.
Алгоритм относительного позиционирования можно представить следующим образом. Сначала браузер размещает элемент на странице, выполняя обычное форматирование, а затем, по указаниям left и top смещает его на заданные значения.
В приведенном ниже примере документ форматируется обычным образом.
В следующем примере на картинку наложено относительное позиционирование. Измените размер окна и убедитесь, что картинка перемещается по экрану вслед за точкой отсчета началом абзаца, которому принадлежит тег IMG в коде документа. Начало абзаца меняет свое положение тогда, когда предшествующий заголовок записывается в одну или две экранные строки.
В первом примере код относительно позиционированной картинки
расположен внутри кода абсолютно позиционированной таблицы. Таблица
смещена от начала документа вправо на 50 пикселов, и это положение
остается фиксированным при изменении размеров окна. Картинка смещена
вниз на 100 пикселов относительно ее нормального положения
внутри таблицы. При этом в таблице текст расположен так, как будто
картинка находится на своем обычном месте.
Во втором примере код абсолютно позиционированной картинки расположен
внутри кода относительно позиционированной таблицы. Таблица смещена
относительно своего нормального положения вправо на 50
пикселов. Начало координат для картинки связано с левым верхним углом
таблицы. Картинка смещается вниз относительно этого положения на 100
пикселов. При этом текст в таблице форматируется без учета тега
IMG.
В третьем примере код абсолютно позиционированной картинки расположен
внутри кода абсолютно позиционированной таблицы. Картинка не меняет
своего положения на экране при изменении размера окна потому, что
координаты таблицы остаются неизменными.
В четвертом примере код относительно позиционированной картинки
расположен внутри кода относительно позиционированной таблицы. Когда
положение таблицы меняется на экране из-за изменения размеров окна,
меняется и положение картинки: ведь смещается начало координат, ниже
которого на 100 пикселов должна быть расположена картинка.
Приведенные выше примеры наглядно показывают, что элемент позиционируется вместе со своими потомками, независимо от того, как позиционируются последние (или не позиционируются вовсе).
Стилевое свойство z-index позволяет отойти от плоского
представления документа на экране. Его значением является целое число,
номер плоскости, в которой будет размещаться элемент (вместе со своими
потомками). Основной текст имеет нулевой уровень
Если у элементов один уровень (задан явно или не задан вовсе), то тот
из них будет располагаться выше, чей
<DIV style="position:relative; left:100;"> ... </DIV>Поле получилось, но текст перестал форматироваться по правой границе окна. Помогите Мячикову исправить положение.