FRAMES - синтаксис
Многооконные документы (фреймы или рамки) создаются при помощи команд:
FRAMESET, FRAME, и соответсвующих Frame-документов.
FRAME - документы
Документ с фреймами (рамками) имеет структуру очень похожую на обычный HTML документ, за исключением того,
что раздела BODY заменен на контейнер FRAMESET, описывающий HTML под-документы, или Рамки, составляющие документ.
<HTML>
<HEAD>
</HEAD>
<FRAMESET>
</FRAMESET>
</HTML>
|
FRAME
Синатксис
Синтаксис Рамок похож на сиснтаксис, используемый для создания таблиц, и был специально
разработан для быстрой обработки моторчиками (engines) Internet-клиентов.
<FRAMESET>
- Это главный контейнер для Рамки, имеющий 2 аттрибута:
ROWS и COLS. Документ-в-рамке не имеет BODY и тэги, которые обычно помещаются
в BODY не могут встречаться до тэга FRAMESET, иначе FRAMESET будет проигнорирован.
Тэг FRAMESET должен иметь закрывающий тэг, а внутри FRAMESET-а вы можете употреблять только
другие, вложеные FRAMESET-ы и тэги FRAME или NOFRAME.
- ROWS="список_высот_рядов"
- ROWS атрибут в качестве значения имеет список разделенных запятыми значений.
Эти значения могут быть абсолютными значениями в пикселах, процентами между 1 и 100, или
относительными масштабирующими значениями.
Количество значений должно соответствовать количеству рядов в FRAMESET-е.
Так как общая высота всех рядов должна равняться высоте окна, высоты рядов могут быть нормализованы.
Пропущеный атрибут ROWS интерпретируется как единственный ряд, отмасштабированый так, чтобы заполнить окно.
-
- Синтаксис списка аргументов.
- значение
- Просто число предполагется задающим фиксированый размер в пикселах.
Это наиболее опасный тип значения, так как размеры окна программы просмотра могут варьироваться и варьируются
в значительных пределах. Если используется точное значение в пикселах, почти всегда желательно
использовать вместе с ним одно или несколько относительных значений, описаных ниже.
Иначе программа просмотра может изменить ваше значение, чтобы добиться 100%-го заполнения своего
окна.
- значение%
- Это простое значение в процентах от 1 до 100. Если общая сумма процентов получается больше 100,
все они масштабируются в сторону уменьшения. Если общая сумма меньше 100,
и имеются рамки с относительным размером, излишнее место будет отдано им.
Если же таковых не имеется, все проценты будут увеличины, таким образом, чтобы в сумме составлять
100%.
- значение*
- Значение не является обязательным. Просто '*' означает рамку "относительного размера" и
интерпретируется как просьба дать рамке все оставшееся место.
Если имеется несколько рамок относительного размера, оставшееся место распределяется между ними
поровну.
Если перед '*' все же присутствует значение, соответствующая рамка получает в значение-раз
больше места, чем остальные. Например "2*,*" даст 2/3 места первой рамке и 1/3 второй.
-
- Пример 3-х рядов, где первый и последний меньше среднего:
<FRAMESET ROWS="20%,60%,20%">
|
Пример 3-х рядов, где первый и последний имеют фиксированую высоту, а оставшееся
место отдается среднему ряду:
<FRAMESET ROWS="100,*,100">
|
- COLS="список_ширин_колонок"
- У атрибута COLS значение представляет собой список значений ширин колонок, отведенных рамкам,
с синтаксисом полностью аналогичным синтаксису значений атрибута ROWS (см. выше).
Тэг FRAMESET может быть вложен внутрь другого тэга FRAMESET.
В этом случае набор рамок помещается на место, которое отвелось бы
соответствующей рамке, если бы на месте вложеного FRAMESET был бы обычный FRAME.
-
- <FRAME>
- Этот тэг определяет одну рамку в наборе. Он имеет 6 возможных атрибутов:
SRC, NAME, MARGINWIDTH, MARGINHEIGHT,
SCROLLING, и NORESIZE. Тэг FRAME не является контейнером и поэтому ему не нужен
завершающий тэг.
-
- SRC="url"
- Значением атрибута SRC является URL документа, который должен появиться в данной рамке.
FRAMEы без атрибута SRC изображаются как пустое место соответствующего размера.
- NAME="имя_окна"
- Атрибут NAME используется для присвоения имени рамке, после чего ее можно использовать
как окно назначения в ссылках из других документов (обычно из других рамок того же документа).
Атрибут NAME может и опускаться; по умолчанию все окна неименованы.
-
- Имена должны начинаться с буквы или цифры.
- В Поименованые рамки могут ссылаться другие документы при помощи нового атрибута
TARGET.
- MARGINWIDTH="значение"
- Атрибут MARGINWIDTH используется когда автор документа желает поуправлять отступами в рамке.
Значение для MARGINWIDTH задается в пикселах и не может быть меньше 1-ы чтобы объекты
в рамке не могли испортить границы рамки, и не может быть большим, не оставляющим места для собственно
документа. Атрибут не является обязательным; если он опущен, программа просмотра сама выберет оптимальное
для нее значение.
- MARGINHEIGHT="значение"
- Атрибут MARGINHEIGHT идентичен MARGINWIDTH за исключением того, что
управляет верхним и нижним отступами вместо левого и правого.
- SCROLLING="yes|no|auto"
- SCROLLING используется для управлением линейкой прокрутки рамки.
Yes делает линейки прокрутки всегда видимыми, No - всегда невидимыми,
а
Auto просит программу просмотра саму решать, когда показывать линейки.
Атрибут SCROLLING не обязательный; если опущен подразумевается auto.
- NORESIZE
- Атрибут NORESIZE не имеет значения. Это просто флаг, показывающий что смотрельщик не может
изменять размеров рамки. Размеры рамок обычно изменяются перетаскиванием границ рамок в новое
место. Заметьте, что если любая из рамка имеющих общую границу имеет этот флаг - вся граница
становится неперетаскиваемой и, как следствие, все соседние рамки.
Атрибут NORESIZE не обязательный; если опущен - рамка может изменять размер.
-
- <NOFRAMES>
- Это тэг для людей, желающих сделать альтернативное представление документа для клиентов
без возможности отображения рамок. Клиент с возможностями просто игнорирует все, что расположено
между открывающим и закрывающим тэгами.
Примеры
В этом примере сравнивается синтаксис FRAME и TABLE, а также даден исходный текст
представленных ниже лайоутов.
+----------------------------------------------------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |-----------------------------+
| | |
| | |
| | |
| | |
+----------------------------| |
| | |
| | |
| | |
| | |
| |-----------------------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
+----------------------------------------------------------+
Сделаем
Так
При
Помощи
Таблиц
<TABLE WIDTH="100%" HEIGHT="100%" BORDER>
<TR><TD ROWSPAN=2>CELL1</TD><TD>CELL2</TD></TR>
<TR><TD ROWSPAN=2>CELL3</TD></TR>
<TR><TD ROWSPAN=2>CELL4</TD></TR>
<TR><TD>CELL5</TD></TR>
</TABLE>
|
Посмотрим, что получилось.
Сделаем
Так
При
Помощи
Рамок
<FRAMESET COLS="50%,50%">
<FRAMESET ROWS="50%,50%">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
</FRAMESET>
<FRAMESET ROWS="33%,33%,33%">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
</FRAMESET>
</FRAMESET>
|
Посмотрим, что получилось.
Сделаем
Так
При
Помощи
NOFRAMES
<FRAMESET COLS="50%,50%">
<NOFRAMES>
<h1 align=center><blink>Frame ALERT!</blink></h1>
<p>
This document is designed to be viewed using <b>Netscape 2.0</b>'s
Frame features. If you are seeing this message, you are using
a frame <i>challenged</i> browser.
</p>
<p>
A <b>Frame-capable</b> browser can be gotten from
<a href=/>Netscape Communications</a>.
</p>
</NOFRAMES>
<FRAMESET ROWS="50%,50%">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
</FRAMESET>
<FRAMESET ROWS="33%,33%,33%">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
</FRAMESET>
</FRAMESET>
|
Посмотрим, что получилось.