Понятие фрейма в HTML | Сам Себе Вебмастер

Понятие фрейма в HTML

FRAME

Окно браузера может быть разделено на части, которые называются фреймами, иногда кадрами; можно их назвать и подокнами. В каждую такую часть окна браузера, т.е. фрейм, может быть загружен отдельный HTML документ. Рассмотрим пример окна браузера с тремя фреймами.

Fr2

 

В каждый фрейм в этом случае для наглядности загружен простой HTML документ, сообщающий номер фрейма и название файла, хранящего его содержимое. Если в фрейм будет загружен реальный документ, который не помещается полностью в нем, то у фрейма (внимание, не у всего окна!) появятся вертикальная и/или горизонтальная полосы прокрутки в зависимости от того, по горизонтали и/или по вертикали не помещается содержимое документа.
Например, дизайн и структура вашего сайта таковы, что есть одинаковые элементы, повторяющиеся на каждой странице сайта: название, навигационное меню, адрес в конце страницы или какие-то иные подобные элементы. Изменяется только содержание разделов. Тогда страницы можно разбить на части таким образом, чтобы неизменяемые части были помещены в отдельные фреймы, а еще один фрейм выделить для того, чтобы в него загружалось содержимое нужного раздела после щелчка на соответствующей ссылке, например, из меню.
Это дает экономию в скорости загрузки, так как одинаковые части страниц сайта повторно не загружаются, а просто все время отображаются в отведенных им фреймах.

Создание структуры фреймов элемент FRAMESET

Структура разбивки окна хранится в отдельном HTML документе, он и называется документом с фреймами. Структура фреймов формируется при помощи специального элемента FRAMESET. Обычный документ имеет один раздел HEAD и один раздел BODY, тогда как в документе с фреймами раздел BODY заменяется описанием структуры фреймов, Т.е. разделом FRAMESET.
В раздел FRAMESET может быть добавлен элемент NOFRAME с альтернативным содержанием для отображения в браузерах, не поддерживающих фреймы, или в браузерах с отключенной поддержкой фреймов. Такие браузеры просто не поймут структуры FRAMESET и NOFRAME, а отобразят помещенный внутри них текст.

<HТМL>
 <HEAD>
 <TITLE>Простой документ с фреймами</ТIТLЕ>
 </HEAD>
 <FRAМESET >
 ...описание структуры фреймов ...
 <NOFRAМES>
 Альтернативное содержание для браузеров, не поддерживающих фреймы
 </NOFRAМES>
 </FRAМESET>
</HТМL>

Обратите внимание, что раздел BODY в документе отсутствует полностью, а элемент NOFRAMES содержится внутри раздела FRAMESET.
Сама структура фреймов формируется делением окна браузера на части - строки и колонки; В какой-то степени это похоже не создание таблиц. Для этого у элемента FRAMESET существуют атрибуты cols и rows, задающие деление на колонки и строки соответственно.
Единицы измерения, в которых можно задавать размеры фреймов, это, как обычно, пиксели и проценты. Есть еще возможность задавать размер в новой пока для нас единице измерения, которую условно можно назвать «часть» окна. Значения атрибутов cols и rows задаются перечислением размеров соответствующих областей через запятую. Можно комбинировать разные способы задания. Рассмотрим несколько примеров, исходя из предположения, что размер окна браузера 800х600 пикселей.

<FRAМESET rows= "50%, 50%">
 . . . продолжение определения структуры фреймов. . .
</FRAМESET>

Такой код поделит окно по горизонтали на два одинаковых по высоте фрейма (строки). Если задать атрибут cols=» 50%, 50%», то получим две одинаковые по ширине колонки.

<FRAМESET cols= "120, 400. *">
 . . . продолжение определения структуры фреймов. . .
</FRAМESET>

При таком коде получим три колонки фреймов: левая шириной 120 пикселей, средняя  шириной 400 пикселей, а на третью колонку отводится все, что останется от первых двух колонок,  в атрибуте это значение обозначается символом звездочки «*».

<FRAМESET cols= "1*, 4*">
 . . . продолжение определения структуры фреймов. . .
</FRAМESET>

