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

 

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


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


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

 

Технология или Идеология?


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


Для наглядности обратимся к конкретному примеру. Пусть наша страница будет состоять из двух вертикальных фреймов. В левый фрейм мы хотим поместить перечень ключевых статей журнала "Компьютеры+Программы" за 1998 год, а в правый - (поначалу) приветствие и ознакомительную информацию. В дальнейшем согласно выбору пользователем той или иной статьи в правом фрейме мы будем размещать соответствующую страницу выбранной статьи. Итак, код будет выглядеть следующим образом:


< HTML >
   < HEAD >
      < TITLE >Наш пример< /TITLE >
   < /HEAD >
   < FRAMESET COLS = "20%, 80%" >
      < FRAME SRC = "menu_art0.htm" >
      < FRAME SRC = "hello0.htm" NAME = "MAIN" >
   < /FRAMESET >
   < NOFRAMES >
      Здесь можно поместить теги, тексты для случая,
      когда браузер не поддерживает фреймовую структуру
   < /NOFRAMES >
< /HTML >


Обратите внимание на то, что фрейм-содержащая страница не имеет привычного тега < BODY > - "тело" такой страницы задается тегом < FRAMESET >. В нашем примере тег < FRAMESET > содержит атрибут COLS, указывающий на то, что страница состоит из двух фреймов-колонок шириной слева направо 20% и 80% от ширины всей страницы. Далее следуют теги < FRAME >, описывающие каждый фрейм в отдельности: левый, содержащий файл "menu_art0.htm", и правый - файл "hello0.htm". Правый фрейм, кроме того, имеет имя (NAME=«MAIN»). Присвоение имени в данном случае является необходимым, т.к. впоследствии мы намерены изменять содержимое правого фрейма. В левом же фрейме ничего обновляться не будет, поэтому присваивать ему имя необязательно.


Приведенный пример также содержит тег < NOFRAMES >. Все, что заключено в "теле" данного тега, представляет собой вид нашей страницы для пользователя, чей браузер не поддерживает фреймовой структуры. Это, быть может, уже не очень актуально, но это - здоровая этика по отношению к «опаздывающим» пользователям.


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


О корректности ссылок


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


Обратимся снова к примеру. Пусть слева в перечне указана, например, статья "Империя Тамагочи", HTML-вариант которой находится в файле 5n98y5a.htm. Тогда для соответствующего пункт а перечн нео бходимо оформить ссылку на этот файл, указав, куда он будет загружаться, т.е.:


< A HREF = "5n98y5a.htm" TARGET = "MAIN" > Империя Тамагочи < /A >,


что расшифровывается следующим образом: при вызове пункта «Империя Тамагочи» загрузить файл «5n98y5a.htm» во фрейм с именем «MAIN» (см. в тексте примера атрибут NAME). Если атрибут TARGET опустить, то страница статьи «постарается втиснуться» в узкий фрейм перечня статей. Если значение атрибута TARGET задано неверно, то результат может оказаться непредсказуемым (по ситуации). Так от красоты, простоты и удобства до безобразия - всего один шаг.


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

  • _self - отображение документа в том же окне, откуда выполняется его вызов;
  • _top - обращение к наивысшему окну в иерархии фреймов (это имя используется при оформлении ссылки на URL вне текущей Web-структуры);
  • _blank - для открытия под документ нового окна браузера;
  • _parent - обращение к окну фрейма, расположенному на уровень выше в иерархической структуре по отношению к фрейму, из которого производится вызов.

Итак, приготовление «начинки пирожка» мало чем отличается от традиционных рецептур. 


Все, что касается технологии исполнения фреймовой структуры, в основном заключено в теге < FRAMESET > и тегах, которые могут находиться в его теле. А что же собственно может быть внутри тегов < FRAMESET >, < /FRAMESET >? Только теги < FRAME >, < FRAMESET > и < NOFRAMES >. Уже ясно, что теги < FRAME > задают необходимые атрибуты для каждого фрейма в отдельности. Теги < NOFRAMES > описывают ситуацию для браузеров, не поддерживающих фреймы. Что же касается тегов < FRAMESET >, включенных внутрь своих старших братьев, то речь идет о вложенных структурах подобно тому, как это делается при табличной организации, когда элементом таблицы является другая таблица. При этом фреймовые нюансы умножаются на табличные, а коэффициент непредсказуемости результата увеличивается на порядок. Так, например, если тег < FRAMESET > содержит число элементов, не соответствующее числу включенных тегов < FRAME >, то на экране возникнут пустые области. Но творческий поиск - святое дело. Дерзайте, если есть желание и необходимость.


Атрибуты


Тег < FRAMESET >, помимо приведенного атрибута COLS, естественно может содержать атрибут ROWS. Если в нашем примере заменить COLS на ROWS, то страница будет представлена двумя горизонтальными фреймами: верхним высотой 20% и нижним - 80%.

 

