HTML / 11. Фреймы

Содержимое фреймов

Ничто из содержимого фреймового документа (фреймсета) не отображается, за исключением, быть может, сообщения для броузера, не поддерживающего фреймов. Теги <frame>, заключенные в один или несколько тегов <frameset> (которые составляют содержимое фреймового документа), предоставляют ссылки в виде URL на соответствующие документы, помещаемые в каждый фрейм.

Тег <frame>
Тег <frame> может появляться только внутри тега <frameset>. Используйте атрибут src для указания URL документа, который должен быть помещен в соответствующий фрейм.
Фреймы размещаются в каждом фреймовом документе по строкам – столбец за столбцом, слева направо, а затем строка за строкой сверху вниз, поэтому последовательность и число тегов <frame> имеют значение.

Теги <frame>, не содержащие атрибута src, будут отображены пустыми. Также незаполненными останутся фреймы, описанные в теге <frameset>, которым не хватило тегов <frame>, если, например, ваш документ с фреймами требует три столбца, а вы предоставили только два. Эти сироты так и останутся пустыми – впоследствии в них нельзя помес-тить какое-либо содержимое, даже если у них есть имя, которое может использоваться в качестве метки при перенаправлении документов.

Атрибут src
Значением атрибута src в теге <frame> является URL документа, который должен отображаться в этом фрейме. Не существует другого способа заполнить фрейм содержимым. Не следует, в частности, включать во фреймовый документ тег (body) – броузер проигнорирует теги фреймов и просто отобразит содержимое тега , если встретит его первым, и наоборот.

Атрибут srс может ссылаться на любой действительный документ или любой отображаемый объект, включая изображения и мультимедийные объекты. В частности, документ, на который указывает srс, может сам состоять из одного или нескольких фреймов. Фреймы будут выведены в тот фрейм, который на них ссылается, что дает еще одно средство создания сложных макетов с использованием вложенных фреймов. Поскольку фрейм может ссылаться на целый документ, все возможности HTML/XHTML реализуются внутри фрейма, включая определения фона, цветов, таблиц, шрифтов и тому подобного. К несчастью, это означает также, что разные фреймы, содержащиеся в одном окне броузера, могут конфликтовать друг с другом. В частности, если у каждого вложенного во фрейм документа (не обычного HTML- или XHTML-документа) имеется свой тег <title>, в качестве названия всего окна броузера будет выбрано название фреймового документа, загруженного в последнюю очередь. Самый легкий способ избежать этой проблемы состоит в том, чтобы присвоить всем связанным фреймовым документам одно и то же название.

Атрибуты name и id
Необязательный атрибут name тега <frame> связывает с фреймом метку, которая впоследствии может использоваться для ссылок на фрейм в атрибуте target тега гипертекстовой ссылки (a) и тега <form>. Таким образом, можно изменить содержимое фрейма, выбрав гиперссылку в другом фрейме. В противном случае, как это делается в обычном окне броузера, документ, на который указывает гиперссылка, заменит во фрейме документ, содержащий эту гиперссылку. Мы обсудим подробнее имена фреймов и атрибут target далее в этой главе.Аналогичным образом, атрибут id уникально идентифицирует фрейм, но броузеры не поддерживают его использование в качестве цели гиперссылки, хотя применение атрибута id в этом качестве в других тегах они допускают.Значением атрибута name или id служит строка текста, заключенная в кавычки.

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

Атрибут noresize особенно полезен для фреймов, содержащих изображения фиксированного размера, например кнопочную панель или логотип, используемые для рекламы. Зафиксировав размер фреймов, в котором в точности помещается изображение, и выставив в нем атрибут noresize, вы гарантируете, что изображение будет выведено так, как вы этого хотите, а оставшаяся часть1 окна броузера остается в распоряжении прочих фреймов документа.

Атрибут scrolling
Если содержимое фрейма не помещается в него целиком, то броузер выведет фрейм с вертикальными и горизонтальными полосами прокрутки. Если для содержимого хватает места, полосы прокрутки исчезнут. Атрибут scrolling в теге <frame> позволяет явным образом управлять тем, появятся ли полосы прокрутки или нет. Если в теге написано scrolling="yes", все популярные броузеры, кроме Netscape, вставят в описываемый фрейм полосы прокрутки, даже если в нем нечего прокручивать. Если присвоить атрибуту sсrolling значение no2, полосы прокрутки не появятся даже в том случае, когда содержимое фрейма больше его самого. Значение auto по умолчанию работает так же, как если бы вы не включали атрибут sсrolling в тег.

Атрибуты marginheight и marginwidth
Обычно броузер оставляет небольшое расстояние между краем фрейма и его содержимым. Эти поля можно изменять при помощи атрибутов marginheight и marginwidth, каждый из которых принимает значения, равные точному числу пикселов, которые следует оставить вокруг содержимого фрейма.

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

Атрибуты frameborder и bordercolor
В ранних версиях броузера Internet Explorer добавить или убрать рамку вокруг отдельного фрейма можно при помощи атрибута frameborder. Значения yes или 1 и no или 0 соответственно включают или выключают рамку вокруг фрейма и при установке имеют приоритет перед спецификациями атрибута frameborder, заданными в любом содержащем
этот фрейм теге <frameset>. Не применяйте его.

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

Атрибуты title и longdesc
Как и в случае большинства других стандартных тегов, можно присвоить фрейму название при помощи атрибута title. Значением его служит заключенная в кавычки строка, описывающая содержимое фрейма. Броузеры могут отображать название тогда, например, когда мышь проходит по фрейму.

Если недостаточно атрибута title, можно использовать атрибут longdesc. Его значение – URL документа, описывающего фрейм. Предположительно, это длинное описание может иметь какой-то альтернативный формат для использования невизуальными броузерами.

Статьи по HTML на эту тему:

Встроенные фреймы
Модель XFrames
Окна и фреймы в качестве цели
Тег <noframes>

Вернуться в раздел: HTML / 11. Фреймы