Что такое фреймы в html. Iframe и Frame — что это такое и как лучше использовать фреймы в Html

Несмотря на то, что сайты с фреймами встречаются все реже, изучение HTML было бы неполным без рассмотрения темы о фреймах. К тому же фреймы в каком-то смысле заняли свою нишу и применяются для систем администрирования и справки. Там, где недостатки фреймов не имеют особого значения, а преимущества наоборот, активно востребованы.

Для создания фрейма используется тег , который заменяет тег в документе и применяется для разделения экрана на области. Внутри данного тега находятся теги , которые указывают на HTML-документ, предназначенный для загрузки в область (рис. 13.1).

Рис. 13.1. Пример разделения окна браузера на два фрейма

При использовании фреймов необходимо как минимум три HTML-файла: первый определяет фреймовую структуру и делит окно браузера на две части, а оставшиеся два документа загружаются в заданные окна. Количество фреймов не обязательно равно двум, может быть и больше, но никак не меньше двух, иначе вообще теряется смысл применения фреймов.

Рассмотрим этапы создания фреймов на основе страницы, продемонстрированной на рис. 13.1. Нам понадобится три файла: index.html — определяет структуру документа, menu.html — загружается в левый фрейм и content.html — загружается в правый фрейм. Из них только index.html отличается по структуре своего кода от других файлов (пример 13.1).

Пример 13.1. Файл index.html

Фреймы

В случае использования фреймов в первой строке кода пишется следующий тип документа.

Данный указывает браузеру, что он имеет дело с фреймами, эта строка кода является обязательной. Контейнер содержит типовую информацию вроде кодировки страницы и заголовка документа. Вот только учтите, что заголовок остается неизменным, пока HTML-файлы открываются внутри фреймов.

В данном примере окно браузера разбивается на две колонки с помощью атрибута cols , левая колонка занимает 100 пикселов, а правая — оставшееся пространство, заданное символом звездочки. Ширину или высоту фреймов можно также задавать в процентном отношении, наподобие таблиц.

В теге задается имя HTML-файла, загружаемого в указанную область с помощью атрибута src . В левое окно будет загружен файл, названный menu.html (пример 13.2), а в правое — content.html (пример 13.3). Каждому фрейму желательно задать его уникальное имя, чтобы документы можно было загружать в указанное окно с помощью атрибута name .

Пример 13.2. Файл menu.html

Навигация по сайту

В данном примере серый фон на странице задается с помощью стилей, о которых речь пойдет далее.

Пример 13.3. Файл content.html

Содержание сайта

СОДЕРЖАНИЕ

Рассмотрим более сложный пример уже с тремя фреймами (рис. 13.2).

Рис. 13.2. Разделение страницы на три фрейма

В данном случае опять используется тег , но два раза, причем один тег вкладывается в другой. Горизонтальное разбиение создается через атрибут rows , где для разнообразия применяется процентная запись (пример 13.4).

Пример 13.4. Три фрейма

Фреймы

Как видно из данного примера, контейнер с атрибутом rows вначале создает два горизонтальных фрейма, но вместо второго фрейма подставляется еще один , который повторяет уже известную вам структуру из примера 13.1. Чтобы не появилась вертикальная полоса прокрутки, и пользователь не мог самостоятельно изменить размер верхнего фрейма, добавлены атрибуты scrolling="no" и noresize .

В любом редакторе текста сделайте новый текстовой файл.

Введите главные теги, не считая тегов , которые в файле, описывающем фреймы, не употребляются. В тегах заголовка укажите - Компания SD:

Компания SD

Заместо тегов в файле, описывающем фреймы, употребляется пара тегов с атрибутами rows либо cols, определяющими, как делится экран - по горизонтали либо по вертикали. В качестве значений этих атрибутов можно использовать числовое значение высоты либо ширины фрейма в пикселах либо в процентах от 1% до 100%. К примеру, если вы желаете поделить окно браузера по горизонтали на два равных по размеру фрейма, то код HTML должен быть таким:

Направьте внимание: значения атрибутов отделяются один от другого запятой.

Вертикальное разделение фреймов (frame)

Чтоб поделить окно браузера по вертикали на два фрейма шириной 200 и 600 пикселов, следует написать:

Но фактическая ширина и высота окна фрейма находится в зависимости от текущего разрешения монитора. Потому, если у пользователя установлено разрешение, к примеру, 1024 x 768 пикселов, другими словами ширина экрана - 1024 пиксела, то часть экрана может остаться незаполненной. Потому рекомендуется задавать размеры фреймов в процентах так, чтоб их сумма была равна 100%. Если все таки нужно для 1-го из окон указать фиксированный размер в пикселах, то размер другого окна можно не указывать, заменив его значение эмблемой *. В данном случае браузер сам подберет подходящий размер для второго окна.

Сделаем для отображения нашего WEB сайта два вертикальных фрейма. Для первого фрейма, в каком будет выводиться меню, установим фиксированную ширину - 160 пикселов, а размер второго предоставим найти браузеру, заменив его звездочкой *.

В редакторе текста, воткните пустую строчку после закрывающего тега и введите последующий код:

Таким способом, мы указали, что окно браузера должно быть разбито по вертикали на два фрейма. Для описания каждого фрейма в отдельности употребляются одиночные теги , которые обязаны находиться внутри элемента …. Неотклонимым атрибутом тега является src, значение его - адресок документа, который должен находиться в данном фрейме. Потому что в первом фрейме будет находиться файл menu.html, то данный тег следует записать так:

Воткните пустую строчку после открывающего тега и введите обозначенный тег.

Во второй фрейм должен загружаться файл other.html, потому второй тег будет таким:

Как сделать меню с помощью фреймов (frame)

Чтоб во второй фрейм могли загружаться также и все другие странички WEB сайта - list.html и другие, которые, может быть, будут сделаны, - нужно при помощи атрибута name присвоить данному фрейму имя, которое, будучи обозначено в ссылках хоть какого документа в качестве значения атрибута target, обусловит, в какой конкретно фрейм следует загрузить документ. Напомним, что в общем случае, при переходе по ссылке новый документ раскрывается в том же окне. Конкретно для того, чтоб при переходе по ссылкам нашего меню странички раскрывались не в первом фрейме, в каком размещено меню, а во втором, мы использовали в прошлом опыте в ссылках меню атрибут target со значением "frame": target="frame", где "frame" - это имя второго фрейма. И сейчас имя "frame" следует присвоить второму фрейму, в каком должен раскрываться файл other.html. Потому второй тег в окончательном виде должен быть записан так:

Введите этот код, вставив пустую строчку перед закрывающим тегом .

Собираем основной фрейм (frame)

Сохраните файл в папке WEB под именованием index.html.

Имя index.html должно непременно присваиваться файлу с главной страничкой каждого WEB сайта. Конкретно этот файл раскрывается по умолчанию при воззвании к WEB узлу, если не обозначено другое название файла. На неких WEB сайтах имя главной странички может быть index.htm, a index.html отображается не как страничка, как папка с названиями файлов. Это нужно уточнять у админа узла.

Сейчас можно просмотреть, как смотрятся сделанные фреймы.

Откройте в браузере файл index.html из папки WEB. Вы увидите, что окно программки просмотра разбито по вертикали на два фрейма. В левом фрейме отображается меню, а в правом - файл other.html.

Направьте внимание, что каждый фрейм имеет свои полосы прокрутки. По мере надобности их отображение можно отменить. Для этого довольно в теге указать атрибут scrolling=no.

Добавьте в тег, описывающий первый фрейм, атрибут scrolling=no:

Видите ли, фреймы - комфортное средство для размещения инфы на WEB страничках. Но, используя его, не следует терять чувства меры. Очень огромное количество окон на дисплее не улучшает восприятие информации. Не располагайте на дисплее более трех фреймов и пытайтесь не использовать их без необходимости.

Главные минусы фреймов (frame)

Основной минус использования фреймов состоит в том, что такая страничка фактически никак не могут быть найдена поисковыми машинами и как следует вы не получите на такую страничку гостей. В этом и заключается основной минус. Также фреймы вызывают нагрузку на вычислительные мощности компьютера. Естественно, это в наше время не очень актуально, но актуально для мобильных устройств, где скорость прорисовки WEB страничек еще мучается. Напомню, что на конец 2010 года, WEB пользуются через мобильные устройства около 10% и эта цифра с каждым годом вырастает.