Такой код создаст две колонки фреймов. Ширина первой принимается за единицу (это обозначается как 1 * или просто *), ширина второй в четыре раза больше. Таким образом, ширина первой будет 20%, а ширина второй  80% от общей ширины окна браузера.

<FRAМESET cols= "100, 40%, *">
 . . . продолжение определения структуры фреймов...
</FRAМESET>

В приведенном мере комбинируются все три способа задания размеров. Ширина первой колонки будет равна 100 пикселей, для второй отводится 40% оставшейся ширины (800 — 100 = 700), и на третью остается все, что не занято первой и второй колонками.
Раздел FRAMESET может содержать вложенные разделы FRAMESET, что позволяет создать довольно сложную структуру фреймов. Допустим, нам надо разделить окно на 4 фрейма следующим образом:

Fr-1

Сначала необходимо организовать 2 колонки таким образом:

cols= "100, * "

Затем вторую колонку поделить на три строки таким образом:

rows=" 80, *, 30"

Отдельный фрейм, точнее его описание, задается элементом FRAME и его атрибутами: подробнее о нем чуть позже. Вернемся к вложенным элементам FRAMESET. Рассмотрим пример кода, создающего такую структуру фреймов:

<FRAМESET cols= "100, * ">
    <FRAМE name= "framel" src= "framel.html">
  <FRAМESET rows= "80, *, 30">
    <FRAМE name= "frame2" src= "frame2.html">
    <FRAМE name= "frame3" src= "frame3.html">
    <FRAМE name= "frame4" src= "frame4.html">
  </FRAМESET>
</FRAМESET>

Каким образом разбивается окно на фреймы, вроде бы разобрались. При создании фреймов можно сделать так, чтобы границы между фреймами видно не было. Как вы, наверное, уже догадались, делается это при помощи атрибута border  его значение должно равняться нулю. Но дело в том, что для фреймов этот атрибут не воспринимается браузером Internet Explorer, зато поддерживается браузером Netscape Navigator. Для In ternet Explorer граница между фреймами задается атрибутом frameborder, который не поддерживается браузером Netscape Navigator. Получается, что необходимо задавать одинаковые значения для обоих атрибутов, чтобы оба браузера восприняли HTML код одинаково и толщина границ между фреймами была одинаковой.
Толщину границ или, по-другому, расстояние между фреймами также можно регулировать атрибутом framespacing, значение которого задается в пикселях. Все атрибуты элемента FRAMESET приведены в таблице.

Атрибуты элемента <FRAMESEТ>

 

Атрибут

Описание

Пример

rows Определяет количество и размеры горизонтальных фреймов (фреймовстрок) в окне браузера. В качестве значения задается список размеров фреймов через запятую. Способы задания размеров:

а) в процентах от высоты рабочей области окна браузера  например: "30%, 30%, 40%";

б) в виде знака «*» (звездочка), говорящего о том, что фрейм занимает все свободное пространство окна браузера, незанятое другими фреймами с явно указанными размерами  например, звездочка в записи "25%, 25%, *" равносильна 50%;

в) в пикселях  например: "75, *".

Все три способа можно совмещать.

rows= "25%, 25%, *"
cols Определяет количество и размеры вертикальных фреймов (фреймовстолбцов) в окне браузера. В качестве значения
задается список размеров фреймов через запятую. Размеры задаются так же, как и в предыдущем параметре ROWS.
cols= "265, *"
border Определяет ширину рамок фреймов в пикселях. Данный параметр действует только в браузерах Netscape. Border= "0"
frameborder Данный параметр действует только в браузерах lnternet Explorer и определяет наличие рамок у содержащихся внутри элемента FRAMESET фреймов. Возможные значения: Yes  отображать рамки; No или 0  не отображать рамки. Frameborder= "0"
framespacing Определяет расстояние (так называемую «серую область») между фреймами в пикселях. Данный параметр также необходим для создания фреймов без рамок. framespacing= "0"

Теперь вернемся к элементу FRAME, который описывает отдельный фрейм внутри всей структуры. Обязательный параметр для него — атрибут src, который задает URL HTML — документа или изображения для отображения в этом фрейме. Также лучше задать фрейму имя при помощи атрибута name. Это позволит использовать данное имя в качестве значения атрибута target элемента А и управлять тем, в какой фрейм должна загружаться ссылка. Имена фреймов не могут начинаться с цифр, в качестве начальных символов допустимы только буквы латинскою алфавита (az, AZ).

