Тег FRAMESET

Тег frameset определяет структуру фреймов на веб-странице. Фреймы разделяют окно браузера на отдельные области, расположенные вплотную друг к другу. В каждую из таких областей загружается самостоятельная веб-страница определяемая с помощью тега FRAME. С помощью фреймов веб-страница делится на два или более документа, которые обычно содержат навигацию по сайту и его контент. Механизм фреймов позволяет открывать документ в одном фрейме, по ссылке, нажатой в совершенно другом фрейме. Тег FRAMESET заменяет собой элемент BODY на веб-странице.
Допустимо использовать вложенную структуру элементов, это позволяет разбить один фрейм на две и более области.

При использовании фреймов примите во внимание их следующие особенности.

  • Поисковые системы плохо работают с фреймовой структурой, поскольку на страницах, которые содержат контент, обычно нет ссылок на другие документы.
  • Фреймы скрывают адрес страницы на которой находится посетитель и устанавливаемый через тег TITLE, и всегда показывают только адрес сайта. По этой причине понравившуюся страницу невозможно поместить в раздел «Избранное» браузера.
  • Пользователь зачастую оказывается на сайте, совершенно не представляя, куда он попал, потому что всего лишь нажал на ссылку, полученную в поисковой системе. Чтобы посетителю сайта было проще разобраться, где он находится, на каждую страницу помещают название сайта, заголовок страницы и навигацию. Фреймы, как правило, нарушают данный принцип, отделяя заголовок сайта от содержания, а навигацию от контента. Представьте, что вы нашли подходящую ссылку в поисковой системе, нажимаете на нее, а в итоге открывается документ без названия и навигации. Чтобы понять, где мы находимся или посмотреть другие материалы, придется редактировать путь в адресной строке, что в любом случае доставляет неудобство.
  • Большое число фреймов требует для браузера выделения больше памяти, чем обычно.

Синтаксис
<frameset>
<frame>
</frameset>

Закрывающий тег
Обязателен.

Параметры
border — толщина границы между фреймами.
bordercolor — цвет линии границы.
cols — устанавливает ширину или пропорции фреймов в виде колонок.
frameborder — отображать рамку вокруг фрейма или нет.
framespacing — аналог параметра border, задает ширину границы.
rows — задает размер или пропорции фреймов в виде строк.

Пример 1. Использование тега FRAMESET

<html>
<frameset rows="80,*" cols="*" frameborder=NO border=0 framespacing=0>
<frame src=top.html name=topFrame scrolling=no noresize>
<frameset cols="80,*" frameborder=no border=0 framespacing=0>
<frame src=left.html name=leftFrame scrolling=no noresize>
<frame src=main.html name=mainFrame>
</frameset>
</frameset>
</html>

Некоторые примеры организации фреймов приведены ниже.

Фрейм 1 Фрейм 2
Фрейм 3 Фрейм 4
Фрейм 5 Фрейм 6
Фрейм 1 Фрейм 2
Фрейм 3
<frameset rows="33%,33%,*" cols="50%, 50%">
<frame src=r1c1.html name="Фрейм 1">
<frame src=r1c2.html name="Фрейм 2">
<frame src=r2c1.html name="Фрейм 3">
<frame src=r2c2.html name="Фрейм 4">
<frame src=r3c1.html name="Фрейм 5">
<frame src=r3c2.html name="Фрейм 6">
</frameset>
<frameset rows="*" cols="80,*">
<frame src=frame1.html name="Фрейм 1">
<frameset rows="80,*">
<frame src=frame2.html name="Фрейм 2">
<frame src=frame3.html name="Фрейм 3">
</frameset>
</frameset>


Описание параметров тега FRAMESET

Параметр BORDER

Описание
Устанавливает толщину границы между фреймами. По умолчанию линия отображается трехмерной, используя параметры bordercolor и border можно настроить ее вид по своему усмотрению. Браузеры по-разному интерпретируют параметры тега FRAMESET и показывают линию. Например, для линии черного цвета толщиной 5 пикселов.

Как видно из рисунка, Opera вообще не изменяет цвет линии, но исправно отображает требуемое значение. Браузер Internet Explorer за толщину принимает среднюю часть линии залитую черным цветом, а Netscape — полную ширину или высоту, включая небольшие линии по бокам, создающие эффект приподнятости.

Если у тега FRAMESET установлен параметр framespacing=0, то браузер Opera вообще не показывает границу, а Internet Exporer игнорирует значения атрибутов bordercolor и border.

Синтаксис
<frameset border=значение>...</frameset>

Аргументы
Целое положительное число. Значение 0 скрывает рамку.

Значение по умолчанию
Зависит от браузера и операционной системы.

Аналог CSS
border

Пример 2. Изменение толщины границы

<html>
<frameset rows="*" cols="80,*" bordercolor=black border=5>
<frame src=left.html name=leftFrame>
<frameset rows="80,*">
<frame src=top.html name=topFrame>
<frame src=main.html name=mainFrame>
</frameset>
</frameset>
</html>


Параметр BORDERCOLOR

