Фреймы
Фреймы позволяют разбить окно просмотра браузера на несколько прямоугольных подобластей, располагающихся рядом друг с другом. В каждую из подобластей можно загрузить отдельный HTML-документ, просмотр которого осуществляется независимо от других. Между фреймами, также как и между отдельными окнами браузера, при необходимости можно организовать взаимодействие, которое заключается в том, что выбор ссылки в одном из фреймов может привести к загрузке нужного документа в другой фрейм или окно браузера.
Выбор фреймовой структуры оправдан в следующих случаях:
  • при необходимости организовать управление загрузкой документов в одну из подобластей окна просмотра браузера при работе в другой подобласти;
  • для расположения в определённом месте окна просмотра информации, которая должна постоянно находится на экране вне зависимости от содержания других подобластей экрана;
  • для предоставления информации которую удобно расположить в нескольких смежных подобластях окна, каждая из которых может просматриваться независимо.
Приведённый список не исчерпывает все возможные случаи, где можно применить фреймы.

Контейнер <FRAMESET>
Фреймы определяются в структуре, называемой FRAMESET, которая используется для страниц, содержащих фреймы, вместо раздела BODY обычного документа. Web-страницы, составленные из фреймов, не могут содержать раздел BODY в своём HTML-коде. В свою очередь, страницы с разделом BODY не могут использовать фреймы.
Контейнер из тэгов <FRAMESET> и </FRAMESET> обрамляет каждый блок определений фреймов. Внутри этого контейнера могут содержаться только тэги <FRAME> и вложенные тэги <FRAMESET>
Параметры
COLS
ROWS
значения параметра COLS определяют количество столбцов, а параметра ROWS – количество строк, на которые будет разделено рабочее окно браузера. Эти значения представляют собой разделённый запятыми список значений, которые могут задаваться в пикселях(числовое значение без наименований), процентах(%), или в относительных единицах(*). Число строк или столбцов определяется числом значений в соответствующем списке.
Например, запись <FRAMESET COLS="200,*,*"> определяет набор фреймов в три столбца, ширина первого 200 пикселей, а второй и третий поровну поделят оставшуюся часть окна. Перед символом «*» можно записать число, определяющее соотношение между шириной (высотой) фреймов, заданных символом «*».
Например, параметр COLS="*,2*" определяет два фрейма, где второй вдвое шире первого.
Параметр
FRAMEBORDER
указывает наличие или отсутствие границы (отлиновки) между фреймами и равен 1 или 0, соответственно.
Параметр
FRAMESPACING
определяет толщину границы в пикселях, если FRAMEBORDER=0, значение FRAMESPACING игнорируется.
Параметр
BORDERCOLOR
указывает цвет границы между фреймами, значение – код цвета или название базового цвета; цветная граница воспроизводится только при FRAMEBORDER=1 и ненулевом значении FRAMESPACING.

Пример 16. Параметры тэга <FRAMESET>
Пример HTML кода
<FRAMESET  = FRAMEBORDER= FRAMESPACING= BORDERCOLOR=>
<FRAME SRC="frame1.html">
<FRAME SRC="frame2.html">
</FRAMESET>

Контейнер <FRAME>
Тэги <FRAME>, записанные внутри контейнера <FRAMESET>...</FRAMESET>, служат для указания характеристик каждого фрейма (по порядку сверху вниз или слева направо, соответственно.
Параметр
SRC
указывает имя (а если требуется, то и путь, а также адрес URL) файла, содержащего HTML-текст или, например, графическое изображение, которые будут загружены в данный фрейм изначально.
Параметр
NAME
присваивает данному фрейму индивидуальное имя, которое требуется, чтобы позже загружать в этот фрейм другое содержимое.
Параметр
NORESIZE
запрет изменения размеров фрейма пользователем; если этот параметр отсутствует, можно перемещать мышью границу фрейма влево-вправо или вверх-вниз.
Параметр
SCROLLING
значение NO – запрет прокрутки содержимого фрейма,
YES – указание выводить линейку прокрутки в любом случае,
AUTO – автоматическое определение необходимости линейки прокрутки, в зависимости от того, умещается ли содержимое фрейма в заданных размерах.
Параметры
MARGINWIDTH
MARGINHEIGHT
задают отступы в пикселях по горизонтали и вертикали содержимого фрейма от его границ (по умолчанию эти отступы составляют 10 пикселей).

Пример 17. Параметры тэга <FRAME>
Пример HTML кода
<FRAMESET  COLS=*,*>
<FRAME SRC=>
<FRAME SRC= SCROLLING= MARGINWIDTH= MARGINHEIGHT= >

Взаимодействие между фреймами
Взаимодействие между фреймами заключается в возможности загрузки документов в выбранный фрейм по командам из другого фрейма. Для этого используется параметр TARGET тэга <A>. Данный параметр определяет имя фрейма или окна браузера, в которое будет загружаться документ, на который указывает данная ссылка. По умолчанию при отсутствии параметра TARGET документ загружается в текущий фрейм (или окно).
Имена фреймов должны начинаться с латинской буквы или цифры. В качестве имени может задаваться имя существующего окна или фрейма, а может указываться новое имя, под которым будет открыто новое окно.
Имеется четыре зарезервированных имени , при задании которых выполняются специальные действия. Эти имена начинаются с символа подчёркивания (_): "_blank", "_self", "_parent", "_top". Любое другое имя, начинающееся с символа подчёркивания, недопустимо.
TARGET "_blank" – обеспечивает загрузку документа в новое окно. Это окно не будет иметь имени, а следовательно, в него невозможно будет загрузить другой документ.
TARGET "_self" – загрузка документа будет произведена в текущий фрейм или окно.
TARGET "_top" – вызывает загрузку документа в полное окно, "разрушает" фреймовую структуру. Если документ уже находится в полном окне, то данное значение действует так же, как "_self".
TARGET "_parent" – вызывает загрузку документа в область занимаемую фреймом-родителем текущего фрейма. При отсутствии фрейма-родителя данное значение действует так же, как "_top".

Пример 18. Взаимодействие между фреймами
Пример HTML кода В примере создаётся документ из двух фреймов, в один из которых загружается страничка имеющая следующий код: <P FONT SIZE=4>Загрузить документ в ... <OL> <LI><A HREF="test.html" TARGET="B"> Фрейм В</A> <LI><A HREF="test.html" TARGET="_blank">Новое окно</A> <LI><A HREF="test.html" TARGET="_top">Полное окно</A> <LI><A HREF="test.html" TARGET="_self">Текущий фрейм</A> </OL>
  1. Задание 9.
    1. Создать страничку, следущего содержания
      • заголовок: Задание 9.
      • структура страницы : три вертикальных равновеликих фрейма, содержимое фреймов страницы 4.html, 2.html, 3.html;
    2. Сохранить файл в личной папке под именем 9.html
  2. Практическая работа 3.
    1. Используя результаты работы work2.html cоздать страницу со следующей структурой фреймов:
      фрейм 1
      фрейм 2 фрейм 3
      • фрейм 1: тема страницы "Периферийные устройства компьютера";
      • фрейм 2: маркированный список наименований устройств компьютера, каждый элемент списка - гиперссылка на соответствующую страницу, загружаемую во фрейм 3;
      • фрейм 3: статьи об устройствах компьютера.
    2. Сохранить под именем work3.html
© Смирнов Е.А. 2004 г.