Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа_9w.doc
Скачиваний:
6
Добавлен:
23.11.2019
Размер:
558.08 Кб
Скачать

Относительное позиционирование

Относительное позиционирование задается стилевым указанием position:relative. Такой элемент участвует в обычном последовательном форматировании документа. За начало координат принимается та точка, в которой элемент был бы размещен без позиционирования.

Алгоритм относительного позиционирования можно представить следую­щим образом. Сначала браузер размещает элемент на странице, выполняя обычное форматирование, а затем по указаниям left и top смещает его на заданные значения.

В приведенном ниже примере (листинг 9.4, рис. 9.5) документ форматиру­ется обычным образом.

Листинг 9.4

<HTML>

<HEAD>

<TITLE>Обычное построение документа</TITLE>

</HEAD>

<BODY bgcolor=white text=black>

<H1>Обычное построение документа</H1>

<P>

<IMG src=kbtu.jpg width=126 height=60 border=0

alt=Старый дом правительства align=left hspace=10>

Это пример обычного форматирования документа без всякого

позиционирования.<BR clear=left>

</BODY>

</HTML>

Рис. 9.5. Обычное форматирование

В следующем примере (листинг 9.5, рис. 9.6) на картинку наложено относи­тельное позиционирование.

Листинг 9.5

<HTML>

<HEAD>

<META http-equiv="Content-Type"

content="text/html; charset=windows-1251">

<TITLE><Относительное позиционирование</TITLE>

</HEAD>

<BODY bgcolor=white text=black>

<H1> Относительное позиционирование </H1>

<P>

<IMG src=kbtu.jpg width=126 height=60 border=0

alt=Университет align=left hspace=10

style="position:relative; left:0px; top:150px;">

В этом примере картинка смещена вниз на 150 пикселов относительно того места, которое она занимала бы на экране при отсутствии позиционирования. <BR clear=left>

</BODY>

</HTML>

Задания:

  1. Этот пример измените так, чтобы картинка была смещена вниз на 200 и правее на 75 пикселов относительно того места, которое она занимала бы на экране при отсутствии позиционирования.

  2. Создайте страницу, в которой та же картинка выводится несколь­ко раз со смещением вниз и вправо так, чтобы каждая следующая копия была ниже предыдущей.

Рис. 9.6. Относительное позиционирование

Если изменить размер окна, то можно увидеть, что картинка перемещается по экрану вслед за точкой отсчета — началом абзаца, которому принадле­жит тег <img> в коде документа. Начало абзаца меняет свое положение то­гда, когда предшествующий заголовок записывается в одну или две экран­ные строки.

Смешанное позиционирование

Рассмотрим четыре варианта смешанного позиционирования, условно обо­значенных ниже как:

  • absolute [relative] — относительно позиционированный блок внутри абсолютно позиционирован­ного;

  • relative [absolute] абсолютно позиционированный блок внутри относительно позиционированного;

  • absolute [absolute] — абсолютно позиционированный блок внутри аб­солютно позиционированного;

  • relative [relative] — относительно позиционированный блок внутри относительно позиционированного.

Absolute [relative]

Код относительно позиционированной картинки расположен внутри кода абсолютно позиционированной таблицы. Таблица смещена от начала доку­мента вправо на 50 пикселов, и это положение остается фиксированным при изменении размеров окна. Картинка смещена вниз на 100 пикселов от­носительно ее «нормального» положения внутри таблицы. При этом в таб­лице текст расположен так, как будто картинка находится на своем обыч­ном месте (листинг 4.6, рис. 4.7, 4.8).

Рис. 9.7. Absolute (relative)

Листинг 9.6

<HTML>

<HEAD>

<TITLE>Смешанное позиционирование</TITLE>

</HEAD>

<BODY bgcolor=white text=black>

<H1>Смешанное позиционирование</H1>

<P>

Таблица абсолютно позиционирована в точку (50,0). Внутри кода таблицы

расположена картинка с относительным позиционированием вниз на 100 пикселов. <P>

<TABLE border=l cellspacing=0 cellpadding=10

width=80% bgcolor=#EEE5DB

style="position:absolute; left:50px; top:0px">

<TR><TD>

<P>

<IMG src=kbtu.jpg width=126 height=60 border=0

alt=Старый дом правительства align=left hspace=10

style="position:relative; left:0px; top:100px;">

Тег <TT><B>IMG</B></TT> размещается внутри таблицы.

Для картинки записано относительное позиционирование вниз на 100

пикселов.<BR clear=left>

</TD></TR>

</TABLE>

</BODY>

</HTML>

Рис. 9.8. Схема позиционирования

Relative [absolute]

Во втором примере код абсолютно позиционированной картинки располо­жен внутри кода относительно позиционированной таблицы. Таблица сме­щена относительно своего «нормального» положения вправо на 50 пикселов. Начало координат для картинки связано с левым верхним углом табли­цы. Картинка смещается вниз относительно этого положения на 100 пиксе­лов. При этом текст в таблице форматируется без учета тега <img> (лис­тинг 9.7, рис. 9.9, 9.10).

Листинг 9.7

<HTML>

<HEAD>

<МЕТА http-equiv="Content-Type"

content="text/html; charset=windows-1251">

<TITLE>Смешаннoe позиционирование</TITLE>

</HEAD>

<BODY bgcolor=white text=black>

