Автор: Пользователь скрыл имя, 12 Декабря 2011 в 15:31, контрольная работа
Совсем еще недавно, использовать FRAME (многооконные) документы не рекомендовалось грамотными мастерами, так как зачастую у клиента не было средств, правильно для их правильного отображения, они сильно замедляли работу компьютера и часто вообще показывались неправильно. Но все меняется и не прошло и года, как фреймы стали восприниматься как неотъемлемый атрибут хорошо оформленного WEB сервера, дающий очень удобные средства навигации на сервере и их отсутствие трактуется как не уважение к клиенту.
Многооконные документы (Frames)
Совсем еще недавно, использовать FRAME (многооконные) документы не рекомендовалось грамотными мастерами, так как зачастую у клиента не было средств, правильно для их правильного отображения, они сильно замедляли работу компьютера и часто вообще показывались неправильно. Но все меняется и не прошло и года, как фреймы стали восприниматься как неотъемлемый атрибут хорошо оформленного WEB сервера, дающий очень удобные средства навигации на сервере и их отсутствие трактуется как не уважение к клиенту.
Фреймы (окна или рамки)- это достаточно мощный механизм навигации и создания пользовательских меню.
Что дают фреймы или окна:
Эти свойства многооконных документов (фреймов) позволяют использовать следующие возможности:
Наглядным примером использования окон (фреймов или рамок) является пособие по языку HTML 3.2, которое вы в данный момент читаете.
Создание простого многооконного документа
Прежде, чем создавать многооконный документ необходимо определить как вы собираетесь использовать рабочее поле просмотрщика. Фреймы разделяют рабочее поле (окно-window) просмотрщика на две (или более) независимых части, в каждую из которых загружаются различные документы. В простом случае мы делим окно либо по столбцам (вдоль) либо по строкам (поперек) на две части (два окна).
Для создания простейшего многооконного документа (из двух окон) необходимо иметь как минимум три HTML страницы: две - которые будут показывать в окнах и третью (головную), которая создает эти окна.
В случае, если мы делим окно просмотрщика по строкам на два подокна, то мы должны создать две HTML страницы, row1.html и row2.html, первая из которых будет показывать в верхней части (в вернем окне), а вторая в нежней.
Далее создаем еще оду HTML страницу, определяющую способ разбиения рабочего поля.
<HTML>
<FRAMESET ROWS="20%, *"> <FRAME SRC="row1.html"> <FRAME SRC="row2.html"> </FRAMESET> </HTML> |
В результате окно просмотрщика будет разделено поперек (по строкам) на две части, на верхнее окно будет отведено 20% рабочего поля, а на нижнее оставшееся часть (80%). В вернее окно будет загружена страницы row1.html, а в нижнее страница - row2.html.
Для того, что бы разделить рабочее поле вдоль (по столбцам) на две части, нужно использовать вместо атрибута ROWS атрибут COLS команде FRAMESET.
<FRAMESET COLS="20%, *"> |
В задании размеров подокон можно использовать абсолютные и относительные (как в приведенном выше примере) значения:
Задание размеров окна в пикселах рекомендуется для размещения в этом окне картинок фиксированного размера для организации навигационного меню. Для размещения текстовых окон лучше использовать относительные размеры. Это связано с тем, что сервер принципиально не знает реальных размеров окна просмотрщика у клиента.
Имена окон
При наличии фреймов (или нескольких информационно связанных окон просмотрщика) каждому из открытых окон должно быть присвоено собственное имя.
Каждое окно является независимым браузером и имена используются для установления связей между разными окнами и определения окна, куда будет загружена новая страница.
Вы имеете возможность, указав соответствующее имя окна, загрузить новую страницу одно окно по ссылке из другого.
Имя присваивается окну одним из трех способов:
Данный параметр заставит документ загрузиться в окно с названием window_name, или создать такое окно, если оно не существует.
Таким образом, при использовании фреймов для задания имени окна используется атрибут NAME в команде FRAME, например:
<HTML>
<FRAMESET ROWS="20%, *"> <FRAME NAME="first" SRC="row1.html"> <FRAME NAME="second" SRC="row2.html"> </FRAMESET> </HTML> |
Если в документе row1.html будет вызвана ссылка на документ newpage.html следующим образом
<A HREF="newpage.html" TARGET="second">Click here to see "newpage.html".</A> |
то документ newpage.html откроется во втором окне, которое имеет имя NAME="second".
Существует несколько стандартных имен окон задаваемых атрибутом TARGET к команде <A>
TARGET="_top" | Загрузить документ в основном окне просмотрщика (при этом ликвидируются все установки фреймов). |
TARGET="_blank" | Открыть новое окно просмотрщика и в него загрузить документ. Эта команда работает и в отсутствии фреймов. |
TARGET="_self" | Загрузка документа в то же самое окно, откуда он был вызван (работает по умолчанию). |
TARGET="_parent" | Загрузка документа в "родительское" окно по отношению к текущему (см. ниже). |
Дополнительные параметры
Следующие атрибуты устанавливают возможности для клиента изменения размеров окна и прокрутки текста:
NORESIZE
<FRAME SRC="row1.html" NORESIZE> |
Клиенту запрещается изменять размеры окна. Имеет смысл устанавливать, когда окно содержит картинки.
SCROLLING=yes|no
<FRAME SRC="row1.html" SCROLLING=NO> |
Клиенту запрещена прокрутка текста в данном окне (по умолчанию установлено SCROLLING=yes).
3-D рамки (border)
ПО умолчанию команда FRAMESET рисует 3-D рамку (borders) между окнами (frames). Это можно отменить используя атрибут FRAMEBORDER, например:
<FRAMESET ROWS="20%, *" FRAMEBORDER=0 FRAMESPACING=0> |
Окна будут создаваться без рамок и без отступов (FRAMESPACING) от границ окон.
Сложные окна
Более сложные многооконные документы, наподобие данного руководства, создаются при помощи комбинации соответствующих команд FRAMESET.
Например, мы хотим создать многооконный документ, наподобие того, каким является данное пособие, содержащий вверху неменяемый заголовок (его лучше всего задать картинкой), далее слева навигационное меню и справа два содержательных окна.
Первое создаем
FRAMESET, который делит поперек рабочее поле
на окно для заголовка и окно для меню
и содержания.
<HTML>
<FRAMESET ROWS="10%, *"> |
Далее загружаем в вернее окно заголовок
<FRAME SRC="head.html"> |
Следующий шаг - разбиваем остаток вдоль на два окна: левое для меню, правое для содержания и загружаем в левое окно файл с меню:
<FRAMESET
COLS="20%,*">
<FRAME SRC="menu.htm" NAME="menu"> |
И наконец, делим
правую часть на два подокна и
загружаем в них
<FRAMESET
ROWS="40%,*">
<FRAME SRC="index.html" NAME="index"> <FRAME SRC="main.html" NAME="main"> </FRAMESET> </FRAMESET> </FRAMESET> </HTML> |
Отношение родительского окна ("_parent") - переход на ступеньку вверх при разбиении рабочего поля, определяется следующим образом: если вызов документа происходит из окон "index" или "main", то родительским окном считается вся правая часть документа, если из окна "menu", то вся нижняя часть документа, при этом разбиение на окна нижнего уровня пропадает.
Если вы желаете присвоить имена промежуточным окнам разбиения (например правому окну), то в этом случае нужно в правое окно загрузить файл right.html с разбиением FRAMESET:
<FRAMESET COLS="20%,*">
<FRAME SRC="menu.htm" NAME="menu"> <FRAME SRC="right.html" NAME="right"> </FRAMESET> </FRAMESET> </HTML> |