Результат

Итак, первый шаг нашей работы закончен - мы сделали WEB сайт из двух WEB страничек. Сейчас, чтоб он стал доступен всем, его нужно поместить в Интернет на один из серверов World Wide WEB.

Как сделать страничку с фреймами

В программке FrontPage фреймы именуются рамками. Проще всего сделать страничку с фреймами на базе одного из готовых шаблонов, имеющихся в программке FrontPage.

Изберите команду меню Файл - Сделать (File - New). В правой части рабочего окна программки появится Область задач (Task Pane) с активной задачей Создание (New).

В разделе Сделать страничку (New page) Области задач (Task Pane) щелкните мышью на ссылке Другие шаблоны страничек (More page templates). На дисплее появится диалог Шаблоны страничек (Page Templates).

Изберите вкладку Страничка рамок (Frames Pages).

На этой вкладке имеется набор шаблонов для сотворения страничек с фреймами. При выборе шаблона, начальный вид странички отображается справа в поле Эталон (Preview), а в поле Описание (Description) выводится описание шаблона.

Изберите один из шаблонов, к примеру Оглавление (Contents), и нажмите кнопку ОК. Будет сотворена новенькая страничка с фреймами по избранному шаблону.

В нижней части вновь сделанной вкладки нов_стр_1.htm (new_page_1.htm) появится дополнительная кнопка Без рамок (No Frame), нажав на которую, мы увидим, как будет смотреться страничка в браузере, не поддерживающем работу с фреймами. По умолчанию туда помещается текст сообщения о невозможности отображения фреймов.

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

В режиме редактирования Конструктор (Design) представления Страничка (Page) в пустых фреймах показываются кнопки.

Нажмите кнопку Сделать страничку (New Page) в каждом фрейме. Внутри фреймов будут сделаны новые странички.

При помощи другой кнопки Задать исходную страничку (Set Initial Page) можно избрать для фрейма одну из ранее сделанных страничек в качестве исходной.

Изберите в меню команду Файл - Сохранить (File - Save), чтобы сохранить новые странички. На дисплее поочередно появятся обычные диалоги сохранения файлов Сохранить как (Save As) для каждой странички, в каких необходимо указать названия файлов. Укажите, к примеру, для исходной странички левого фрейма имя LeftFrame, для исходной странички правого фрейма - имя RightFrame, а для самой странички с фреймами - имя FrameContainer.

Если вы избрали шаблон Оглавление (Contents) при разработке странички с фреймами, то в нем уже имеется установленная связь между фреймами: активизация ссылки, помещенной в левый фрейм, будет вызывать загрузку страничек, на которую показывает ссылка, в правый фрейм. В данном случае правый фрейм именуется мотивированным фреймом (target frame).

Чтобы проверить, как работает связь между фреймами, поместим на страничку левого фрейма две текстовые ссылки. Пусть одна из их ссылается, к примеру на исходную страничку правого фрейма, а другая - на главную страничку WEB сайта.

Установите текстовый курсор в начало странички в левом фрейме и наберите фразу Ссылка на главную страничку.

Выделите набранную фразу при помощи мыши либо клавиатуры и изберите команду меню Вставка - Ссылка (Insert - Hyperlink). На дисплее появится диалог Добавление гиперссылки (Create Hyperlink).

В перечне файлов WEB сайта изберите файл домашней странички index и нажмите кнопку ОК. Набранная фраза будет преобразована в ссылку.

Выделите набранную фразу при помощи мыши либо клавиатуры и щелкните на кнопке добавление гиперссылки на панели инструментов Стандартная (Standard). На дисплее появится диалог Добавление гиперссылки (Create Hyperlink).

В перечне файлов WEB сайта изберите RightFrame и нажмите кнопку ОК. Набранная фраза будет преобразована в ссылку.

Переключитесь в режим подготовительного просмотра, щелкнув на кнопке Просмотр (Preview) в нижней части вкладки FrameContainer.htm.

По мере надобности можно поменять мотивированной фрейм для отдельной ссылки либо для всех ссылок в текущем фрейме.

В режиме редактирования Конструктор (Design) представления Страничка (Page) щелкните правой кнопкой мыши на одной из ссылок в левом фрейме и в показавшемся контекстном меню изберите команду Характеристики гиперссылки (Hyperlink Properties). На дисплее появится диалог Изменение гиперссылки (Edit Hyperlink).

