Фреймы

Благодаря компании Netscape® Communication появилась возможность расширить класическую структуру HTML путём добавления фреймов. Фреймы позволяют разбить рабочую область браузера на несколько независимых областей. При этом в каждый фрейм имеется возможность загрузить отдельную веб-страницу, которая может быть расположен в любом каталоге локального или удалённого сервера. Нажатие по ссылке в одном фрейме может изменять содержимое в другом.

Фреймовая структура позволяет, например, разместить логотип, который при прокрутке основной части контента будет оставаться на экране, или разместить меню так, что его размещение на каждой веб-странице не потребуется, но при этом его видимость сохранится на любой странице веб-сайта.

Описание фреймовой структуры

Cтруктура фреймов описывается контейнером FRAMESET, который определяет число, размеры и расположение фреймов на рабочей области браузера.

Фреймы размещаются одиночным тегом <FRAME>.

Количество и высота фреймов в столбце задаётся атрибутом ROWS контейнера FRAMESET, которому присваивается список значений обозначающих высоту фрейма. Количество и ширина фреймов в строке задаётся атрибутом COLS контейнера FRAMESET, которому присваивается список значений обозначающих ширину фрейма. Высота и ширина фрейма может быть указана в пикселах, процентах от соответствующего параметра экрана либо относительной величиной, обычно равной остатку, причём в одном списке можно комбинировать значения разных форматов. Список значений заключается в кавычки, а сами значения отделяются друг от друга запятыми и пробелами.

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

Подготовка содержимого фрейма

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

Выбор целевого фрейма для ссылок, активных областей и результатов обработки форм осуществляется путём присвоения атрибуту TARGET соответствующих элементов его имени.

Описание фрейма

Т.к. фрейм не является контейнером и не имеет закрывающего тега, Описание тега производится при помощи его атрибутов.

Фрейм может иметь собственное имя, которое задаётся атрибутом NAME, но оно не обязательно, если фрейм не явдяется целевым для какой-либо ссылки. Имя фрейма обязательно должно начинаться с буквы или цифры.

Величина горизонтального отступа содержимого фрейма от его границ устанавливается атрибутом MARGINWIDTH. Значение этого атрибута не может быть менее 1, а значение по умолчанию равно 6.

Атрибут MARGINHEIGHT аналогичен атрибуту MARGINWIDTH, но устанавливает величину вертикального отступа.

Управление полосой прокрутки производится с помощью атрибута SCROLLING.

По умолчанию атрибут SCROLLING находится в состоянии auto.

Границы фреймов пользователь может перемещать самостоятельно, но в случае добавления атрибута NORESIZE положение границ фреймов становится статичным.

URL содержимого фрейма задаётся атрибутом SRC. Если фрейм не имеет такого атрибута, то изначально он будет пустым.

Фреймовая структура выглядит следующим образом:

<HTML>
 <HEAD>
  Содержимое контейнера
 </HEAD>
 <FRAMESET параметры>
  <FRAME SRC="URL_web-страницы" параметры>
  <FRAME SRC="URL_web-страницы" параметры>
  ...
  <NOFRAMES>
   ...
  </NOFRAMES>
 </FRAMESET>
</HTML>

Стоит отметить, что фреймовая структура не содержит контейнера BODY.

Альтернативная версия

Не все браузеры имеют поддержку фреймов. В связи с этим для посетителей с подобным браузером необходимо показать альтернативную версию страницы адаптированную для отображения в классическом режиме или предупреждающую о наличии фреймовой структуры и рекомендующую воспользоваться браузерами с поддержкой таких функций.

В HTML существует механизм обеспечивающий распознавание таких ограничений в работе браузера и отображение альтернативной версии. Для этого в HTML-документе необходимо поместить контейнер NOFRAMES.

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

Плавающий фрейм

Плавающим называется фрейм, который встраивается в тело веб-страницы с классической структурой. Плавающий фрейм размещается тегом <IFRAME>.

Достоинства фреймовой структуры веб-страницы

Разделение рабочей области браузера на область навигации и область контента с возможностью загружать контент в область контента по ссылке из навигационной области — логично и интуитивно понятно.

Фреймовая структура позволяет разделить веб-страницы на части и тем самым экономить объём загружаемой информации, что в свою очередь ускоряет загрузку.

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

Размер фреймов можно изменять после отображения веб-старницы в рабочей области браузера.

Обновлено: 12:30 18.11.2019

Назад

©Tumaliev R.