Когда в структуре фреймов не задана рамка между фреймами, их содержимое может слишком плотно примыкать друг к другу, что будет не очень красиво выглядеть. Если хотите раздвинуть содержимое фреймов и при этом все-таки не включать отображение границ между ними, то это можно сделать, задав внутри фреймов отступы. Размер этих отступов задается в пикселях и попарно: для отступов сверху и снизу атрибутом marginheight,
а для отступов справа и слева  атрибутом marginwidth. Тогда расстояние между содержимым соседних фреймов будет равно сумме соответствующих отступов этих фреймов.

Должна ли отображаться рамка вокруг отдельною фрейма, определяется его атрибутом frameborder. Значение yes (или 1) говорит о том, что рамка должна быть, значение no (или 0) указывает, что рамки быть не должно.
Пользователь может изменять размер фреймов, созданный HTML документом. Для этого достаточно подвести курсор мыши к границе фреймов (неважно, видны эти границы или нет) и стандартным для операционной системы способом изменить размер окна.
В Windows курсор мыши примет вид двунаправленной черной стрелки. Нажав левую кнопку мыши, можно передвинуть границу окна. Аналогично можно изменить и размер фрейма, поскольку фрейм  это тоже окно. Если вы рассчитали размеры своих фреймов и не хотите, чтобы пользователь менял их, задайте атрибут noresize. В результате изменение размеров будет запрещено.
Как мы уже говорили ранее, полосы прокрутки у фрейма появляются в том случае, если его содержимое в заданных его границах полностью не помещается. Наличие полос прокрутки регулируется атрибутом scrolling. Допустимы три значения yes, no и auto.
Значение auto соответствует автоматическому появлению полос прокрутки в тех случаях, когда это действительно необходимо. Если содержимое видно и так, полос прокрутки нет, если часть содержимого не помещается  появляется нужная полоса прокрутки.
Значение yes включает обе полосы прокрутки  независимо от того, нужны они или нет. Иногда это может выглядеть не очень красиво.
Значение no запрещает показывать полосы прокрутки совсем. Будьте осторожны с этим значением, поскольку при его указании можете лишить пользователя возможности увидеть все содержимое фрейма, Когда оно не помещается в нем полностью. Все атрибуты элемента FRAME приведены в таблице.

Атрибуты элемента <FRAME>

Атрибут

Описание

Пример

src Обязательный параметр. Указывает адрес (URL) HTL
файла, отображаемого в данном фрейме
src= "frame2 .html"
name Определяет имя данного фрейма, которое будет в дальнейшем использоваться для ссылки на него из других документов с помощью атрибута target (см. элемент А). В качестве значения нужно указать любое имя без пробелов с использованием латинских символов и цифр
(начальными символами могут быть только буквы латинского алфавита: a-z, A-Z). Имя не должно начинаться с цифр и специальных символов. Зарезервированные имена фреймов начинаются со знака подчеркивания.
name= "menu1"
marginwidth Определяет ширину (в пикселях) левого и правого полей фрейма. Если параметр не указан, браузер самостоятельно определит оптимальный размер отступа. marginwidth= "0"
marginheight Определяет ширину (в пикселях) верхнего и нижнего полей фрейма. Если параметр не указан, браузер самостоятельно определит оптимальный размер отступа. marginheight= "0"
scrolling Определяет наличие полос прокрутки содержимого фрейма. Возможные значения:
yes — отображать полосы прокрутки;
no — не отображать полосы прокрутки;
auto — отображать полосы прокрутки при необходимости (если документ, указанный в параметре SRC, не умещается во фрейме)
scrolling= "auto"
noresize Не позволяет изменять размеры фрейма. Данный параметр является флагом и не требует указания значения. noresize
frameborder Определяет наличие рамок у фрейма. Возможные значения:
yes или 1 - отображать рамки;
no или 0 - не отображать рамки.
frameborder= "0"
Дата обновления: 21.08.2016 — 20:46

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

SamSebeWebmaster.ru © 2016, все права защищены.