(Target Frame). На дисплее появится диалог Конечная рамка (Target Frame).

В поле Настройка объекта (Target setting) можно указать мотивированной фрейм либо избрать один из вариантов в перечне Общие объекты (Common targets). Флаг Установить для странички по умолчанию (Set as page default) позволяет использовать избранный мотивированной фрейм для всех ссылок странички, где очевидно не указан какой-нибудь другой.

Нажмите кнопку ОК, чтобы закрыть диалог Конечная рамка (Target Frame), и потом кнопку ОК в диалоге Изменение гиперссылки (Edit Hyperlink).

Хотя фреймы не содержат собственных зрительных частей, страничка с фреймами и сами фреймы имеют ряд опций, позволяющих управлять их отображением.

Щелкните правой кнопкой мыши в любом месте на одном из фреймов и в показавшемся контекстном меню изберите команду Характеристики рамки (Frame Properties). На дисплее появится диалог Характеристики рамки (Frame Properties).

В поле Имя (Name) обозначено внутреннее имя фрейма, оно употребляется также при выборе мотивированного фрейма для ссылки. В поле Исходная страничка (Initial page) указана страничка, отображаемая во фрейме при его загрузке. В группе частей управления Размер рамки (Frame size) можно указать ширину (Width) и высоту (Height) фрейма относительно примыкающих фреймов (Relative), относительно размеров окна браузера в процентах (Percent) либо фиксированный размер в пикселах (Pixels). В группе частей управления Поля (Margins) определяются значения отступа от вертикальных (Width) и горизонтальных (Height) границ фрейма до содержимого внутри фрейма. Если установлен флаг Изменять размер в обозревателе (Resizable in browser), то гость WEB сайта может поменять размер фрейма, передвигая мышью разделитель между примыкающими фреймами. В открывающемся перечне Полосы прокрутки (Show scrollbars) задается режим отображения полос прокрутки: по мере надобности (If needed), другими словами когда страничка полностью не помещается во фрейме, никогда (Never) либо всегда (Always).

Нажмите кнопку Страничка рамок (Frames Page). На дисплее появится диалог Характеристики странички (Page Properties) с открытой вкладкой Рамки (Frames).

Флаг Показать границы (Show borders) определяет, будут ли отображаться границы фрейма. Если флаг сброшен, то в браузере не будут видны разделительные полосы между фреймами. В поле Интервал между рамками (Frame Spacing) задается ширина границ, разделяющих примыкающие фреймы.

Нажмите кнопку ОК, чтобы закрыть диалог Характеристики странички (Page Properties) и потом кнопку ОК в диалоге Характеристики рамки (Frame Properties).

Вы сможете добавить новые фреймы либо удалить имеющиеся со странички.

В режиме редактирования странички изберите один из фреймов, щелкнув на нем мышью.

Изберите команду меню Рамки - Поделить рамку

(Frames - Split Frame). На дисплее появится диалог Поделить рамку (Split Frame).

При помощи одного из переключателей изберите вариант разделения: на столбцы (Split into columns) либо на строчки (Split into rows).

Нажмите кнопку ОК. Область текущего фрейма будет разбита на две части, и на страничку будет добавлен новый фрейм.

Новый фрейм также можно сделать, если в режиме редактирования странички переместить при помощи мыши разделитель фреймов, удерживая при всем этом кнопку Ctrl.

Чтобы удалить фрейм, выделите его, щелкнув на нем мышью, и в меню программки изберите команду Рамки - Удалить рамку (Frames - Delete Frame). Фрейм будет удален.

Удаление фрейма не приводит к удалению странички, которая в нем отображалась. Последний фрейм на страничке не может быть удален.

В открывающемся перечне Тип файла (Save as type) изберите Шаблоны FrontPage (FrontPage Template).

В поле ввода Название файла (File Name) укажите название файла шаблона и нажмите кнопку Сохранить (Save). На дисплее появится диалог Сохранить как шаблон (Save As Template).

В поле ввода Заглавие (Title) укажите заглавие шаблона, которое будет отображаться в перечне шаблонов при разработке новейшей странички. В поле ввода Описание (Description) можно коротко обрисовать предназначение и вид шаблона.

