|
|
>>> Перейти на мобильный размер сайта >>> Онлайн учебники на TEPKA.ru Учебник по HTML 4Примеры фреймов в HTMLВ этом разделе представлены некоторые типичные примеры определений фреймов в HTML. Возвратимся к примеру, который приведен в начале данного раздела (рис. 5.3). Этот пример использует вложенную структуру <FRAMESET>. Внешний тег <FRAMESET> создает три строки высотой, соответственно, в 25, 50 и 25 процентов от общей высоты окна просмотра: <FRAMESET ROWS="25%,50%,25%">. Внутри этой области определения первая и последняя строки представляют собой простые фреймы:
<FRAME SRC="header.htm"> <FRAME SRC="footer.htm">
Каждая из этих строк заполняет всю ширину экрана. Первая строка в верхней части экрана занимает 25 процентов высоты, и третья строка в нижней части также занимает 25 процентов высоты. Между ними, однако, располагается вложенный тег <FRAMESET>: <FRAMESET COLS="25%,75%"> <FRAME SRC="list.htm"> <FRAME SRC="info.htm"> </FRAMESET> Этот HTML тег определяет два столбца, на которые разбивается средняя строка экрана. Строка, в которой располагаются эти два столбца, занимает 50 процентов высоты экрана, что определено во внешнем теге <FRAMESET>. Левый столбец использует 25 процентов от ширины экрана, в то время как правый столбец занимает оставшиеся 75 процентов ширины. Фреймы для этих столбцов определены внутри вложенной пары тегов <FRAMESET> и </FRAMESET>, в то время как определение фреймов для первой и последней строки записывается вне этой пары, но внутри внешнего <FRAMESET> в соответствующем порядке. Структуру записи легко понять, если воспринимать вложенный блок <FRAMESET> как отдельный элемент <FRAME>. В нашем примере внешний тег <FRAMESET> определяет три строки. Каждая из них должна быть заполнена. В данном случае они заполняются сначала отдельным элементом <FRAME>, далее — вложенным блоком <FRAMESET> шириной в два столбца, а затем еще одним элементом <FRAME>. Теперь может возникнуть вопрос, можно ли в качестве значения параметра SRC тега <FRAME> задать имя файла, который, в свою очередь, содержит описание структуры фреймов. Да, это допустимо. В данном случае тег <FRAME> будет использован для указания на HTML-документ, который является фреймовой структурой и используется в качестве отдельного фрейма. Вернемся к примеру и заменим вложенный <FRAMESET> на отдельный <FRAME>. Естественно, потребуется два HTML-файла вместо одного, так как вложенный <FRAMESET> теперь будет располагаться в отдельном документе. Приведем содержимое первого (внешнего) файла: <HTML> <HEAD> </HEAD> <FRAMESET ROWS="25%,50%,25%"> <FRAME SRC="header.htm"> <FRAME SRC="frameset.htm"> <FRAME SRC="footer.htm"> </FRAMESET> <NOFRAMES> Ваш браузер не может отображать фреймы </NOFRAMES> </HTML> Второй файл с именем frameset.htm содержит следующий код: <HTML> <HEAD> </HEAD> <FRAMESET COLS="25%,75%"> <FRAME SRC="list.htm"> <FRAME SRC="info.htm"> </FRAMESET> </HTML> В этом случае верхняя и нижняя строки ведут себя по-прежнему. Но вторая строка теперь является простым фреймом, как и другие. Однако файл frameset.htm, на который указывает параметр SRC, определяет собственную структуру фреймов. В результате на экране будет отображено в точности то же самое, что и в первоначальном примере. Примечание Принципиально возможно создать вложенные структуры <FRAMESET>, использующие теги <FRAME>, которые ссылаются на тот же самый файл с описанием структуры фреймов, однако этого делать не следует. Такая ситуация приведет к бесконечной рекурсии и не даст возможности дальнейшей работы. Некоторые браузеры контролируют подобную ситуацию и предотвращают возможность сбоя. Если адрес, записанный в SRC, совпадает с одним из предыдущих адресов в иерархии фреймов, то он игнорируется, как если бы параметр SRC отсутствовал вообще. Совет
Используя вложенные структуры <FRAMESET> в различных комбинациях, возможно создать практически любую сетку фреймов, которую можно себе представить. Однако помните, что следует создавать удобный для пользователя интерфейс, а не просто демонстрировать свое умение работать с фреймами.
Приведем пример создания регулярной прямоугольной сетки фреймов: <HTML> <HEAD> </HEAD> <FRAMESET ROWS="*,2*" COLS="20%, 30%, 40%"> <FRAME SRC="docum1.htm"> <FRAME SRC="docum2.htm"> <FRAME SRC="docum3.htm"> <FRAME SRC="docum4.htm"> <FRAME SRC="docum5.htm"> <FRAME SRC="docum6.htm"> </FRAMESET> </HTML> Этот пример создает сетку фреймов с двумя строками и тремя столбцами (рис. 5.6). Так как определен набор из шести фреймов, необходимо также дать шесть определений отдельных фреймов <FRAME>. Обратите внимание, что определения фреймов даются построчно. То есть первый тег <FRAME> определяет содержимое первой колонки в первой строке, второй — второй колонки, а третий заканчивает определение данных для последней колонки первой строки. Последние три фрейма затем заполняют столбцы второй строки.
Рис. 5.6. Сетка фреймов 2 на 3 Заметим также, что сумма значений процентов в параметре COLS равна не 100, а только 90 процентов. В этом нет ничего страшного, так как браузер автоматически пропорционально изменит ширину колонок, чтобы ликвидировать это противоречие.
|
|
|