Основы позиционирования блоков

Источник: i-faq

Блоки - прямоугольные области, используемые в CSS для формирования и отображения документов. Это упрощенно, очень сильно упрощенно, но на первом этапе вполне может и хватить.

С появлением нового Нетскейпа можно забыть все слои и заняться вплотную блоками.

Если вы знакомы с CSS, то знаете как описываются стили и что для этого нужно. Тэгу DIV мы тоже можем задать некоторые необходимые для нас параметры. Прописать их можно как в самом тэге, так и в описании стиля страницы или внешнем файле css.

Содержимое тэга

или

#bb {описание}
-->

Обратите внимание - блоку присваивается свое индивидуальное имя - ID="bb" и #bb.

Теперь рассмотрим, какие свойства можно назначить нашему блоку.

position - "relative" и "absolute". В первом случае слой записывается в поток, во втором - выделяется из него. Практически это смотрится так: при "relative" наш слои находится там, где мы его прописали, например, в ячейке таблицы и может использоваться как простой текстовый блок(назначен по умолчанию и во многих редакторах как текстовый блок и используется). Это нас не особо занимает. Во втором случае - "absolute" - слой помещается над плоскостью листа и позиционируется относительно верхнего левого угла экрана. Если точнее, то позиционирование в данном варианте не влияет на все последующие блоки, но может оказывать влияние на дочерние элементы. В этом случае можно разместить слой как над текстом, так и под ним. Все зависит от заданных параметров.
Позиционирование подробнее
Нормальный поток. В CSS2 модель нормального потока включает форматирование блока структурного уровня, строковое форматирование строковых блоков, относительное позиционирование структурных или строковых блоков, а также позиционирование компактных и инициальных блоков. 
Перемещаемые объекты. Согласно этой модели блок сначала размещается в соответствии с нормальным потоком, а затем изымается из него и перемещаются максимально влево или вправо насколько это возможно. Отображаемое содержимое может располагаться по сторонам перемещаемого элемента. 
Абсолютное позиционирование. В модели абсолютного позиционирования блок полностью удаляется из нормального потока (и не влияет на последующие сестринские элементы), а затем ему назначается положение относительно контейнера. 
static 
Данный блок является обычным блоком, позиционируемым в соответствии с нормальным потоком. Свойства "left" и "top" не применяются. 
relative 
Положение блока рассчитывается в соответствии с нормальным потоком (оно называется нормальным положением). Затем блок смещается относительно своего нормального положения. Когда для расположения блока B используется модель относительного позиционирования, тогда положение следующего блока рассчитывается так, как будто блок B не был смещен. 
absolute 
Положение блока (возможно и размер) указывается с помощью свойств "left", "right", "top" и "bottom". Они указывают величину смещения относительно контейнера блока. Абсолютно позиционируемые блоки изымаются из нормального потока. Это значит, что они не влияют на размещение последующих сестринских элементов. Следует заметить, что поля абсолютно позиционируемых блоков не перекрываются ни с какими другими полями. 
fixed 
Положение блока рассчитывается в соответствии с моделью абсолютного позиционирования, а затем он фиксируется относительно некоторого объекта. При использовании устройств без разбивки блок фиксируется относительно области просмотра (и не перемещается при прокрутке). 
Описание блоков
left - при абсолютном позиционировании задает расстояние от левого края экрана. 
top - при абсолютном позиционировании задает расстояние от верхнего края экрана. 
width - ширина 
height - высота 
visibility - видимость слоя. "visible" - видимый, "hidden" - не видим. По умолчанию все слои видимы. 
z-index - положение слоя относительно плоскости листа. Слой с индексом "3" будет помещен над слоем с индексом "2". Можно задать и отрицательный индекс, тогда слой будет помещен под таблицы с текстом. При отрицательном значении слой располагается под плоскостью страницы, но над фоном. Очень интересное свойство, особенно если его использовать вместе с движением обьекта. Получается эффект подвижного или изменяющегося фона. При задании различных положительных значений для разных слоев, мы можем помещать слои друг над другом - как в Фотошопе. 
background-color - фоновый цвет слоя. Заливка, как у таблиц. 
background-image - фоновый рисунок, как в таблице. 

#bb {position: absolute;
left: 50px;
top: 100px;
width: 200px;
height: 100px;
visiblity: visible;
z-index: 2;
background-color:#FF0000;
background-image:URL(filename.gif);}
-->

В описании у нас слой, находящийся в 50пикселах от левого края, в 100пикселах от верхнего и шириной и высотой в 200 и 100 пикселов, слой видим, зет-индекс 2, и имеющий фоновый цвет и рисунок.

Перемещаемый объект - это блок, который смещается по строке в левую или правую сторону. Самым интересным свойством перемещаемого объекта является то, что содержимое может передвигаться вдоль одной из его сторон (либо не делать этого, если существует запрет, устанавливаемый свойством "clear"). Содержимое может передвигаться вдоль правой стороны левостороннего перемещаемого блока и вдоль левой стороны правостороннего перемещаемого блока.

пример

#bb {
float: left;
margin-left: 10;

В данном примере мы получаем блок, расположенный на 10пикс. правее левого края.

Данное описание относится к CSS2, так что не все броузеры понимают подобную схему, но пятые версии Эксплорера, Нетскейпа и Опера все отображают нормально.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=30076