Нажмите кнопку ОК. Шаблон будет сохранен.

Сейчас вы сможете использовать свой шаблон при разработке новейшей странички с фреймами, выбирая его в перечне шаблонов диалога Шаблоны страничек (Page Templates). Если при сохранении шаблона были установлены исходные странички во фреймах, то они будут употребляться по умолчанию для всех фреймов, сделанных на базе шаблона.

Фреймы комфортно использовать для навигации по WEB сайту либо разделу WEB сайта. В одном из фреймов обычно помещают список ссылок в виде текста либо рисунков, а в другой загружаются странички при выборе ссылок из первого фрейма. Другим вариантом является внедрение общих границ и навигационных меню, о которых мы уже ведали. Использовать фреймы и общие границы сразу не рекомендуется - это в состоянии сделать навигацию по WEB сайту запутанной.

Термин «фрейм» пришел к нам из английского языка. В переводе это слово означает «рамка» и представляет собой отдельную область окна. По своей структуре такой участок является полностью законченным HTML-документом.

Отдельные фреймы делят окна браузера на участки, которые размещаются рядом. При этом внутрь каждого из фреймов загружается собственная полноценная страница. Фреймовая технология до сих пор вызывает много споров, но нужно сказать, что пик ее популярности уже прошел. В данный момент эта технология считается устаревшей, и обычные фреймы больше не поддерживаются в HTML5.

История технологии

Сегодня можно констатировать, что решение об отходе от работы с фреймовой технологией окончательно принято. На сайте https://www.w3.org/TR/html5-diff/#obsolete-elements четко указано, что обычные теги для создания такой структуры frame, frameset и noframes являются устаревшими. В качестве аргумента приводятся данные о том, что использование такой структуры отрицательно отражается на юзабилити сайтов и их доступности в сети.

Но современные технологии поддерживают элемент IFRAME. Его использование позволяет вставлять фреймы в текстовые блоки на страницах. При этом такие элементы имеют возможность выравнивания относительно самого текста. Важный момент: изменять размеры встроенных фреймов нельзя в принципе. У них отсутствует соответствующий атрибут для изменения размеров.

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

То есть фреймы в принципе не должны применяться для структуры страниц при создании новых ресурсов. А вот при поддержке и доработке имеющихся сайтов знание особенностей технологии и их использование будет весьма полезным и продуктивным.

Преимущества фреймов

Среди преимуществ фреймовой технологии - простота использования, высокая скорость работы, возможность точного позиционирования информации в определенных местах окна.

Применение фреймов обеспечивает экономию на объеме передаваемого трафика в процессе работы с сайтом. Ведь при обращении к другому разделу информации обычно происходит обновление только одного участка страницы, а не всего ее кода.

Такая структура обеспечивает интересные возможности навигации по контенту ресурсов. Ведь внутри окна браузера в соседних фреймах можно просматривать различные информационные блоки. Пользователям важно знать, что поиск по фрейму равнозначен выполнению такой операции на отдельной странице.

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

Возможные недостатки

Проблемы работы сайтов с использованием фреймов накапливались постепенно, но на сегодня они достигли порогового значения. Среди основных недостатков выделяют:

  1. Неудовлетворительное юзабилити. Сегодня доля пользователей мобильных устройств и планшетов с небольшим разрешением экрана растет и уже превышает число тех, кто посещает сайты со стационарных компьютеров и ноутбуков. И здесь применение фреймов создает серьезные проблемы с адаптивностью страниц при их отображении на различных устройствах. Эта проблема на сегодня практические не имеет решения.
  2. Ухудшение доступности сайта для различных программ. Увеличение количества дополнительных программ (например, экранные дикторы) выявляет гораздо худшую доступность информации для считывания.
  3. Неверное отображение страниц. Часто верстка страниц с такой структурой выглядит в браузерах некорректно с точки зрения дизайна. И это связано с особенностями технологии. С точки зрения SEO использование фреймов в html-верстке страницы весьма нежелательно.
  4. Наличие единого адреса для всей структуры. В результате внутренние страницы такого сайта невозможно добавить в закладки. Это приводит к неудобствам в работе пользователей.
  5. Некорректная индексация поисковиками. Наличие на сайте нескольких полноценных документов, из которых формируется одна страница, заметно затрудняет работу поисковых систем. Это приводит к существенным ошибкам при индексации. Как следствие - неправильное определение тематики и адресов страниц, выпадение критически важного контента из индексации.
  6. Непрестижность. Это довольно необычный недостаток для ресурсов в сети. И все же нужно сказать, что факт устаревания верстки сайтов на фреймах приводит к тому, что авторы и владельцы таких ресурсов считаются ретроградами. Но есть отдельные исключения. Даже современные сайты, в которых размещаются чаты, обычно используют работу с фреймами.