<Н1>Смешанное позиционирование</Н1>

<P>

Таблица относительно позиционирована вправо на 50 пикселов. Внутри кода

таблицы расположена картинка с абсолютным позиционированием (0,100).

<Р>

<TABLE border=l cellspacing=0 cellpadding=10

width=80% bgcolor=#EEE5DB

style="position: relative; left :50px; top: 0px"> <TR><TD>

<P>

<IMG src=./pic/let.gif width=126 height=60 border=0

alt=Университет align=left hspace=10

style="position:absolute; left:0px; top:l00px;">

Тег <TT><B>IMG</B></TT> размещается внутри таблицы. Для картинки

записано абсолютное позиционирование вниз на 100 пикселов.<BR clear=left>

</TD></TR>

</TABLE>

</BODY>

</HTML>

Рис. 9.9. Relative (absolute)

Рис. 9.10. Схема позиционирования

Absolute [absolute]

Код абсолютно позиционированной картинки расположен внутри кода аб­солютно позиционированной таблицы. Картинка не меняет своего положе­ния на экране при изменении размера окна, потому что координаты табли­цы остаются неизменными (листинг 9.8, рис. 9.11, 9.12).

Листинг 9.8

<HTML>

<HEAD>

<META http-equiv="Content-Type"

content="text/html; charset=windows-1251">

<TITLE>Смешанное позиционирование</TITLE>

</HEAD>

<BODY bgcolor=white text=black>

<H1>Смешанное позиционирование</H1>

<P>

Таблица абсолютно позиционирована в точку (50,0). Внутри кода таблицы

расположена картинка с абсолютным позиционированием в точку (0,120).

<P>

<TABLE border=l cellspacing=0 cellpadding=10

width=80% bgcolor=#EEE5DB

style="position:absolute;left:50px;top:0px">

<TR><TD>

<P>

<IMG src=kbtu.jpg width=126 height=60 border=0

alt=Университет align=left hspace=10

style="position:absolute; left:0px; top:120px;">

Тег <TT><B>IMG</B></TT> размещается внутри таблицы. Для картинки

записано абсолютное позиционирование в точку (0,120).<BR clear=left>

</TD></TR>

</TABLE>

</BODY>

</HTML>

Рис.9.11. Absolute (absolute)

Рис. 9.12. Схема позиционирования

Relative [relative]

Код относительно позиционированной картинки расположен внутри ко­да относительно позиционированной таблицы. Когда положение таблицы меняется на экране из-за изменения размеров окна, меняется и по­ложение картинки: ведь смещается начало координат, ниже которого на 100 пикселов должна быть расположена картинка (листинг 4.9, рис. 4.13, 4.14).

Рис. 9.13. Relative [relative]

Рис. 9.14. Схема позиционирования

Листинг 9.9

<HTML>

<HEAD>

<META http-equiv="Content-Type"

content="text/html; charset=windows-1251">

<TITLE>Смешанное позиционирование</TITLE>

</HEAD>

<BODY bgcolor=white text=black">

<Н1>Смешанное позиционирование</Н1>

<P>

Таблица относительно позиционирована вправо на 50 пикселов. Внутри кода таблицы

расположена картинка с относительным позиционированием вниз на 100 пикселов.

<Р>

<TABLE border=1 cellspacing=0 cellpadding=10

width=80% bgcolor=#EEE5DB

style="position:relative; left:50px;top:0px">

<TR><TD>

<P>

<IMG src=./pic/let.gif width=126 height=60 border=0

alt=Университет align=left hspace=10

style="position:relative; left:0px; top:100px;"> Тег <TT><B>IMG</B></TT> размещается внутри таблицы. Для картинки записано относительное позиционирование вниз на 100 пикселов.<BR clear=left>

</TD></TR>

</TABLE> ;

</BODY>

</HTML>

Приведенные выше примеры наглядно показывают, что элемент позицио­нируется вместе со своими потомками, независимо от того, как позициони­руются последние (или не позиционируются вовсе).

Z-index

Стилевое свойство z-index позволяет отойти от плоского представления документа на экране. Его значением является целое число, номер плос­кости, в которой будет размещаться элемент (вместе со своими потомками). Основной текст имеет нулевой уровень (z-index:o). Положительный z-index размещает элементы над основным текстом, отрицательный — под ним. Из двух плоскостей размещения та расположена выше, у кото­рой z-index больше (листинг 9.10, рис. 9.15).

Листинг 9.10

<HTML>

<HEAD>

<META http-equiv="Content-Type"

content="text/html; charset=windows-1251">

<TITLE> Z-индекс </TITLE>

</HEAD>

<BODY bgcolor=white text=brown">

<H1>Z-индекс</H1>

<P>

Этот текст — основной. К нему не приписано никаких стилевых воздействий. Значит, этот текст лежит в нулевой плоскости.

<IMG src=kbtu.jpg width=126 height=60 border=0

alt=Университет align=left hspace=10

style="position:absolute;left:0px;top:20px; z-index=-1;">

<IMG src=kbtu.jpg width=126 height=60 border=0

alt=Университет align=left hspace=10

style="position:absolute; left:50px;top: 70px; z-index=-2;">

</BODY>

</HTML>

Если у элементов одинаковый z-index (задан явно или не задан вовсе), то тот из них будет располагаться выше, чей HTML-код идет позже.

Рис. 9.15. Z-index