На этой странице:
Как мы видели, позиционирование элементов может привести к тому, что они станут перекрывать друг друга.
|
Блоки перекрывают друг друга. Причём, заметьте, “выше” расположен тот блок, код которого в 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>
|