Индексирование фреймов поисковиками

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

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

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

Но вот поисковый робот такую страницу практически никогда не индексирует. Он не находит на ней содержания, полезного для посетителей. Поисковые боты настроены таким образом, что они стараются получить и проиндексировать информацию, размещенную внутри тега body. Именно там происходит поиск полезного для пользователя контента. А на фреймовой странице такого тега нет, он заменяется на FRAMESET.

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

Такие случаи создают много проблем пользователям, которые при переходе на сайт не видят меню и другую информацию, которая должна отображаться. В случае размещения на сайте фреймов его параметры с точки зрения SEO снижаются. При этом статистика поведения пользователей говорит о том, что авторитет ресурса у поисковых систем падает. Это однозначно отрицательно сказывается на посещаемости сайтов.

Особенно тяжело поисковым системам и индексирующим ботам обрабатывать вложенные и множественные кадровые структуры. Тот факт, что каждый контейнер имеет все признаки отдельного документа, но не содержит полноценную навигационную и другую информацию, дополнительно усложняет ситуацию.

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

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

Особенности продвижения сайтов во фреймах

Некоторые системы поиска неправильно или очень некорректно индексируют файлы с фреймовой структурой. В результате индексная база заполняется не адресами родительских ресурсов (так, как должно было быть), а ссылками на дочерние сайты.

Чтобы минимизировать проблемы индексации сайтов, основанных на фреймах, при их описании применяются специальные теги и параметры. Основным элементом контейнерной структуры является frameset. Именно он заменяет в исходном коде стандартный body;. Каждый отдельный контейнер в структуре описывается frame. Его количество в коде страницы отвечает числу отдельных участков, отображающихся в окне браузера при просмотре.

Указанные теги стоит расположить на главной странице сайта, а затем продублировать содержание внутри каждого из них.

Инструкция

Язык HTML (HyperText Markup Language - «язык разметки гипертекста») предусматривает два вида фреймов. «Плавающий» более гибок и его проще вставить в уже существующую . В общем случае конструкция, описывающая врезку окна с помощью плавающего фрейма, выглядит так:Здесь в качестве источника данных для этого фрейма указана существующего сайта (атрибут src). Она и будет открыта во фрейме размером 400 на 300 , как это указано в атрибутах width и height.Вы можете указать в атрибуте src и страницу своего сайта. В этом случае достаточно задать относительный адрес (то есть адрес относительно страницы, в которую вставляется фрейм):В этом образце не указаны и высота фрейма, но зато есть атрибут- id. Используя его, вы можете с помощью CSS () задать для этого фрейма необходимые размеры:

Другой тип фреймов - «классический» - требует наличия отдельной страницы, которая будет содержать описание структуры фреймов. Сами фреймы будут находиться в отдельных страницах, может даже на отдельных сайтах. HTML-код такой страницы-контейнера для фреймов может выглядеть так:




Никаких блоков ... и ... , обязательных для обычных страниц, здесь быть не должно.В этом образце открывающий тег контейнера содержит атрибут rows - это , что пространство страницы должно быть поделено по вертикали и первому фрейму будет отдана верхняя часть. Если заменить rows на cols, то разделение будет горизонтальным. Значение этого атрибута "*,*" указывает, что пропорции разделения - по 50% каждому. Если указать, например "20%,*", то первому фрейму будет отдано только 20%, а остальное пространство - второму.Пользователь может сам изменять эти пропорции, перетаскивая границы фреймов мышкой, но есть возможность запретить это действие. Для этого в тег конкретного фрейма нужно добавить атрибут noresize. Можно также указать размеры отступов от соседнего фрейма по вертикали и горизонтали (атрибуты marginwidth и marginheight):Есть возможность задавать правила поведения для полос прокрутки каждого фрейма в отдельности. Для этого используется атрибут scrolling, который может содержать одно из трех предопределенных значений. Если указать scrolling="auto", то прокрутки будут появляться когда содержимое фрейма не вмещается в его границы. Если "yes" - полосы будут присутствовать постоянно, независимо от наличия необходимости в них. Если "no" - это будет означать запрет полос прокрутки для этого фрейма.

Исходя из информации, изложенной на двух предыдущих шагах, вам нужно сконструировать html-код, который более подходит для решения вашей задачи. После этого останется лишь вставить его в исходный код страницы. Для этого можно воспользоваться редактором страниц системы управления вашим сайтом - откройте в нем нужную страницу, переключите в режим редактирования html-кода и вставьте ваш код в нужное место страницы. А можно файл исходного кода страницы файл-менеджером управления хостинга или системы управления сайтом, открыть его в текстовом редакторе и вставить код в нем. А затем тем же способом закачать измененный код обратно на .

В этом выпуске мы поговорим о фреймах . Фреймы по своей сути очень похожи на таблицы, но в отличие от таблиц, каждый фрейм независим и в каждом из них может быть отдельная web страница со своим адресом.

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

ктной информацией. Вот вкратце что такое фреймы.

Теперь рассмотрим, как это все можно осуществить.

Особенностью документа, содержащего фреймы, является то, что он не содержит контейнера BODY . Вместо него используется контейнер FRAMESET . Общий синтаксис фреймов выглядит следующим образом:

… ….

В контейнере …. располагаются теги , которые определяют содержимое фреймов.

У тега есть два параметра:

rows = число – количество строк (горизонтальных подокон).

cols = число – количество столбцов (вертикальных подокон).

Вообще говоря, значение параметров rows и cols задаются не совсем числами, а перечислением чисел через запятую. Сколько будет идти чисел, столько строк или столбцов и будет, а числа определяют размер фрейма. Главное, чтоб сумма этих чисел составляла всю ширину экрана.

Давайте, разберем это на примере, и все будет понятно. Сейчас создадим фреймовый документ следующего вида:

Код, который определит нам такую структуру фрейма, будет выглядеть так:

В первой строке приведенного кода открывается контейнер frameset, в параметре cols указано, что будет три вложенных фрейма. У первого ширина будет 30% от всей ширины экрана. У третьего ширина будет тоже 30% от всей ширины экрана. А второй фрейм займет все оставшееся место. Да символ “*” (звездочка) означает занять все оставшееся место на экране.

Кстати, рассмотрим, каким образом фреймам можно задавать размеры в параметрах cols и rows:

Можно задать размер, поставив просто число. Это число, будет определять размер фрейма в пикселях.

Можно задать значение ширины в процентах. Причем, если сумма процентов всех колонок будет превышать 100%, то все фреймы пропорционально уменьшаться, что бы общая сумма было равна 100%. Аналогично ситуация будет, если сумма процентов всех колонок будет менее 100%, то все фреймы пропорционально увеличатся, что бы общая сумма было равна 100%.

Можно задавать размер фрейма символом (звездочка). Это означает, что фрейм должен занять все оставшееся место. Если будет указано, например , то есть две звездочки, то все оставшееся место будет поровну разделено между этими двумя фреймами (в данном случае по 40%).

Можно комбинировать варианты задания размеров фреймов. Например:

Этот код означает, что у первого фрейма размер будет 70 пикселей, у третьего 40% ширины экрана, а второй займет все оставшееся место.

С первой строкой кода разобрались полностью. Идем дальше.

Далее следуют теги . Поскольку через запятую в параметре cols тега frameset задано три числа (то есть будет три фрейма), то и тегов должно быть тоже три. Значением параметра src является адрес web страницы, которая будет загружаться в данный фрейм. Адрес, как видно из примера, может быть абсолютным и относительным.

И в последней строке закрывается контейнер .

Если заменить в первой строке кода параметр cols на rows, то мы получим такой же фреймовый документ, состоящий из трех фреймов. Только разбиение на фреймы будет идти по вертикали.

Параметры rows и cols одновременно использовать нельзя. Это приводит к ошибкам, и неверному отображению содержимого.

