Что такое фрейм в HTML?
Что такое фрейм в HTML? Frameset — это легкий способ создавать несколько отдельных областей прокрутки в окне браузера, а также удобный механизм для изменения содержимого фрейма.
Но у фреймов есть и существенные недостатки. Именно поэтому использовать их не рекомендуется. Хотя фреймы поддерживаются в HTML 4.01, их нет в HTML 5. На смену им пришли многофункциональные методы форматирования CSS. Главные недостатки фреймов:
- Поисковым системам тяжело работать с фреймами;
- Плохая совместимость с URL;
- Фреймы недоступны для всех клиентских приложений;
- Страницы, отображаемые во фреймах, трудно добавлять в закладки;
- Частые проблемы при распечатке веб-страниц.
Обычно фреймы используют для создания отдельных областей с прокруткой в одном окне. Такой подход применяется в приложениях для мобильных и десктопных платформ. Примером такого приложения является проводник Windows. Окно проводника состоит из двух частей. В левой части окна отображаются папки и «Избранное», в правой — содержимое папки, выбранной в левой части окна.
Наборы фреймов и фреймовые документы
Фреймы трудно использовать, так как для них требуется создание отдельного HTML-файла, определяющего расположение фреймов. А также дополнительных HTML-файлов, чтобы их задействовать.
Создание набора фреймов
Ниже приводится пример создания frameset HTML:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN”
“http://www.w3.org/TR/html4/frameset.dtd”>
<html>
<head>
…
</head>
<frameset attributes>
<frame attributes></frame>
<frame attributes></frame>
…
</frameset>
</html>
Особенности кода:
- Отсутствует элемент «body». Его роль выполняет тег <frameset>;
- Теги <frame>, расположенные внутри <frameset>, определяют содержимое фреймов и их свойства;
- Кроме <frameset> и <head> в документе больше нет никакого содержимого.
Тег <frameset>
Тег <frameset> отвечает за расположение фрейма в документе. Указанные в нем значения определяют количество frameset rows и строк, а также ширину фреймов. Формат тега <frameset> выглядит следующим образом:
<frameset cols|rows = “размер(ы)_столбцов_или_строк”>
Размеры столбцов или строк могут быть заданы в пикселях, процентах или как "*". В последнем случае браузер разделит оставшуюся часть окна на столбцы, где значение “*” указывает их ширину.
Значения атрибута cols или rows также определяют количество отображаемых на странице фреймов. Для каждой записи (значения) требуется наличие тега <frame> внутри тега <frameset>.
Рассмотрим следующие примеры создания тега <frameset>:
<!– Два столбца, 25% окна, остальные 75% окна –>
<frameset cols = “25%, 75%”>
<!– Два столбца, 25% окна, остальные 75% окна –>
<frameset cols = “25%, *”>
<!– Три строки, первая 50% окна, две остальные по 25% окна –
>
<frameset rows = “50%, *, *”>
<!– Две строки, первая высотой 100 пикселей, вторая занимает оставшееся
пространство окна –>
<frameset rows = “100px, 200px”>
Тег <frame>
Тег <frame> отвечает за свойства каждого фрейма в наборе фреймов, заключенного в тег frameset. Он имеет следующий синтаксис:
<frame name=”название_фрейма” src=”url_содержимого”></frame>
Атрибут name присваивает фрейму уникальное имя, на которое могут ссылаться URL-адреса, скрипты и т. д. Это необходимо для управления содержимым фрейма. Атрибут src используется для указания URL-адреса содержимого, которое должно отображаться во фрейме.
Тег <frame> поддерживает еще один атрибут — noresize. По умолчанию размер фрейма является изменяемым. Чтобы запретить изменение размера, необходимо задать атрибуту noresize значение noresize.
Например:
<frameset cols=“50%,50%”>
<frame src=“frame_a.htm” noresize=“noresize”>
<frame src=“frame_b.htm”>
</frameset>
Определение ссылок для фреймов
Чтобы изменить содержимое фрейма, следует указать нужный фрейм. Для этого используется атрибут name. Затем эти имена можно использовать в скриптах и тегах ссылок, чтобы определить для фрейма новое содержимое.
Изменить содержимое фрейма во frameset можно с помощью атрибута target тега ссылки. Для атрибута target допустимы следующие значения:

Например:
<a href=”news.html” target=”content”>Последние новости</a>
Встроенные фреймы
В отличие от frameset HTML тег iframe используется для отображения содержимого фрейма рядом с остальным содержимым веб-страницы. Встроенные фреймы не полностью поддерживаются браузерами. Их можно размещать на веб-странице, используя тег <iframe>. Синтаксис тега <iframe> выглядит следующим образом:
<iframe src=”url_содержимого”></iframe>
Тег <iframe> поддерживает такие атрибуты:
