Опубликован: 19.03.2007 | Уровень: для всех | Доступ: свободно
Лекция 10:

Использование фреймов

Атрибут src

Фрейм может загружать в начале страницу Web, адрес URL которой определяют в атрибуте src="url". Задание этого атрибута гарантирует, что при первом выводе окна фрейм не будет пустым. Загружаемый предварительно во фрейм документ может быть локальным на сайте, или URL может указывать на внешний документ.

Следующий код показывает, что документ с именем Menu.htm загружается в начале в левом фрейме множества фреймов, а документ с именем Home.htm загружается в правый фрейм. Предполагается, что документы находятся в том же каталоге, что и страница frameset.

<frameset cols="20%,80%">
  <frame src="Menu.htm"/>
  <frame src="Home.htm"/>
</frameset>
Листинг 10.5. Предварительная загрузка фреймов страницами Web

Атрибут name

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

Имена фреймам присваиваются с помощью атрибута name. В следующем примере двум фреймам из frameset присваиваются имена "Frame1" и "Frame2". Позже будет показано, как загрузить в эти фреймы другие документы.

<frameset cols="20%,80%">
  <frame name="Frame1" src="Menu.htm"/>
  <frame name="Frame2" src="Home.htm"/>
</frameset>
Листинг 10.6. Фреймы с именами

Атрибут noresize

Когда границы фреймов видимы, они являются также перемещаемыми. Когда курсор мыши перемещается на границу, то изображение курсора изменяется и пользователь может перетащить границу, чтобы изменить размер фрейма. Обычно желательно, чтобы настройка фреймов оставалась фиксированной и страницы появлялись в том виде, как это предполагалось. Поэтому, чтобы пользователи не могли изменять размеры фреймов, в теге <frame/> используется атрибут noresize, как показано ниже.

<frameset cols="20%,80%">
  <frame name="Frame1" src="Menu.htm" noresize/>
  <frame name="Frame2" src="Title.htm"/>
</frameset>
Листинг 10.7. Запрет перемещения границ

Задание noresize для левого фрейма имеет в результате запрет на изменение размера правого фрейма, так как они совместно используют одну границу.

Атрибут scrolling

Атрибут scrolling="auto|yes|no" позволяет создать фрейм с выводом или без вывода панелей прокрутки. По умолчанию фреймы выводят панели прокрутки, когда документ слишком большой и не помещается во фрейме.

Значением по умолчанию является scrolling="auto". Можно изменить это значение на scrolling="yes", чтобы всегда выводить горизонтальную и вертикальную полосу прокрутки, даже если документ умещается во фрейме. Можно также задать scrolling="no", чтобы отключить вывод панелей прокрутки, даже если документ слишком большой для фрейма. Как правило, надо всегда разрешать прокрутку документа, если нет убедительных причин этого не делать. Одним из случаев подавления прокрутки может быть верхний фрейм, содержащий баннер или заголовок без дополнительно содержимого.

Атрибут marginwidth

Как и в случае полноразмерного окна браузера, информация выводится во всем фрейме, начиная от левого края до правого края с небольшим зазором свободного пространства, отделяющим текст от границ. Можно улучшить удобочитаемость документа, задавая поля с каждой стороны текста с помощью атрибута marginwidth="n". Значение атрибута задает число пикселей свободного пространства между документом и левой и правой границами фрейма.

Атрибут marginheight

Таким же образом поля можно ввести сверху и снизу документа с помощью атрибута marginheight="n". Значение в пикселях указывает величину свободного пространства между документом и нижним и верхним краем фрейма. Альтернативой использованию атрибутов marginwidth и marginheight является применение таблиц стилей для задания полей документов, которые выводятся во фрейме.

Вложенные фреймы

Приведенные выше примеры описывают один набор фреймов, содержащий два столбца или две строки фреймов. Можно, помещая один набор фреймов в другой набор фреймов, определять более сложные организации фреймов. Типичный пример показан ниже. Верхний фрейм доступен для вывода баннера логотипа, определяющего сайт, левый фрейм - для меню ссылок и правый фрейм - для документов, соединяемых из фрейма меню.

Вложенный frameset

Рис. 10.4. Вложенный frameset

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

<frameset rows="15%,85%">
  <frame name="Frame1" src="Banner.htm"/>

  <frameset cols="20%,80%">
    <frame name="Frame2" src="Menu.htm"/>
    <frame name="Frame3" src="Document.htm"/>
  </frameset>

</frameset>
Листинг 10.8. Код вложенных фреймов

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

Елена Сапегова
Елена Сапегова

После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть?

Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!