У всех сейчас возник вопрос о том, как создать такую структуру, о которой я говорил в самом начале статьи. К этому вернемся чуть позже, а пока обратимся к тому, что у нас сейчас происходит в браузере.

В браузере мы видим три страницы, каждая из которых находится в своем фрейме.

При этом мы, наведя курсор мыши к границам фреймов, можем изменять размеры фреймов, так же видны полосы прокрутки и границы между фреймами. Это не всегда нужно, даже скорее совсем не нужно. А всем этим можно управлять благодаря параметрам тегов frame и frameset .

Параметры тегов frame и frameset :

src =”url” – обязательный параметр. Указывает адрес страницы, которая будет отображена внутри фрейма. Используется только для frame.

noresize – отменяет возможность изменения размеров. Используется только для frame .

scrolling=”yes/no/auto” – определяет наличие полос прокрутки. Значение yes – указывает на присутствие полос прокрутки. Значение no – указывает, что полос прокрутки не будет. При значение auto – браузер сам определяет, будут ли полоски прокрутки. Используется только для frame .

name=”frame-name” – имя фрейма. Данный параметр используется для взаимодействия между фреймами. Подробнее о нем поговорим чуть позже. Используется только для frame .

border=число – толщина границ между фреймами. Если принимает значение 0, то границы между фреймами не отображаются. Используется только для frameset.

framespacing=”число” – расстояние между фреймами. Используется только для frameset.

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

Есть еще несколько параметров, но они не однозначно работают, поэтому я считаю целесообразным их даже не упоминать в выпуске.

Пожалуй, с параметрами все. Рассмотрели на примере как их применять.

Теперь создадим фреймовую структуру, о которой я говорил в самом начале выпуска.

Для этого, создаем структуру из трех фреймов с разбиением по вертикали.

То есть, там где логотип и меню сайта высота будет 100 пикселей. Где контактная информация высота будет 70 пикселей. Все остальное место займет строка с навигацией сайта, основным содержимым сайта и рекламными баннерами.

Соответственно, вместо тега , мы должны вставить еще один контейнер .. с тремя столбцами, и в каждый записать свой адрес страницы. Видите, ничего сложного, мы просто вместо тега вставляем новый, нужный нам, контейнер .. .

После этого вставляем наш третий фрейм с контактной информацией и закрываем главный контейнер

Полный код данной страницы приведен ниже:

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

Что мы получили в итоге. Чем это удобно или неудобно (решать вам), но при фреймовой структуре, всегда все наши фреймы остаются на странице. Независимо от величины содержимого у нас всегда будет виден логотип и меню сайта, нижняя часть сайта контактной информацией, блок навигации и баннеры. Вот, в общем-то, суть и смысл фреймов.

Существует возможность взаимодействия между фреймами. Можно сделать так, чтобы нажав на ссылку в одном фрейме, информация появилась в другом. Сейчас мы посмотрим, как это делается.

Создадим фрейм следующего вида:

В левом фрейме, будут располагаться наши ссылки. А в правом – страницы на которые ведут эти ссылки.

Создаем такой фрейм:

Здесь, надеюсь все понятно. Единственный момент – это у второго фрейма параметр name=”fram1″ . Именно значение параметра name мы и будем использовать в дальнейшем. Запомним его.

Теперь создаем документ ind2.html . в нем будет располагаться наш набор ссылок. В общем - это обычный html документ, только у ссылок, мы укажем параметр target и в качестве значение этому параметру укажем имя нашего фрейма - “fram1” . То есть:

on webformyself.com
on mail.ru
on google.ru

Создадим документ ind3.html. Можно его оставить пустым, а можно в нем расположить то, что вы хотите видеть на начальной странице.

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

Расскажу еще про один тег касающейся фреймов и буду заканчивать данный выпуск.

Тег . В контейнер обычно пишется информация о том, что браузер фреймы не поддерживает. Если браузер поддерживает фреймы, то данная информация игнорируется. Контейнер ставится внутри html документа, в любое место, куда захочется или это требуется. В параметре src указывается адрес страницы, которая будет загружаться во фрейм. Например, поставим во второй выпуск рассылки сайт webformyself.com . Для этого в любом месте html документа второго выпуска напишем:

У тега