На этой странице:
Как мы видели, позиционирование элементов может привести к тому, что они станут перекрывать друг друга.
Блоки перекрывают друг друга. Причём, заметьте, “выше” расположен тот блок, код которого в HTML идёт позже. Значит, управлять расположением блоков по “высоте” можно, меняя порядок следования блоков в HTML-коде. |
Зададим на странице три блока: <BODY> <DIV id=block1>Блок 1</DIV> <DIV id=block2>Блок 2</DIV> <DIV id=block3>Блок 3</DIV> </BODY> Определим для них абсолютное позиционирование и придадим индивидуальность разной расцветкой: #block1,#block2,#block3 { position:absolute; width:200px; height:150px; border:1px solid black; } #block1 { left:0;top:0; background:#0ff; } #block2 { left:50px;top:50px; background:#ffca4c; } #block3 { left:100px;top:100px; background:#0c0; } |
В CSS существует способ для явного управления взаимным положением
элементов по высоте (по оси Z, которая направлена к читателю,
перпендикулярно плоскости страницы). Это свойство
z-index
.
Элемент, значение
В качестве |
|
Cвойство |
Добавим к стилевым определениям наших блоков свойство #block1 { left:0;top:0; z-index:10; background:#0ff; } #block2 { left:50px;top:50px; z-index:5; background:#ffca4c; } #block3 { left:100px;top:100px; z-index:1; background:#0c0; } |
Непозиционированные элементы располагаются в плоскости, для которой
z-index
равен 0
. Это означает, что элементы с
отрицательными z-index
, будут располагаться ниже обычного
контента, а с положительными — выше. Следующий пример
демонстрирует это.
Абзац текста находится в потоке.
Первый блок располагается ниже абзаца, так как он позиционирован и
для него задано |
Файл index.htm
<BODY> <DIV id=block1>Блок 1</DIV> <DIV id=block2>Блок 2</DIV> <P> Этот текст записан внутри обычного непозиционированного абзаца, который является прямым потомком BODY. </BODY>Файл style.css
#block1,#block2 { position:absolute; width:200px; height:150px; border:1px solid black; } #block1 { left:0;top:0; z-index:-1; background:#0ff; } #block2 { left:50px;top:50px; z-index:1; background:#ffca4c; } P {background:#0c0;} |
Свойство visibility
позволяет управлять видимостью
элемента.
Элемент, для которого задано
Потомки элемента с |
|
<BODY> <P>Первый абзац. <P class="two">Второй абзац. <P>Третий абзац. </BODY> |
Свойство display
позволяет влиять
на способ представления элемента.
Элемент, для которого задано
Значение
Значение
Значение |
|
Отметим, что изменение ролей не меняет тип элемента, меняет только его
представление на экране. В частности, по-прежнему блочные
элементы не могут быть потомками строчных, даже при изменении их ролей
свойством display
.
<BODY> <P>Это абзац перед списком. <UL> <LI>Первый <LI>Второй <LI>Третий </UL> <P>Это абзац после списка. </BODY> |