Описание
Определяет цвет видимых границ между фреймами. Цвет родительского элемента FRAMESET может быть изменен с помощью дочернего тега FRAMESET или индивидуального элемента FRAME. Браузер Opera вообще игнорирует данный параметр.

Синтаксис
<frameset bordercolor=цвет>...</frameset>

Аргументы
Значение цвета можно задавать двумя способами.

1. По его названию
Браузеры поддерживают некоторые цвета по их названию.

2. По шестнадцатеричному значению
Для задания цветов используются числа в шестнадцатеричном коде. Шестнадцатеричная система, в отличие от десятичной системы, базируется, как следует из ее названия, на числе 16. Цифры будут следующие: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Цифры от 10 до 15 заменены латинскими буквами. Числа больше 15 в шестнадцатеричной системе образуются объединением двух чисел в одно. Например, числу 255 в десятичной системе соответствует число FF в шестнадцатеричной системе. Чтобы не возникало путаницы в определении системы счисления, перед шестнадцатеричным числом ставят символ решетки #, например #666999. Каждый из трех цветов — красный, зеленый и синий — может принимать значения от 00 до FF. Таким образом, обозначение цвета разбивается на три составляющие #rrggbb, где первые два символа отмечают красную компоненту цвета, два средних — зеленую, а два последних — синюю.

Значение по умолчанию
Зависит от браузера и настроек операционной системы.

Аналог CSS
border

Пример 3. Изменение цвета границы

<html>
<frameset rows="*" cols="80,*" bordercolor=black border=5>
<frame src=left.html name=leftFrame>
<frameset rows="80,*" bordercolor=red border=5>
<frame src=top.html name=topFrame>
<frame src=main.html name=mainFrame>
</frameset>
</frameset>
</html>


Параметр COLS

Описание
Задает размеры или пропорции колонок фреймов в структуре FRAMESET. Если создаются несколько колонок, то для параметра cols необходимо установить определенное значение. Для этого используется три варианта:

  1. размер в пикселах;
  2. размер в процентах от доступной ширины фрейма;
  3. символ звездочки (*), который обозначает всю свободную ширину, оставшуюся после указания размеров в пикселах или процентах.

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

Синтаксис
<frameset cols="ширина 1, ширина 2, ...">...</frameset>

Аргументы
Значения, перечисленные через запятую в виде пикселов (px или другие пометки указывать не требуется), процентов или символа *.

Значение по умолчанию
100%

Пример 4. Ширина фреймов

<html>
<frameset cols="100,*,20%">
<frame src=left.html name=leftFrame>
<frame src=main.html name=mainFrame>
<frame src=right.html name=rightFrame>
</frameset>
</html>


Параметр FRAMEBORDER

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

Синтаксис
<frameset frameborder=yes | no>...</frameset>
<frameset frameborder=1 | 0>...</frameset>

Аргументы
Допускается использовать значения yes или 1 для отображения границы и no или 0, чтобы ее скрыть.

Значение по умолчанию
По умолчанию этот параметр включен.

Пример 5. Сокрытие границы между фреймами

<html>
<frameset cols="100,*,20%" frameborder=no>
<frame src=left.html name=leftFrame>
<frame src=main.html name=mainFrame>
<frame src=right.html name=rightFrame>
</frameset>
</html>


Параметр FRAMESPACING

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

Синтаксис
<frameset framespacing=значение>...</frameset>

Аргументы
Целое положительное число. При framespacing=0 браузер Opera полностью скрывает границы между фреймами, а Internet Explorer устанавливает их параметры по умолчанию. Этот атрибут напрочь игнорируется браузером Netscape.

Значение по умолчанию
2

Пример 6. Сокрытие границы между фреймам

<html>
<frameset cols="150,*" framespacing=0 frameborder=0>
<frame src=left.html name=leftFrame>
<frame src=main.html name=mainFrame>
</frameset>
</html>


Параметр ROWS

Описание
Задает высоту или пропорции фреймов в структуре FRAMESET в виде строк. Если создаются несколько строк, то для параметра rows необходимо установить определенное значение. Для этого используется три варианта:

  1. размер в пикселах;
  2. размер в процентах от доступной ширины фрейма;
  3. символ звездочки (*), который обозначает всю свободную ширину, оставшуюся после указания размеров в пикселах или процентах.

Удобство использования параметра rows совместно со значением * состоит в том, что фрейм можно определить в нижней части окна браузера. Когда требуется создать равномерную сетку фреймов, используйте в теге FRAMESET одновременно параметры rows и cols. Для более сложной структуры необходимо вкладывать один тег FRAMESET внутрь другого.

Синтаксис
<frameset rows="высота 1, высота 2, ...">...</frameset>

Аргументы
Значения, перечисленные через запятую в виде пикселов (px или другие пометки указывать не требуется), процентов или символа *.

Значение по умолчанию
100%

Пример 7. Высота фреймов

<html>
<frameset rows="*,100">
<frame src=top.html name=topFrame>
<frame src=main.html name=mainFrame>
</frameset>
</html

Материал взят с сайта htmlbook.ru