Фреймы.

Выбор фреймовой структуры отображения информации на WWW оправдан в следующих случаях:

1.При необходимости организовать управление загрузкой документов в одну из подобластей окна просмотра браузера при работе в другой области.

2.Для расположения в определённом месте окна просмотра информации, которая должна постоянно находиться на экране вне зависимости от содержания других подобластей экрана.

3.Для предоставления информации, которую удобно расположить в нескольких смежных подобластях окна, каждая из которых может просматриваться независимо.

 

Правила описания фреймов:

Контейнер из тегов <FRAMESET> и </FRAMESET> обрамляет каждый блок определений фрейма.

Внутри контейнера <FRAMESET> могут содержаться только теги <FRAME> и вложенные теги <FRAMESET>.

Тег <FRAMESET> имеет два параметра: ROWS(строки) и COLS(столбцы) и записывается в следующем виде:

<FRAMESET ROWS="список значений" COLS="список значений">

Список значений, представляет собой список значений, которые могут задаваться в пикселях, в процентах или в относительных единицах:

Пример:

<FRAMESET ROWS="100,240,140">

<FRAMESET ROWS="25%,50%,25%">

<FRAMESET ROWS="*,2*,3*">

 

Звёздочка (*) используется для пропорционального деления пространства.

Можно использовать все три варианта задания значений:

<FRAMESET ROWS="100,25%,*,2*">

В этом примере 1-ый столбец будет иметь ширину 100 пикселей. 2-ой столбец займёт 25% от всей ширины окна просмотра, 3-ий столбец-1/3 оставшегося пространства и, наконец, последний столбец- 2.3.

 

Тег <FRAME> определяет одиночный фрейм. Он должен располагаться внутри тегов <FRAMESET> и </FRAMESET>.

Например:

<FRAMESET ROWS="*,2*">

<FRAME>

<FRAME>

</FRAMESET>

 

Тег <FRAME> не является контейнером и не имеет завершающего тега. Тег <FRAME> имеет шесть парметров: SCR, NAME, MARGINWIDTH, MARGINHEIGHT, SCROLLING и NORESIZE.

 

Наиболее важный параметр SRC (сокращение от слова sourse). Значение этого параметра определяет URL-адрес документа, который будет загружен изначально в данный фрейм.

 

<FRAME SRC="sample.htm">

<FRAME SRC="http://www.bhv.ru/example.gif>

 

Параметр NAME определяет имя фрейма, которое может использоваться для ссылки к данному фрейму.

<FRAME SRC="sample.htm" NAME="Frame_1">

 

Такая запись создаёт фрейм с именем "Frame_1", на который может быть выполнена ссылка.

 

Например:

<A HREF="other.htm" TARGET="Frame_1">Щёлкните здесь для загрузки документа other.htm во фрейм с именем Frame_1</A>

 

Параметры MARGINWIDTH и MARGINHEIGHT дают возможность устанавливать ширину полей фрейма.

MARGINWIDTH="value",

где "value"- абсолютное значение в пикселях. Например:

<FRAME MARGINWIDTH="5" MARGINHEIGHT="7">

 

Для фреймов будут автоматически создаваться и отображаться послосы прокрутки, если содержимое фрейма не помещается полностью в отведённом пространстве. Иногда это нарушает дизайн страницы, поэтому было бы удобно иметь возможность управлять отображением полос прокрутки. Для этих целей используется параметр SCROLLING.

Форма записи:

<FRAME SCROLLING="YES|NO|AUTO">

Значение AUTO действует так же, как и в случае отсутсствия параметра SCROLLING.

Значение YES вызывает появление полос прокрутки вне зависимости от необходимости этого, а NO- запрещает их появление.

Обычно пользователь может изменять с помощью курсора мыши размер фреймов при просмотре страницы. Это иногда нарушает структуру красиво спроектированных фреймов. Чтобы этого не происходило следует воспользоваться параметром NORESIZE, который предотвращает возможность изменения пользователем размера фрейма.

Все эти параметры могут использоваться совестно, так и отдельно.

 

Для пользователей, применяющих браузеры без поддержки фреймов, необходимо предусмотреть альтернативную информацию, которая записывается между парой тегов <NOFRAME> и </NOFRAME>.

Приведём пример создания регулярной прямогольной сетки фреймов:

<FRAMESET ROWS="*,2*" COLS="20%,30%">

<FRAME SRC="Forms.htm">

<FREME SCR="Frames.htm">

<FREME SCR="Imagemap.htm">

<FREME SCR="Tables.htm">

</FREMESET>

 

Взаимодействие между фреймами.

Взаимодействие между фреймами заключается в возможности загрузки документов в выбранный фрейм по командам из другого фрейма. Для этой цели используется параметр TARGET тега <A>.

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

TARGET документ загружается в текущий фрейм или окно. Это умолчание может быть изменено заданием тега <BASE> с нужным значением параметра TARGET.

Имена фреймов должны начинаться с латинской буквы или цифры. Имеется четыре зарезервированных имени, при задании которых выполняются специальные действия. Эти имена начинаются с символа подчёркивания (_):"_blank","_self","_parent","_top".

 

TARGET="_blank"-обеспечивает загрузку документа в новое окно. Это окно не будет иметь имени, а следовательно, в него невозможно будет загружать другой документ.

TARGET="_self"-загрузка документа будет произведена в текущий фрейм (или окно). Такую запись следует использовать для обхода умолчания, заданного тегом <BASE>/

TARGET="_top"-вызывает загрузку документа в полное окно. Если документ уже располагается в полном окне, то данное значение действует так же, как "self".

TARGET="_parent"-вызывает загрузку документа в область, занимаемую фреймом-родителем текущего фрейма. При отсутствии фрейма-родителя данное значение параметра действует так же, как "_top".

Предупреждение: Зарезервированные имена фреймов "_blank","_self","_parent","_top"

должны записываться строчными латинскими буквами. Заметим, что такая требовательность присуща только Netscape. Браузер Microsoft Internet Explorer правильно распознаёт зарезервированные имена, записанные на любом регистре.

 

Приведём пример взаимодействия между фреймами и отдельными окнами браузера. Но для этого нужно сначала создать три вспомогательных HTML-кода.

Первый файл с именем frame_a.htm:

<HTML>

<HEAD>

<TITLE>Документ для фрема A</TITLE>

</HEAD>

<BODY>

<A HREF="test.htm" TARGET="B">1. Загрузка документа во фрейм B</A><P>

<A HREF="test.htm" TARGET="C">2. Загрузка документа во фрейм C</A><P>

<A HREF="test.htm" TARGET="D">3. Загрузка документа в окно с именем D</A><P>

<A HREF="test.htm" TARGET="_blank">4. Загрузка документа в новое окно</A><P>

<A HREF="test.htm" TARGET="_top">5. Загрузка документа в полное окно</A><P>

<A HREF="test.htm" TARGET="_self">6. Загрузка документа в текущий фрейм</A><P>

</BODY>

</HTML>

 

Второй файл test.htm крайне прост:

 

<HTML>

<HEAD>

<TITLE>Тестовый документ</TITLE>

</HEAD>

<BODY>