Первая строка этого HTML-кода задает три фрейма, между которыми оставлено место под рамку толщиной 10 пикселов (рис. 5.13).
Между окнами фреймов "А" и "в" рамка не прорисовывается благодаря значению NO параметра FRAMEBORDER, тем не менее для рамки определен красный цвет (red). Для последнего фрейма "с" значение FRAMEBORDER задано равным Yes и переопределяет значение, установленное в первой строке. Поэтому между фреймами с именами "в" и "С" все-таки будет нарисована рамка красного цвета и толщиной 10 пикселов.
Заметим, что фреймы без рамок используются не так уж и редко. Следует помнить, что отсутствие рамок не запрещает появление полос прокрутки (рис. 5.14).
Браузер Microsoft Internet Explorer разрешает использовать параметр FRAMEBORDER для тех же целей, как было описано выше, но не позволяет задавать цвет и толщину рамок. Однако в качестве значения параметра FRAMEBORDER допустимо использовать только числовое значение "О" для отмены прорисовки рамки или отличное от нуля числовое значение для прорисовки рамки.
Различие в правилах задания значений параметра FRAMEBORDER для разных браузеров весьма неприятно. Попробуйте, например, задать FRAMEBORDER=Yes. Такая запись верна для Netscape, а для Microsoft Internet Explorer приведет к отсутствию рамки. Предыдущий пример (рис. 5.13) при просмотре в Microsoft Internet Explorer будет представлен без рамки.
Браузер Microsoft Internet Explorer разрешает использовать дополнительный параметр FRAMESPACING, записываемый в тэге
, значение которого определяет количество пикселов между фреймами, оставляемое пустыми.
Приведем пример, результат отображения которого приводится на рис. 5.15.
Изменение расстояния между фреймами
Рис. 5.15.
Пустое пространство между фреймами в Microsoft Internet Explorer
Примечание
К сожалению, во многих описаниях языка HTML ошибочно указывается, что параметр FRAMESPACING должен использоваться в тэге . Microsoft Internet Explorer допускает использование этого параметра только в тэге .
Плавающие фреймы
Браузер Microsoft Internet Explorer разрешает использовать уникальный тег
Кроме того, для задания расположения и размеров плавающего фрейма в документе можно использовать следующие дополнительные параметры: WIDTH, HEIGHT, HSPACE, VSPACE, ALIGN. Их назначение и порядок использования совпадает с соответствующими параметрами для встроенных изображений, которые задаются тэгом .
Приведем пример использования плавающих фреймов:
Использование плавающих фреймов
Пример использования концепции плавающих фреймов СЕМТЕК>
Ваш браузер не позволяет отображать плавающие фреймы
Браузер Microsoft Internet Explorer - первый из браузеров (и пока
единственный), который поддерживает так называемые "плавающие" фреймы.
Такие фреймы могут размещаться в любом месте экрана так же, как
графические изображения и таблицы.
Фрейм справа от данного текста размещен на странице с помощью
специального тега . При создании фрейма было указано
выравнивание вправо.
Результат отображения данного примера браузером Microsoft Internet Explorer показан на рис. 5.16. Браузеры, не поддерживающие концепцию плавающих фреймов, для данного примера вместо отображения содержимого документа float.htm выдадут текст "Ваш браузер не позволяет отображать плавающие фреймы".
Рис. 5.16.
Плавающий фрейм в Microsoft Internet Explorer
Отметим, что концепция плавающих фреймов близка по идеологии к встроенным изображениям или таблицам. Здесь в нужное место HTML-документа целиком встраивается другой HTML-документ.
Совет
В настоящий момент применение плавающих фреймов ограничивается единственным браузером - Microsoft Internet Explorer версии 3.0 и выше. Следует помнить, что пользователи других браузеров (в частности, Netscape) не смогут увидеть содержимого плавающих фреймов.
Средства создания документов, содержащих фреймы
HTML-документ, содержащий фреймы, как и любой другой документ, может быть создан или отредактирован вручную при помощи любого доступного текстового редактора. Большинство специализированных HTML-редакторов либо не имеют возможностей визуального создания фреймов, либо обладают весьма ограниченными возможностями. Существует несколько специальных редакторов, которые ориентированы на создание фреймов. Кратко опишем возможности некоторых из них.
Редактор фреймов FrameGang
Одним из таких редакторов является утилита FrameGang, разработанная австралийской фирмой Sausage Software, которая более известна своим популярным HTML-редактором HotDog.
Информацию об этом программном продукте можно получить по адресу
http://www.sausage.com
, а также из сборника программных продуктов для Интернета (по адресу
http://www.tucows.com
или любому другому из нескольких десятков серверов-зеркал, разбросанных по всему миру).
Утилита FrameGang является дополнением к любому HTML-редактору или обычному текстовому редактору, работающему в среде Windows, которая позволяет визуально сконструировать необходимую структуру фреймов и затем сгенерировать соответствующий HTML-код. Получаемый HTML-код через буфер обмена Windows (Clipboard) может быть передан в HTML-редактор. Программа FrameGang позволит быстро построить нужную фреймовую структуру.
Рассмотрим возможности программы. После установки данной
программы в Windows и ее запуска предлагается выбрать одну из двух возможных структур фреймов первого (верхнего) уровня - поколонное расположение фреймов (Columns) или построчное (Rows), а также определить их количество. В дальнейшем каждый из фреймов первого уровня может при необходимости быть разбит на несколько фреймов второго уровня. Большее количество уровней фреймов не предусмотрено, однако это не является существенным ограничением, так как на практике редко используется более двух уровней.
Пусть для примера выбрано четыре фрейма, расположенных по
колонкам. Далее следует создать структуру фреймов второго уровня, что
осуществляется разбиением существующих фреймов в противоположном направлении. Для данного примера фреймы могут разбиваться только по горизонтали. Создание фреймов второго уровня выполняется в пункте меню Add, реализация которого добавляет очередной фрейм к текущему.
Заметим, что смешные картинки во фреймах не несут смысловой нагрузки и служат лишь для заполнения пустого пространства. Их прорисовка может быть отменена в меню Options. Также отметим, что само название фирмы-производителя (sausage - сосиски) и название некоторых ее программных продуктов (HotDog - в переводе не нуждается) определило стиль интерфейса данного пакета - во многих пунктах меню встречается изображение сосисок.
После определения структуры фреймов следует задать их размеры. Это выполняется простым перемещением границ фреймов мышью так же, как это делается для изменения размеров окон системы Windows. Установленные размеры для текущего фрейма отображаются в процентах в окнах с названиями Width и Height. При необходимости задать размеры фреймов не в процентах, а в пикселах или относительных единицах, следует изменить получаемый HTML-код вручную вне программы FrameGang.
Далее для каждого фрейма нужно задать его имя (Name), которое может быть опущено, URL-адрес документа, загружаемого в данный фрейм изначально (Frame URL), а также выбрать значение параметра изменяемости размеров фрейма (Resizeable Frame Border) и параметра прокрутки содержимого фрейма (Frame Scrolling).
В любой момент можно посмотреть создаваемую фреймовую структуры в выбранном внешнем браузере, не выходя из программы FrameGang. Для этого служит кнопка Preview. Задание имени браузера производится в меню Options. После задания всех параметров следует сгенерировать HTML-код, соответствующий выбранной структуре фреймов, который будет записан в буфер обмена Windows (кнопка HTML Compile). Полученный код может быть вставлен из буфера обмена в нужное место HTML-файла при работе в любом редакторе.
Кнопки сохранения (Save) и открытия (Open) файла позволяют сохранять и считывать файл только в специальной кодировке, свойственной программе FrameGang и не предназначенной для иного использования.
Ниже представлен HTML-код, сгенерированный программой FrameGang для описанного примера:
Для получения корректного HTML-документа полученный код достаточно заключить между тэгами и . Можно добавить раздел заголовка документа
, в котором определить нужные данные, например, название документа (напомним, что название документа записывается между тэгами и ). Заметим, что современные браузеры могут правильно работать даже при отсутствии некоторых необходимых тэгов. Если приведенный выше HTML-код сохранить в виде файла с соответствующим расширением даже без добавления каких-либо тэгов, то и Netscape Navigator, и Microsoft Internet Explorer смогут правильно отобразить данный документ.
Программа FrameGang позволяет визуально проектировать фреймы, достаточна удобна и проста в эксплуатации, однако не лишена отдельных недостатков. В частности, нет возможности уточнить размеры фреймов, записывая нужные числа в окнах Width и Height, так как в них лишь отображаются размеры, устанавливаемые при перемещении границ фреймов мышью. Не задаются общепринятые параметры фреймов MARGINWIDTH и MARGINHEIGHT. Нет возможности записи файла в текстовом формате на диск, что не дает возможности воспользоваться данной программой автономно.
Редактор фреймов Frame-It
Еще одним специализированным редактором фреймов является программа Frame-It, информацию о которой можно получить по адресу:
http://www.iinet.net.au/~bwh/frame-it.html
Работа с этой программой во многом аналогична предыдущей. Сначала требуется определить основную структуру фреймов и их количество. Далее каждый фрейм при необходимости разбивается на несколько, образуя структуры второго уровня. Так же, как и предыдущей программе, количество уровней вложенности фреймов ограничивается двумя.
Для каждого фрейма задаются все необходимые параметры путем
заполнения соответствующих полей. В отличие от предыдущей программы здесь предусмотрено задание значений параметров MARGINWIDTH и MARGINHEIGHT. Кроме того, введен флажок Invisible Frame Borders, установка которого обеспечивает генерацию следующего фрагмента кода:
FRAMEBORDER="NO" BORDER="0" FRAMESPACING="0".
После задания необходимых параметров фреймов можно сохранить
сгенерированный HTML-код в файле или записать его в буфер обмена Windows.
Сгенерированный код будет содержать не только описание структуры фреймов, но и
начальный тег , а также пару тегов и , между
которыми записывается информация, предназначенная для браузеров, не отображающих
фреймы.
Для определенного
примера будет сгенерирован следующий код:
FRAMESРАСING="0">
с фреймовой структурой
Если в данном примере сбросить флажок Invisible Frame Borders, то генерируемый код значительно изменится:
scrolling=auto noresize>
scrolling=auto noresize>
scrolling=auto noresize>
scrolling=auto noresize>
scrolling=auto noresize>
Ваш браузер не может показывать документы
с фреймовой структурой
Информация
об использовании фреймов на WWW
Для получения информации о фреймах можно обратиться к следующим адресам на WWW:
http://www.spunwebs.com/sites2c/frmtutor.html
http://union.ncsa.uiuc.edu/HyperNews/get/www/html/guides.html
http://cox.asu.edu/Trial/faq/webfaqs/frame/
http://www.netlingo.com/more/framestarget.html
http://www.aubg.bg/beast/students/raduluc/teach/fr/
http://www.as.net/frame/
http://www.cqi.com/~pmurphey/instruction/
http://www.iwaynet.net/~rtyler/htmltutorial/frames.html
http://edbo.com/frames/
http://bela.fei.tuke.sk/netscape/frames/
http://www.newbie.net/frames/2ed/rnenu.htmtfcontents
http://infoserver.etI.vt.edu/coe/COE_Students/laughon/frame.html
http://www.htmlhelp.com/frames/syntax/
http://www.woodhill.co.uk/html/
http://www.htmlhelp.com/design/frames/
В этом выпуске мы поговорим о фреймах
. Фреймы
по своей сути очень похожи на таблицы, но в отличие от таблиц, каждый фрейм независим и в каждом из них может быть отдельная web страница со своим адресом.
На рисунке видим достаточно распространенную структуру сайта. Ее можно представить в виде таблицы, а можно все это сделать при помощи фреймов. В верхний фрейм можно загрузить страницу с логотипом и меню, в левый – страницу с навигацией по сайту, в центральном фрейме будет страница с основным содержимым сайта, в правый фрейм загрузим страницу с рекламными баннерами, а в нижний – страницу с конта
ктной информацией. Вот вкратце что такое фреймы.
Теперь рассмотрим, как это все можно осуществить.
Особенностью документа, содержащего фреймы, является то, что он не содержит контейнера BODY
. Вместо него используется контейнер FRAMESET
. Общий синтаксис фреймов выглядит следующим образом:
…
….
В контейнере ….
располагаются теги
, которые определяют содержимое фреймов.
У тега
есть два параметра:
rows = число
– количество строк (горизонтальных подокон).
cols = число
– количество столбцов (вертикальных подокон).
Вообще говоря, значение параметров rows и cols задаются не совсем числами, а перечислением чисел через запятую. Сколько будет идти чисел, столько строк или столбцов и будет, а числа определяют размер фрейма. Главное, чтоб сумма этих чисел составляла всю ширину экрана.
Давайте, разберем это на примере, и все будет понятно. Сейчас создадим фреймовый документ следующего вида:
Код, который определит нам такую структуру фрейма, будет выглядеть так:
В первой строке приведенного кода открывается контейнер frameset, в параметре cols указано, что будет три вложенных фрейма. У первого ширина будет 30% от всей ширины экрана. У третьего ширина будет тоже 30% от всей ширины экрана. А второй фрейм займет все оставшееся место. Да символ “*”
(звездочка) означает занять все оставшееся место на экране.
Кстати, рассмотрим, каким образом фреймам можно задавать размеры в параметрах cols и rows:
Можно задать размер, поставив просто число. Это число, будет определять размер фрейма в пикселях.
Можно задать значение ширины в процентах. Причем, если сумма процентов всех колонок будет превышать 100%, то все фреймы пропорционально уменьшаться, что бы общая сумма было равна 100%. Аналогично ситуация будет, если сумма процентов всех колонок будет менее 100%, то все фреймы пропорционально увеличатся, что бы общая сумма было равна 100%.
Можно задавать размер фрейма символом “”
(звездочка). Это означает, что фрейм должен занять все оставшееся место. Если будет указано, например
, то есть две звездочки, то все оставшееся место будет поровну разделено между этими двумя фреймами (в данном случае по 40%).
Можно комбинировать варианты задания размеров фреймов. Например:
Этот код означает, что у первого фрейма размер будет 70 пикселей, у третьего 40% ширины экрана, а второй займет все оставшееся место.
С первой строкой кода разобрались полностью. Идем дальше.
Далее следуют теги
. Поскольку через запятую в параметре cols
тега frameset
задано три числа (то есть будет три фрейма), то и тегов
должно быть тоже три. Значением параметра src является адрес web страницы, которая будет загружаться в данный фрейм. Адрес, как видно из примера, может быть абсолютным и относительным.
И в последней строке закрывается контейнер
.Если заменить в первой строке кода параметр cols на rows, то мы получим такой же фреймовый документ, состоящий из трех фреймов. Только разбиение на фреймы будет идти по вертикали.
Параметры rows
и cols
одновременно использовать нельзя. Это приводит к ошибкам, и неверному отображению содержимого.
У всех сейчас возник вопрос о том, как создать такую структуру, о которой я говорил в самом начале статьи. К этому вернемся чуть позже, а пока обратимся к тому, что у нас сейчас происходит в браузере.
В браузере мы видим три страницы, каждая из которых находится в своем фрейме.
При этом мы, наведя курсор мыши к границам фреймов, можем изменять размеры фреймов, так же видны полосы прокрутки и границы между фреймами. Это не всегда нужно, даже скорее совсем не нужно. А всем этим можно управлять благодаря параметрам тегов frame
и frameset
.
Параметры тегов frame
и frameset
:
src =”url”
– обязательный параметр. Указывает адрес страницы, которая будет отображена внутри фрейма. Используется только для frame.
noresize
– отменяет возможность изменения размеров. Используется только для frame
.
scrolling=”yes/no/auto”
– определяет наличие полос прокрутки. Значение yes – указывает на присутствие полос прокрутки. Значение no – указывает, что полос прокрутки не будет. При значение auto – браузер сам определяет, будут ли полоски прокрутки. Используется только для frame
.
name=”frame-name”
– имя фрейма. Данный параметр используется для взаимодействия между фреймами. Подробнее о нем поговорим чуть позже. Используется только для frame
.
border=число
– толщина границ между фреймами. Если принимает значение 0, то границы между фреймами не отображаются. Используется только для frameset.
framespacing=”число”
– расстояние между фреймами. Используется только для frameset.
Используя эти параметры, можно получить страницу, у которой не отображаются границы между фреймами, нет возможности изменять размеры фреймов и у двух последних фреймов запретим скроллинг. Код такой страницы выглядит следующим образом:
Есть еще несколько параметров, но они не однозначно работают, поэтому я считаю целесообразным их даже не упоминать в выпуске.
Пожалуй, с параметрами все. Рассмотрели на примере как их применять.
Теперь создадим фреймовую структуру, о которой я говорил в самом начале выпуска.
Для этого, создаем структуру из трех фреймов с разбиением по вертикали.
То есть, там где логотип и меню сайта высота будет 100 пикселей. Где контактная информация высота будет 70 пикселей. Все остальное место займет строка с навигацией сайта, основным содержимым сайта и рекламными баннерами.
Соответственно, вместо тега
, мы должны вставить еще один контейнер
..
с тремя столбцами, и в каждый записать свой адрес страницы. Видите, ничего сложного, мы просто вместо тега
вставляем новый, нужный нам, контейнер
..
.После этого вставляем наш третий фрейм с контактной информацией и закрываем главный контейнер