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

Лабораторная работа 9. Позиционирование, z-index

Позиционирование

Позиционирование — это управление координатами размещения элемен­та в окне браузера. CSS предлагает для позиционирования свойство position.

У этого свойства могут быть три значения: absolute (абсолютное пози­ционирование), relative (относительное позиционирование) и static (статическое позиционирование). Значение static размещает элемент на странице так, как он располагался бы без всякого позиционирования, поэтому использование этого значения не дает ничего нового. Алгорит­мы работы значений absolute и relative будут рассмотрены ниже, но сначала одно важное напоминание об иерархической структуре HTML-кода.

Иерархия кода страницы

Иерархия — это структура, в которой содержимое «упаковано» по пакети­кам, вложенным друг в друга наподобие матрешек.

Все элементы страницы расположены внутри блока <body>. Таким образом, элемент <body> является родителем всех других элементов страницы. Пусть, например, страница имеет следующий код (рис. 9.1).

В показанном примере элемент <body> имеет два прямых потомка e0l и е02. В свою очередь эти элементы тоже имеют по два потомка типа eon: е012 и е021, е022 соответственно.

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

Рис. 9.1. Иерархия страничного кода

Абсолютное позиционирование

Абсолютное позиционирование задается стилевым указанием position:absolute. При этом начало координат элемента находится в верх­нем левом углу прямого предка, при условии, что он также позиционирован (абсолютно или относительно). Если родитель не позиционирован, то бе­рется его родитель. Если все предки не имеют указаний position, то в ка­честве точки отсчета принимается левый верхний угол экранного образа тега <body>, т. е. левый верхний угол документа.

Горизонтальная и вертикальная координаты задаются свойствами left и top.

Ниже показан пример (листинг 9.1, рис. 9.2), в котором картинка позициони­руется в точку (100, 50). Началом координат браузер считает начало документа.

Листинг 9.1

<HTML>

<HEAD>

<TITLE>Абсолютное позиционирование</TITLE>

</HEAD>

<BODY bgcolor=white text=black>

<H1>Абсолютное позиционирование</H1>

<P>

В этом примере картинка абсолютно позиционирована. Она располагается в 80 пикселах по горизонтали и в 60 пикселах по вертикали от начала документа.

<P>

Измените размеры окна и убедитесь,что картинка всегда остается на прежнем месте.

<IMG src=IMG061.GIF width=126 height=70 border=0

alt="Египетская пирамида"

style="position:absolute; left:80px; top:60px;">

</BODY>

</HTML>

Рис. 9.2. Картинка абсолютно позиционирована в (80, 60)

Задания:

1. Картинку позиционируйте в точку (100,50), затем в точку 150,150. В каждом случае измените размеры окна браузера и посмотрите как передвигается по экрану рисунок.

2. Измените размеры картинки на (130,50) пикселы, затем на (150,100) пикселы. Фон вокруг текста сделайте желтым.

В следующем примере (листинг 9.2, рис. 9.3) абсолютно позиционированы две картинки. В коде для каждой из них указаны координаты (100, 50), но для одной началом координат является начало документа, а для другой — начало таблицы.

Листинг 9.2

<HTML>

<HEAD>

<TITLE>Абсолютное позиционирование</TITLE>

</HEAD>

<BODY bgcolor=white text=black>

<H1>Абсолютное позиционирование</H1>

<P>

Обе картинки абсолютно позиционированы в точку (100, 50). Начало координат для одной картинки совпадает с началом документа, для второй — с началом таблицы.

<TABLE border=l cellspacing=0 cellpadding=10

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

<TR><TD>

Таблица абсолютно позиционирована.

<IMG src=gerbrk.jpg width=85 height=80 border=0

alt="Герб Казахстана"

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

</TD></TR>

</TABLE>

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

alt="Старый дом правительства"

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

</BODY>

</HTML>

Задания:

1. Картинку – герб РК позиционируйте в точку (80,40) относительно таблицы, затем в точку 150,150. В каждом случае измените размеры окна браузера и посмотрите как передвигается по экрану рисунок.

2. Картинку – Старый дом правительства позиционируйте в точку (50,100) относительно окна документа. Измените размеры картинки на (140,800) пикселы. Фон вокруг текста сделайте синим.

3. Поменяйте местами картинки, соответственно и их размеры. Позиционируйте герб относительно верхнего левого угла документа.

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

Порядок следования кодов абсолютно позиционируемых элементов становится важным, если они начинают перекрывать друг друга: «выше» оказывается тот элемент, код которого идет, позже (листинг 9.3, рис. 9.4).

Рис. 9.З. Две абсолютно позиционированные картинки

Рис. 9.4. Картинка, код которой расположен позже, перекрывает картинку, код которой идет раньше

Листинг 9.3

<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=IMG061.gif width=160 height=120 border=0

alt=Пирамида

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

<IMG src=vishka.jpg width=140 height=150 border=0

alt=Вышка

style="position:absolute;left:200px;top:250px;">

</BODY>

</HTML>

Задания:

1. Картинку – пирамиду расположите над вышкой. В каждом случае измените размеры окна браузера и посмотрите как передвигается по экрану рисунки.

2. Измените координаты расположения картинок: пирамиду в точку (75,100), а вышку в точку – (150, 200). Измените далее только координату по вертикали, затем только по горизонтали.

3. Расположите вышку левее пирамиды на 50 пикселей и выше на 50 пикселей.

Расположите их на одном уровне по горизонтали, затем поднимите выше пирамиду на 50 пикселей. Измените размер вышки (180,200) пикселей.