4. Формы и фреймы
4.2. Использование фреймов
Фреймы представляют собой независимые области окна броузера. Использование фреймовых структур в HTML-документах, позволяет (в некоторых случаях) существенно упростить просмотр материала и навигацию в Web, за счет удобной организации окна броузера и отделения областей просмотра данных от областей управления документами.
Структура фреймовых HTML документов существенно отличается от привычных нам документов, рассмотренных в предыдущих главах. В фреймовых документах структурный элемент
BODY
...
/BODY
заменяется набором фреймов, определяемым в контейнере <FRAMESET
...</FRAMESET
, и контейнером
NOFRAMES
...
/NOFRAMES
, определяющим альтернативное содержимое документа для пользователей броузеров не поддерживающих фреймы.
Таким образом фреймовый HTML-документ имеет следующую структуру:
Структура фреймового HTML документа
HTML
HEAD
ЗАГОЛОВОК ДОКУМЕНТА
/HEAD
FRAMESET
НАБОР ФРЕЙМОВ
/FRAMESET
NOFRAMES
АЛЬТЕРНАТИВНОЕ СОДЕРЖАНИЕ
/NOFRAMES
/HTML
Как это ни странно, но начнем с конца (чтоб потом не отвлекаться на мелочи) и рассмотрим контейнер
NOFRAMES
...
/NOFRAMES
. Данный контейнер содержит альтернативное содержимое документа отображаемое в окне броузеров не поддерживающих технологию фреймов. Использование данного тега было актуально несколько лет назад, когда фреймы поддерживались только последними версиями MSIE & Navigator, но из вежливости к возможным пользователям продолжайте использовать альтернативный раздел.
Контейнер
NOFRAMES
...
/NOFRAMES
может содержать единственную строку с извинениями, может представлять собой полноформатный элемент тела альтернативного документа, заключенный в контейнер
BODY
...
/BODY
, но более правильно разместить в нем ссылку на альтернативный документ в котором для представления данных используются стандартные средства (например таблицы).
Теперь рассмотрим контейнер
FRAMESET
...
/FRAMESET
который определяет фреймовую структуру документа и содержит элементы фреймы, задаваемые тегом
FRAME
. Тег
FRAMESET
...
/FRAMESET
имеет следующие атрибуты:
- ROWS - описание строк фреймовой структуры (проценты высоты окна броузера, пропорции, высота в пикселах);
- COLS - описание столбцов фреймовой структуры (проценты ширины окна броузера, пропорции, ширина в пикселах);
- FRAMEBORDER - описывает сетку фреймовой структуры (по умолчанию значение YES- трехмерная сетка, NO-без сетки);
- BORDER - ширина сетки фреймовой структуры (по умолчанию значение 5);
- BORDERCOLOR - цвет сетки фреймовой структуры;
Пример:
FRAMESET ROWS="15%, 70%, 15%"
/FRAMESET
- создается фреймовая структура (по умолчанию с сеткой шириной 5 пикселей) из трех строк: первая строка 15% высоты окна броузера, вторая 70% и третья 15%;
FRAMESET COLS="*, 3*" BORDER=3 BORDERCOLOR=GRAY
/FRAMESET
- создается фреймовая структура из двух столбцов: первый ¼ ширины окна броузера, второй ¾ ширины, с сеткой шириной 3 пиксела, цвет сетки - серый;
FRAMESET ROWS="50%, 50%" COLS="50%, 50%" FRAMEBORDER=NO
/FRAMESET
- создается фреймовая структура без сетки из двух столбцов и двух строк, делящих окно броузера на 4 равные части;
Каждый элемент фреймовой структуры описывается при помощи тега
FRAME
, имеющего следующие атрибуты:
- SRC
- URL содержимого фрейма;
- NAME
- имя фрейма (аналогия имени окна броузера), для осуществления доступа к фрейму и обновления его содержимого;
- MARGINHEIGHT
- ширина верхнего и нижнего свободного поля фрейма в пикселях;
- MARGINWIDTH
- ширина левого и правого свободного поля фрейма в пикселях;
- SCROLLING
- полосы прокрутки содержимого фрейма (AUTO/YES/NO, по умолчанию значение - AUTO);
- NORESIZE
- наличием данного атрибута, пользователю запрещается изменять размеры фрейма при просмотре документа (по умолчанию это возможно при помощи мыши);
- FRAMEBORDER
- описывает сетку фрейма (YES/NO);
- BORDERCOLOR
- цвет сетки фрейма;
Пример:
FRAMESET ROWS="15%, 70%, 15%"
FRAME SRC="header.htm" NORESIZE SCROLLING=NO
FRAME SRC="body.htm"
FRAME SRC="footer.htm" NORESIZE SCROLLING=NO
/FRAMESET
Вышеприведенная фреймовая структура делит экран на три продольных части. Верхняя часть
занимает 15% высоты окна броузера ее содержимым является документ - header.htm.
Средний фрейм занимает 70% высоты окна и в него выводится содержание документа - body.htm.
Оставшуюся нижнюю часть окна броузера занимает фрейм, в который выводится содержание
документа - footer.htm.
Верхний и нижний фреймы данной структуры не содержат полос прокрутки содержимого и имеют
постоянный размер. Атрибут NORESIZE для среднего фрейма не задается, поскольку наложив
запрет на изменение размеров прилегающих фреймов мы не сможем изменить размер среднего фрейма.
Возможно использование вложенных фреймовых структур, например следующий код создает фреймовую
структуру содержащую вложенный фрейм.
Пример:
FRAMESET ROWS="15%, 70%, 15%"
FRAME SRC="header.htm" NORESIZE SCROLLING=NO
FRAMESET COLS="*,*"
FRAME SRC="left.htm"
FRAME SRC="right.htm"
/FRAMESET
FRAME SRC="footer.htm" NORESIZE SCROLLING=NO
/FRAMESET
Данный пример является развитием вышеприведенной фреймовой структуры. Область окна броузера (70% высоты), отведенная под средний фрейм, содержит вложенную структуру фреймов разделяющих родительский фрейм на два равных столбца. Для наглядности приведем пример таблицы иллюстрирующей данную структуру фреймов:
Header.htm |
Left.htm | Right.htm |
Footer.htm |
Использование фреймов в HTML документах рассмотрим на конкретном примере. Организуем окно броузера следующим образом: в верхней и нижней части разместим стационарные фреймы для заголовка и итоговой части страницы, среднюю часть окна броузера разделим на две части, левую - навигационный фрейм и правую - фрейм просмотра данных. Фрейму просмотра данных, используя атрибут NAME, зададим имя и укажем его как имя окна назначения (См. раздел 2.2.) во всех ссылках навигационного фрейма, используя атрибут TARGET.
Пример 9. Использование фреймов. [просмотр примера в окне]
Главный документ фреймовой структуры.
HTML
HEAD
TITLE
Демонстрация технологии фреймов
/TITLE
/HEAD
FRAMESET ROWS="25%, 50%, 25%" BORDERCOLOR=RED
FRAME SRC="header.htm" NORESIZE SCROLLING=NO
FRAMESET COLS="20%,80%"
FRAME SRC="navig.htm"
FRAME SRC="empty.htm" NAME=field
/FRAMESET
FRAME SRC="footer.htm" NORESIZE SCROLLING=NO
/FRAMESET
NOFRAMES
H1
Обновите броузер и вы увидите фреймы
/H1
/NOFRAMES
/HTML
Документ - header.htm
HTML
HEAD
TITLE
/TITLE
/HEAD
BODY BGCOLOR ="WHITE", TEXT="RED", LINK="BLUE", ALINK="RED", VLINK="NAVY"
P align=center
IMG SRC="blod.gif" ALT="кровавая река"
H1 align=center
Ужасы нашего городка
/H1
/BODY
/HTML
Документ - footer.htm
HTML
HEAD>
TITLE>
/TITLE
/HEAD
BODY BGCOLOR ="WHITE", TEXT="RED", LINK="BLUE", ALINK="RED", VLINK="NAVY"
P align=center
IMG SRC="blod.gif" ALT="кровавая река"
P ALIGN=CENTER
A HREF="mailto:[email protected]"
Пришлите свою историю
/A
/BODY
/HTML
Навигационный фрейм - navig.htm
HTML
HEAD
TITLE
/TITLE
/HEAD
BODY BGCOLOR ="WHITE", TEXT="RED", LINK="BLUE", ALINK="RED", VLINK="NAVY"
UL
p
LI
a href="horror1.htm" target=field
Ужас 1
/a
p
LI
a href="horror2.htm" target=field
Ужас 2
/a
p
LI
a href="horror3.htm" target=field
Ужас 3
/a
/UL
/BODY
/HTML
Фрейм область просмотра данных - empty.htm
HTML
HEAD
TITLE
/TITLE
/HEAD
BODY BGCOLOR ="WHITE", TEXT="RED", LINK="BLUE", ALINK="RED", VLINK="NAVY"
/BODY
/HTML
Документ для просмотра - horror1.htm
HTML
HEAD
TITLE
/TITLE
/HEAD
BODY BGCOLOR ="WHITE", TEXT="RED", LINK="BLUE", ALINK="RED", VLINK="NAVY"
H2
Ужасная история №1
/H2
Здесь я вам расскажу очень страшную истории, в которую я попал будучи
в командировке, в городе ....
/BODY
/HTML
Документ для просмотра - horror2.htm
HTML
HEAD
TITLE
/TITLE
/HEAD
BODY BGCOLOR ="WHITE", TEXT="RED", LINK="BLUE", ALINK="RED", VLINK="NAVY"
H2
Ужасная история №2
/H2
Здесь я вам расскажу очень страшную истории, в которую я попал будучи
в изрядном подпитии ....
/BODY
/HTML
Документ для просмотра - horror3.htm
HTML
HEAD
TITLE
/TITLE
/HEAD
BODY BGCOLOR ="WHITE", TEXT="RED", LINK="BLUE", ALINK="RED", VLINK="NAVY"
H2
Ужасная история №3
/H2
Здесь я вам расскажу очень страшную истории, в которую я попал будучи
в компании администраторов NT ....
/BODY
/HTML
Вышеприведенный пример наглядно демонстрирует как технологию фреймов использовать
для совершенствования ваших документов. В окне броузера формируются стационарные области
управления документами (навигационные фреймы) и области просмотра, в которых
динамически меняется содержимое. Подобным образом организованы очень многие Web-сайты.