Таким образом, атрибут COLS определяет число и ширину столбцов, а атрибут ROWS - число и высоту строк.


Задать значения атрибутам COLS и ROWS можно следующим образом:

  • в процентах от всей области страницы/фрейма;
  • в пикселях;
  • относительный размер;
  • свободный размер. 

Так, например, строка


< FRAMESET ROWS = "20, 2*, *" >


описывает три горизонтальные фрейма, а именно:

  • верхний - высотой 20 пикселей (форма задания 2);
  • средний - в два раза выше нижнего (форма 3);
  • нижний - занимающий все оставшееся пространство (форма 4).

Теперь осталось внимательно отнестись к каждому фрейму в отдельности, рассмотрев атрибуты тега < FRAME >:

  • Атрибут SRC указывает на файл того документа, который необходимо поместить в данный фрейм. Если этот атрибут не задан, то отображается пустой фрейм.
  • Атрибут NAME, как уже упоминалось, используется для задания имени фрейма для последующего оформления ссылок посредством указания значения атрибута TARGET. Имя фрейма должно быть уникальным в рамках текущей Web-структуры.
  • Атрибуты MARGINWIDTH и MARGINHEIGHT - для задания соответственно горизонтального (слева и справа) и вертикального (сверху и с низу) отступов соде ржимог о фрейма от его краев (подобно CELLPADDING в таблицах). Наименьшее значение атрибутов равно 1. Значение по умолчанию равно 6.
  • Атрибут SCROLLING - для разрешения или запрещения отображения полосы прокрутки содержимого фрейма. Данный атрибут принимает значения YES или NO. Возможно также значение AUTO (устанавливается по умолчанию, если значение атрибута не задано), когда принятие решения о наличии полосы прокрутки возлагается на браузер. Известны некрасивые случаи, когда по воле разработчика полоса прокрутки отсутствует, и пользователь (предположим, работающий в графическом режиме 640х480) никак не может добраться до части информации, выходящей за пределы окна обзора. Обидно, как минимум.
  • Атрибут NORESIZE - для назначения неизменяемыми границ фрейма. При установке этого атрибута не стоит забывать о том, что принципы табличной организации могут потребовать от соседних фреймов также постоянства в размерах. Следите за тем, чтобы этот факт не оказался для вас неожиданным.

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


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


< HTML >
   < HEAD >
      < TITLE >Наш пример < /TITLE >
   < /HEAD >
   < FRAMESET ROWS="30,*" >
      < FRAME src="../heading.htm" MARGINWIDTH=1 MARGINHEIGHT=4 SCROLLING="NO" NORESIZE >
      < FRAMESET COLS="22%,78%" >
         < FRAME src="../menu_art.htm" MARGINWIDTH=6 MARGINHEIGHT=2 SCROLLING="AUTO" NORESIZE >
         < FRAME src="../hello.htm" NAME="MAIN" SCROLLING="AUTO" NORESIZE >
      < /FRAMESET >
   < /FRAMESET >
   < NOFRAMES >

      Здесь можно поместить теги, тексты для случая,
      когда браузер не поддерживает фреймовую структуру
   < /NOFRAMES >
< /HTML >

2004.12.17
19.03.2009
В IV квартале 2008 г. украинский рынок серверов по сравнению с аналогичным периодом прошлого года сократился в денежном выражении на 34% – до $30 млн (в ценах для конечных пользователей), а за весь календарный год – более чем на 5%, до 132 млн долл.


12.03.2009
4 марта в Киеве компания Telco провела конференцию "Инновационные телекоммуникации", посвященную новым эффективным телекоммуникационным технологиям для решения задач современного бизнеса.


05.03.2009
25 февраля в Киеве компания IBM, при информационной поддержке "1С" и Canonical, провела конференцию "Как сохранить деньги в условиях кризиса?"


26.02.2009
18-19 февраля в Киеве прошел юбилейный съезд ИТ-директоров Украины. Участниками данного мероприятия стали ИТ-директора, ИТ-менеджеры, поставщики ИТ-решений из Киева, Николаева, Днепропетровска, Чернигова и других городов Украины...


19.02.2009
10 февраля в Киеве состоялась пресс-конференция, посвященная итогам деятельности компании "DiaWest – Комп’ютерний світ" в 2008 году.


12.02.2009
С 5 февраля 2009 г. в Киеве начали работу учебные курсы по использованию услуг "электронного предприятия/ учреждения" на базе сети информационно-маркетинговых центров (ИМЦ).


04.02.2009
29 января 2009 года в редакции еженедельника "Computer World/Украина" состоялось награждение победителей акции "Оформи подписку – получи приз!".


29.01.2009
22 января в Киеве компания "МУК" и представительство компании Cisco в Украине провели семинар для партнеров "Обзор продуктов и решений Cisco Small Business"

 

 
 
Copyright © 1997-2008 ИД "Комиздат".