Кадровая структура
В каком-то смысле кадры (frames) - это
окошки или рамки вокруг картинок. При вводе тега <FRAME>,
Вы выделяете отдельную область на экране браузера. Другими словами
браузер загружает разные страницы в разные секции, или кадры,
экрана. Например, Вы можете построить
страницу таким образом, что какая-то ее часть с важной информацией
будет зафиксирована в верхней части экрана, а остальная часть -
пролистывается обычным способом. Или еще. Можно расположить сбоку
кнопки навигации, которые не перемещаются, и если кликать их мышкой,
изменится только другая часть экрана, а сама полоска навигации остается
неподвижной.
Чтобы было легче разобраться с кадрами, можно
провести аналогию с ячейками таблицы. Расположение кадров на экране
задается почти также, как ячеек в таблице. Однако содержимое ячейки
задано в коде страницы с таблицей. Текст и графика, составляющие
содержимое таблицы, набираются в коде той же самой страницы,
что и теги таблицы. С кадрами немного по-другому. Экран с кадрами
описывается в одной странице, называемой кадровая структура
(frameset), а содержимое кадра - это совсем отдельная
(самостоятельная) страница, которая может находиться где угодно - в
другом каталоге или вообще на другом узле сети. Кадровая структура
определяет только способ организации экрана с кадрами и указывает,
где находится начальное содержимое каждого кадра. Для всех кадров
задаются URL, описывающие местонахождения их данных. На
странице с кадровой структурой нет содержимого кадров (она описывает
только кадровую структуру экрана). Когда документ загружается в кадр,
Вы можете кликать мышкой на ссылке в этом документе, что вызовет
появление связанных документов в других кадрах, заданных в кадровой
структуре.
Итак приступим. Для начала мы должны представить
себе общий вид страницы - где и какого размера будут кадры. Затем можно
подумать об их содержании.
Сейчас будет приведен пример кадровой структуры,
в смысл которого, пока, трудно вникнуть. Это не беда. Делается это для
того, чтобы дальше последовательно (от тега к тегу) разобрать его.
<HTML>
<FRAMESET ROWS="100,*">
<FRAME SRC="meny.htm">
<FRAME SRC="text.htm" NAME="main">
</FRAMESET>
<NOFRAMES>
<BODY>
Ваш броузер не поддерживает кадровую
структуру, если возможно, то включите режим кадров.
Также Вы просто можете посетить наши основные разделы:
первый раздел
второй раздел
</BODY>
</NOFRAMES>
</HTML>
Что же мы видим: первые и основные теги кадровой
структуры - это теги <FRAMESET> и
</FRAMESET>. Эти теги обрамляют текст,
описывающий компоновку кадров. Здесь размещается информация о числе
кадров, их размерах и ориентации (горизонтальной или вертикальной). У
тега <FRAMESET> только два возможных
параметра: ROWS=, задающий число строк, и
COLS=, задающий число столбцов. Между
тегами <FRAMESET> не должно быть
никаких тегов или параметров, которые обычно используются между тегами
<BODY>. Единственными тегами, которые
могут находиться между тегами <FRAMESET>,
являются теги <FRAME> и
<FRAMESET>. В основном все связано с
тегами <FRAME> и их параметрами. Если
же Вы хотите поэкспериментировать, то можно делать и вложенные друг в
друга теги <FRAMESET> аналогично тегам
<TABLE>.
Параметры ROWS= и
COLS= похожи. Имейте в виду, что для
каждой строки и столбца, упомянутых в теге
<FRAMESET>, должен быть свой набор
тегов <FRAME>.
Как говорилось выше - параметр
ROWS= тега
<FRAMESET> задает число и размер
строк на странице. Количество тегов <FRAME>
должно соответствовать указанному числу строк. Справа от знака "равно"
можно определить размер каждой строки в пикселах, процентах от высоты
экрана или в относительных величинах (обычно это указание занять
оставшуюся часть места). Не забывайте проставлять все кавычки, запятые
и оставлять пробелы между значениями параметров. Например, следующая
запись формирует экран, состоящий из трех строк: высота верхней = 200
пикселов, средней = 300 пикселов, нижней = 20 пикселов:
<FRAMESET ROWS="200, 300, 20">
Следующий пример создает экран, на котором
верхняя строка занимает 15% высоты экрана, средняя - 60%, а нижняя -
25%:
<FRAMESET ROWS="15%, 60%, 25%">
Можно задать и относительные
значения в комбинации с фиксированными, выраженными в процентах или
пикселах. Следующий пример создает экран, на котором верхняя строка
имеет высоту 200 пикселов, средняя - 300 пикселов, а нижняя занимает все
оставшееся место:
<FRAMESET ROWS="200, 300, *">
А можно сделать и так:
<FRAMESET ROWS="200, 2*, *">
Число перед знаком * показывает, что
соответствующая строка (в данном случае - средняя) занимает в два раза
больше оставшегося места на экране, чем нижняя. Не забудьте, что
значения относительны (они зависят от размера экрана пользователя).
Столбцы COLS=
задаются так же, как строки. Для них применимы те же параметры.
Дальше в нашем примере идет тег
<FRAME>. Он определяет внешний вид и
поведение кадра. Этот тег не имеет парного тега. Вся суть тега
<FRAME> в его параметрах. Их шесть:
NAME=,
MARGINWIDTH=,
MARGINHEIGHT=,
SCROLLING=,
NORESIZE,
SRC=.
Если Вы хотите, чтобы при клике мыши на ссылке
соответствующая страница отображалась в определенном кадре, то Вы
должны указать этот кадр, чтобы браузер знал, куда что загружать.
Кадр, в котором отображаются страницы, называется целевым (terget).
В нашем примере это второй кадр и ему мы как раз присвоили имя:
NAME="main".
Кадры, которые не являются целевыми, именовать не обязательно.
Имена целевых кадров должны состоять из букв латыни и/или чисел.
Параметр MARGINWIDTH=
действует аналогично параметру таблиц
CELLPADDING=. Он задает отступ между
содержимым кадра и его границами. Наименьшее его значение равно 1
пикселу.
Параметр MARGINHEIGHT=
действует так же, как и MARGINWIDTH=. Он
задает поля в верхней и нижней части кадра. Наименьшее его значение
также равно 1 пикселу.
Параметр SCROLLING=
отвечает за полосу прокрутки у кадра. Он может принимать значения:
YES - полоса всегда присутствует
NO - полосы никогда не будет
AUTO - полоса появится по мере надобности
Как правило, пользователь может, перемещая
границу кадра мышкой, изменять его размер. Вы можете запретить ему это
делать параметром NORESIZE.
Параметр SRC=
применяется для того, чтобы определить, какая страница (на начальном
этапе) должна появиться в том или ином кадре.
Вернемся к нашему примеру. Далее в нем появляется
тег <NOFRAMES>.
У некоторых пользователей еще остались
браузеры, не умеющие обращаться с кадрами. Может быть и просто: в
браузере отключен режим кадров (а вдруг кто-то просто не любит кадры).
Поэтому можно к кадровой структуре добавить версию (например, основных
страниц) без кадров. Если пользователь с устаревшим браузером
окажется на Вашей странице с кадровой структурой, то все, что находится
на ней между тегами <NOFRAMES>, будет
выглядеть отлично - браузер просто проигнорирует кадры. И наоборот,
браузер, поддерживающий кадры проигнорирует все, что находится между
тегами <NOFRAMES>.
Осталось разобраться с параметром
TARGET= тега
<A HREF="URL">
ссылка
</A>. Его необходимо разобрать потому,
что осталось непонятным: как из одного кадра перейти по ссылке в
другой кадр. Для этого и применяется этот параметр.
Вот зачем в нашем примере (самый первый пример) второй кадр оказался
именным: NAME="main".
Допустим Вы хотите, чтобы пользователь мог, выбрав в первом кадре
какой-нибудь пункт меню, открыть его во втором. Для этого в первом
кадре у всех ссылок должен быть добавлен параметр
TARGET="main"
(то есть открыть запрашиваемый документ в кадре
main). Если Вы этот параметр использовать
не будете, то все ссылки будут открываться в том же кадре, где они
и стоят.
Существуют еще и так называемые "волшебные"
целевые кадры. Имена таких кадров всегда начинаются с символа
подчеркивания ( _ ).
Если параметр TARGET=
ссылается на:
1. "_BLANK", то документ всегда откроется
в новом пустом окне.
2. "_SELF", то выбранная страница
загружается в тот же кадр, где и сама ссылка.
3. "_PARENT", то выбранная страница
появится в родительской кадровой структуре.
4. "_TOP", то документы появляются в
отдельном окне вне кадра.
|
|