Опубликован: 19.05.2006 | Уровень: для всех | Доступ: платный
Лекция 16:

Фрэймы (кадры)

Ряды и столбцы

Установка атрибута rows определяет количество горизонтальных кадров в наборе кадров. Установка атрибута cols определяет количество вертикальных кадров. Оба атрибута могут быть установлены одновременно для создания таблицы фрэймов.

Если атрибут rows не установлен, каждый столбец занимает всю высоту страницы. Если не установлен атрибут cols, каждый ряд занимает всю ширину страницы. Если ни один из атрибутов не установлен, фрэйм занимает всю страницу целиком.

Фрэймы создаются слева направо - столбцы, и сверху вниз - ряды. Если установлены оба атрибута, фрэймы создаются слева направо в верхнем ряду, слева направо во втором ряду и т.д.

В этом примере экран делится надвое по вертикали (т.e. создаются верхняя и нижняя половины):

<FRAMESET rows="50%, 50%">
...остальная часть определения...
</FRAMESET>

В этом примере создано три столбца: второй имеет фиксированную ширину 250 пикселов (для отображения, например, рисунка известного размера). Первый занимает 25% оставшегося пространства, а третий - 75%:

<FRAMESET cols="1*,250,3*">
...остальная часть определения...
</FRAMESET>

В этом примере создана таблица фрэймов 2x3:

<FRAMESET rows="30%,70%" cols="33%,34%,33%">
...остальная часть определения...
</FRAMESET>

Предположим, что текущее окно браузера имеет высоту 1000 пикселов. Первый фрэйм занимает 30% общей высоты (300 пикселов). Второй определён точно в 400 пикселов высоты. Оставшиеся 300 пикселов делятся между оставшимися двумя фрэймами. Высота четвёртого фрэйма определена как "2*", что означает - в два раза выше, чем третий фрэйм, высота которого составляет только "*" (эквивалентно 1*).

Следовательно, четвёртый фрэйм имеет высоту 200 пикселов, а третий - 100 пикселов.

<FRAMESET rows="30%,400,*,2*">
...остальная часть определения...
</FRAMESET>

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

Вложенные фрэймы

Наборы фрэймов могут вкладываться на любую глубину.

В этом примере внешний FRAMESET делит доступное пространство на три столбца. Внутренний FRAMESET делит второй фрэйм на два ряда неравной высоты.

<FRAMESET cols="33%, 33%, 34%">
     ...содержимое первого фрэйма...
     <FRAMESET rows="40%, 50%">
        ...второй фрэйм, первый ряд...
        ...второй фрэйм, второй ряд...
     </FRAMESET>
     ...содержимое третьего фрэйма...
</FRAMESET>
Разделение данных между фрэймами

Авторы могут разделять данные между несколькими фрэймами путём включения этих данных через элемент OBJECT. Авторы должны включать элемент OBJECT в элемент HEAD frameset- документа и поименовать их с помощью атрибута id. Любой документ, являющийся содержимым фрэйма данного набора фрэймов, может ссылаться по этому идентификатору.

В следующем примере показано, как скрипт может ссылаться на элемент OBJECT, определённый для всего набора фрэймов:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//RU"
   "http://www.w3.org/TR/html4/frameset.dtd">
<HTML>
<HEAD>
<TITLE>Это набор фрэймов (frameset) с OBJECT в HEAD</TITLE>
<!-- Этот OBJECT не отображается! -->
<OBJECT id="myobject" data="data.bar"></OBJECT>
</HEAD>
<FRAMESET>
    <FRAME src="bianca.html" name="bianca">
</FRAMESET>
</HTML>

<!-- В bianca.html -->
<HTML>
<HEAD>
<TITLE>Страница Bianca</TITLE>
</HEAD>
<BODY>
...начало документа...
<P>
<SCRIPT type="text/javascript">
parent.myobject.myproperty
</SCRIPT>
...остальная часть документа...
</BODY>
</HTML>
Ирина Кириллова
Ирина Кириллова

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

Евгений Летенков
Евгений Летенков
Россия, Москва, РУДН, 2005
Иван Бокарёв
Иван Бокарёв
Австрия