Фреймы (англ. Frame - рамка, структура) это области, на которые разделяется страница, отображаемая в окне браузера. Например, Вы можете разделить окно на два вертикальных фрейма. Один узкий слева, а другой широкий справа. В левом у Вас буде меню, а в правом - содержание страницы. Когда текста будет очень много, что прийдется прокручивать страницу вниз, меню будет оставаться неподвижным. Прокрутка в данном случае относится только к правой части страницы (фрейму), а левая часть (фрейм) остается на месте (у него своя прокрутка).
Для начала разберемся, как создавать фреймы:

Для вышеприведенной страницы нам понадобится четыре файла. Почему четыре?
Файл main_frame.htm служит для объелинения трех файлов-фреймов. Верхний и два нижних фрейма - это отдельные HTML файлы.
Это более понятно со следующей схемы:

Теперь займемся написанием кода:
Разбираем код программы
В листингах top_frame.htm, left_frame.htm и right_frame.htm Вы врядли найдет что-то новенькое. Так что сразу перейдем к разбору main_frame.htm :
Тег <FRAMESET> объявляет область, в которой будут размещатся фреймы. В данной ситуации он аналогичен тегу <BODY>.
Командой <FRAMESET rows="20%, 80%"> мы говорим, что нам необходимо 2 горизонтальные (атрибут rows) области (2 ряда), первая(верхняя) из которых будет занимать 20%, а вторая(нижняя) 80% пространства страницы.
Далее команда <FRAME src="top_frame.htm"> указывает, какой файл использовать для верхней области (фрейма). Поскольку нижнюю область мы хотим разделить на 2 вертикальных фрейма, то далее вновь используем FRAMESET: <FRAMESET cols="22%, 78%">, атрибут cols говорит, что нужны вертикальные фреймы (колонки). Далее определяем файлы для левого и правого фрейма:
<FRAME src="left_frame.htm">
<FRAME src="right_frame.htm">
После того, как мы создали все фреймы желательно определить область <NOFRAMES>...</NOFRAMES>. Информация между этими тегами будет выводится в случае, когда браузер на поддерживает фреймы.
Также мы встретили два атрибута:
noresize запрещает изменять размеры данного фрейма, перетягивая его границы стрелкой мышки.
scrolling="yes" отображает или скрывает ("no") полосу прокрутки в данном фрейме.
Теперь, когда мы разобрались, как создавать фреймы, создадим шаблон мини-сайта с использованием фреймов. В этом примере вы увидете, как заставить работать меню во фреймах.
Следующая схема показывает устройство и работу будущей структурв фреймов.

Теперь - код, и конечній результат:


Разбираем код программы
В этом примере следует обратить внимание на два файла: main.htm, left.htm.
В файле main.htm мы видим уже знакомый по предыдущему примеру <FRAMESET>, в нем указываем две равные колонки COLS="50%, 50%". Если вы измените атрибут COLS на ROWS, то, естественно, получите два рядка:
А теперь очень важный момент! В месте, где мы определяем файлы левого и правого фреймов, необходимо! назначить им имена:
<FRAME src="left.HTM" NAME="left">
<FRAME src="right.HTM" NAME="right">
Имена могут быть любыми, но лучше, если они будут соответствовать именуемым объектам.
Мы назначили фреймам имена, для того, чтобы потом указать ссылкам в каком фрейме отображать новые страницы.
Теперь рассмотрим, как указаны ссылки в файле left.htm. Атрибут TARGET="right" указывает, что файл по этой ссылке открывать во фрейме с именем right. Таким образом, при выборе пунктов меню, меняется только правая часть, а левая(меню) остается неизменной.
 |
На данный момент существуют как приверженцы, так и противники использования фреймов. Вторых, как показывает статистика, больше. Нелюбовь к фреймам вызвана проблемами с их отображением в разных версиях браузеров и, в первую очередь, неудобством для пользователя. Ведь фрейм, можно сказать, уменьшает рабочую область страницы и приходится пользоваться прокруткой там, где этого можно было бы избежать. Но, как говорят "все хорошо вмеру". Бывают ситуации, когда лучшим решением проблемы будет именно фрейм.
|
 |
ПОДВОДИМ ИТОГИ. Справочник тегов.
| <FRAMESET> |
• Определяет набор фреймов.
• Синтаксис
<FRAMESET>...</FRAMESET>
• Совместимость
NN 2.0+ • MSIE 3.0+; • Opera 3.0+; • HTML 4.0;
• Атрибуты
border = <размер> определяет размер (в пикселах) границы(рамки) фреймов.
bordercolor = <цвет> определяет цвет границы фреймов.
cols = <проценты, ...> определяет количество и размер столбцов в области FRAMESET.
rows = <проценты, ...> определяет количество и размер строк в области FRAMESET.
frameborder = <1|0 (MSIE 3.0+) | yes|no (NN 3.0+ и MSIE 4.0)> определяет разделитель между фреймами.
|
| <FRAME> |
• Определяет набор фреймов.
• Синтаксис
<FRAME>
• Совместимость
NN 2.0+ • MSIE 3.0+; • Opera 3.0+; • HTML 4.0;
• Атрибуты
bordercolor = <цвет> определяет цвет границы фрейма.
frameborder = <1|0 (MSIE 3.0+) | yes|no (NN 3.0+ и MSIE 4.0)> определяет разделитель между фреймами.
src = <url> определяет путь к html файлу для фрейма.
scrolling = <yes|no|auto> определяет наличие полосы прокрутки во фрейме.
noresize запрещает изменение размеров фрейма пользователем.
marginwidth = <размер> определяет растояние между левым и правым краями фрейма и его содержанием.
marginheight = <размер> определяет растояние между верхним и нижним краями фрейма и его содержанием.
|
| <NOFRAMES> |
• Определяет информацию, которая будет выводится в случае, когда браузер не поддерживает фреймы. Если браузер поддерживает фреймы, то эта информация будет игнорироваться.
• Синтаксис
<NOFRAMES>...</NOFRAMES>
• Совместимость
NN 2.0+ • MSIE 3.0+; • Opera 3.0+; • HTML 4.0;
|
|