1. Установочный файл
Набор фреймов описывается в отдельном (X)HTML -документе, называемом еще установочным, с помощью контейнерного тега <frameset>, в который вкладывают теги <frame>, описывающие отдельные фреймы, а также тег <noframes> с содержимым, отображаемым только браузерами, не поддерживающими фреймы. Иначе говоря, установочный файл содержит описание раскладки фреймов - их относительное расположение, размеры, ссылки на содержимое и некоторые другие характеристики. В установочном (X)HTML -документе следует указать в дескрипторе <!doctype ...> тип документа, соответствующий фреймовой схеме:
для HTML-документа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 frameset//EN" "http://www.w3.org/TR/HTML4.01/frameset.dtd">
для XHTML-документа:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
В
установочном файле обычно опущен тег
<body>,
но если он присутствует, то <frameset>
должен располагаться перед ним. Тег
<frameset>
не должен находиться внутри контейнера
<head>.
Никакое информационное содержимое
(тексты, ссылки, картинки и т. д.),
предназначенное для отображения в окне
браузера, в установочном файле не
размещают. В противном случае браузер
может не создать фреймовой структуры.
Листинг слева иллюстрирует структуру HTML-документа в установочном файле.
Структура XHTML документа отличается только дескриптором < !doctype...>.
2. Теги <frameset>, <frame> и <noframes>
Тег <frameset> контейнерный, а потому в него можно вставлять не только теги <frame>, описывающие отдельные фреймы, но и другие <frameset>, что позволяет создавать довольно сложные раскладки фреймов.
Атрибуты тега <frameset>:
cols - строка, содержащая сведения о количестве и ширине фреймов при их
горизонтальной раскладке. Ширина задается в трех вариантах:
число - в пикселах;
число с символом % - в процентах относительно ширины фрейма-контейнера (в случае единственного <frameset>- относительно ширины клиентской области окна браузера);
* - вся оставшаяся ширина фрейма-контейнера (клиентской области окна браузера) после задания значений в пикселах и процентах.
Ширину нескольких фреймов задают в виде строки, содержащей значения ширины для каждого фрейма, указанные через запятую, в порядке расположения фреймов слева направо; например атрибут cols="120,30%,*" устанавливает ширину трех фреймов, расположенных по горизонтали;
rows - строка, содержащая сведения о количестве и высоте фреймов при их вертикальной раскладке; возможные значения такие же, что и у атрибута cols, но относятся не к ширине, а к высоте; например атрибут rows="120,50%,*" задает разбиение на три фрейма, следующие друг за другом по вертикали;
border - толщина рамок (границ) между фреймами в пикселах, задаваемая числом; при значении "0" данного атрибута границы не отображаются;
frameborder - указывает, следует ли показывать границы между фреймами:
1 - показывать границы;
0 - не показывать границы;
frame spacing - расстояние в пикселах между фреймами;
bordercolor - цвет границ между фреймами.
Примеры иллюстрирует следующий листинг
При задании размеров фреймов следует иметь в виду, что между ними распределяется все доступное пространство клиентской области браузера. Если сумма заданных значений размеров фреймов отличается от соответствующих размеров клиентской области, то браузер пересчитает ее. Так, если сумма заданных размеров меньше доступной области, то оставшееся пространство будет равномерно распределено между фреймами. А если больше, то размеры фреймов будут уменьшены сообразно с их первоначально заданными долями. Поэтому при использовании абсолютных единиц измерения (пикселов) для точного указания размеров следует хотя бы для одного из фреймов задать размер в виде символа "*".
Если тег <frameset> задает раскладку фреймов, то собственно фреймы описываются с помощью неконтейнерных тегов <frame>.
Атрибуты тега <frame>:
src - в качестве значения принимает URL-адрес загружаемого во фрейм ресурса (например, (X)HTML -документа);
name - имя фрейма; значение этого атрибута служит значением атрибута target тега ссылки <а> для указания, в каком фрейме отображать запрашиваемый ресурс, а также для обращения к фрейму из сценариев;
scrolling- определяет, будут ли присутствовать в окне фрейма полосы прокрутки:
auto - полоса прокрутки появляется только при необходимости (значение по умолчанию);
yes - всегда показывать полосы прокрутки;
no - никогда не показывать полосы прокрутки;
noresize ="noresize" - запрещает изменять размеры фрейма путем перетаскивания рамок с помощью мыши (если этот атрибут не задан, то пользователь не может изменять размеры фреймов);
frameborder - указывает, следует ли показывать границы со смежными фреймами:
1 - показывать границы;
0 - не показывать границы;
bordercolor - цвет рамок со смежными фреймами;
m
arginheight
-
отступы содержимого фрейма от его
верхней и нижней границ в пикселах;
marginwidth - отступы содержимого фрейма от его боковых границ в пикселах.
Поскольку не все браузеры поддерживают фреймы, рекомендуется предусмотреть контейнерный тег <noframes>, в который можно вставить сообщение или ссылку на бесфреймовую версию сайта, появляющиеся в окне, если браузер не поддерживает фреймы. Впрочем, здесь можно разместить более пространный текст, содержащий ключевые слова и ссылки на все или только некоторые (избранные) документы вашего сайта, что может помочь поисковым системам его проиндексировать. Однако не следует злоупотреблять этим приемом. Тег <noframes> обычно вставляют в <frameset>, хотя он работает и за пределами последнего.
