Найти тему

Фреймы

В переводе на русский язык слово фрейм означает «рамка», «окно», «страница». Вопрос применимости фреймов в веб-дизайне является одним из дискутируемых. У применения фреймов есть и сторонники и противники. Но начнём с того, что такое фрейм, как он устроен, как создаётся и как работает.

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

Фрейм не может существовать «в единственном числе», если вы решите применить на своём сайте фреймовую структуру, то вам придётся для этого создать HTML-страницу, называемую фреймсет (правда, с недавних пор стало возможным создавать «внутренние фреймы» в отдельных HTML-страницах, но они применимы не во всех случаях). Фреймсет определяет конфигурацию экрана, задаёт месторасположение загружающихся при старте документов и целевые фреймы. Как правило, фреймсетом является файл INDEX.HTM, во фреймы которого загружаются HTML-странички.

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

Фреймов на странице в принципе может быть сколько угодно: два, три, и т. д., и размещаться они могут почти как угодно: сверху, снизу, по сторонам экрана. Но наиболее распространённой является конфигурация, состоящая из двух вертикальных фреймов: узкого слева (шириной около 150 пикселей) и широкого справа (занимающего остальную часть экрана). Разновидностью этой картины является также конфигурация, в которой широкий разбивается ещё на два неравных фрейма - от него отрезается верхняя горизонтальная часть высотой в 100 – 150 пикселей.

Работа фреймовой структуры происходит следующим образом: при загрузке веб-сайта (вызове его в браузер) в каждый из фреймов загружается стартовая страница. Эти стартовые страницы указываются в коде фреймсета. Как правило, в узкий вертикальный фрейм загружается главное меню сайта, а широкий фрейм является целевым для загрузки страницы, которая выполняет роль главной страницы сайта, на котором была бы дана информация по содержанию разделов веб-сайта. Наилучший вариант – создать страницу под характерным названием: например start.htm.

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

Достоинство и одновременно недостаток фрейма состоит в одном и том же: его неподвижности. С одной стороны – это кажется довольно удобным – предоставить посетителю возможность всегда видеть перед собой меню разделов сайта, но с другой стороны – занимая на экране казалось бы не так много места – всего каких-нибудь 100 – 150 пикселей в ширину, навигационный фрейм отнимает место у содержательной части веб-страницы и не даёт возможности поместить на это место никаких баннеров, ссылок, форм и так далее. Можно, конечно, всё это также поместить в фрейм под меню – но не многие посетители доберутся до этих объектов. Способ преодоления недостатков применения фреймов заключается в том, что фреймовая структура применяется только не нескольких заглавных страницах, а на контент-страницах применяется бесфреймовая структура страницы.

Наличие на странице фреймов браузеру указывается парным тегом:

<frameset> </frameset>

Количество и конфигурация фреймов задаётся при помощи атрибутов ROWS и COLS – ряды и столбцы. В параметрах атрибута указываются размеры фрейма (ширина или высота для вертикальных и горизонтальных фреймов соответственно). Размеры фрейма могут быть указаны в процентах (от ширины или высоты экрана), пикселях, или параметром «звёздочка» - «*», которым обозначается «всё нераспределённое пространство». Если размеры двух и более фреймов указаны при помощи звёздочек, то нераспределённое пространство будет разделено между ними в равных пропорциях.

Пример 8:

<frameset rows="64,25%,*">

В данном случае страница содержит три горизонтальных фрейма: первый высотой 64 пикселя, второй высотой в 25% высоты экрана и третий занимает оставшееся пространство.

Количеству заданных в теге <frameset> фреймов должно соответствовать количество тегов <frame>. В атрибутах тега <frame> задаются параметры фрейма: его название, целевой фрейм (в котором будут открываться страницы, вызванные по ссылке из находящейся в текущем фрейме страницы) и стартовый файл. Название фрейма указывается в параметрах атрибута «name», целевой фрейм – в параметрах атрибута "target", стартовый файл – в параметрах атрибута "src".

Пример 9:

<frame name="content" target="main" src="index.htm">

В данном примере имя фрейма – content, целевой фрейм – main, стартовый файл - index.htm.

Простая фреймовая страница выглядит следующим образом:

<html>

<head>

<title>Frame Page</title>

</head>

<frameset cols="150,*">

<frame name="contents" target="main" src="index.htm" scrolling="auto">

<frame name="main" src="start.htm" scrolling="auto">

<noframes>

<body>

<p>Эта страница использует фреймы, но ваш браузер не поддерживает их.

</body>

</noframes>

</frameset>

</html>

Появившийся здесь новый тег <noframes> </noframes> предназначен для браузеров, не поддерживающих отображение фреймов. Заключённый внутри этого тега текст отображается на экране монитора. Рекомендуется помещать в него код навигационного меню и краткие сведения о содержании сайта.

В теге <frameset> запрещено одновременно задавать ряды и колонки: это приведёт к ошибкам. В случае необходимости создания сложных фреймовых структур, в которых комбинируются горизонтальные и вертикальные фреймы, в парный тег <frameset> </frameset> вставляются дополнительные теги <frameset> </frameset>, в которых выставляются атрибуты и их значения.

В данном примере экран разбит на четыре равные части:

<frameset rows="*,*">

<frameset cols="*,50%">

<frame name="top">

<frame name="top1">

</frameset>

<frameset cols="*,50%">

<frame name="bottom">

<frame name="bottom1">

</frameset>

</frameset>

В теге <frameset> также можно задать атрибуты с параметрами:

  • frameborder=" " – предназначен для указания толщины разграничительной линии между фреймами;
  • border=" " – предназначен для указания ширины рамок фреймов;

В теге <frame> в качестве атрибутов также можно задать размеры отступов между фреймами:

  • marginwidth=" " – задаёт параметры для вертикальных отступов;
  • marginheight=" " – задаёт параметры горизонтальных отступов;
  • Scrolling - применяется для разрешения или запрещения скроллирования (прокручивания) фрейма. В параметрах указывается одно из значений:
  • yes - разрешает прокручивание и показывает полосы прокрутки;
  • no - запрещает прокручивание;
  • auto – разрешает прокручивание, но полосы прокрутки при этом отображаются только в случае необходимости (в тех случаях, когда размеры фрейма меньше, чем размеры объектов, которые должны быть показаны);
  • noresize - запрещает пользователю манипулировать размерами фрейма.

Пройдите курс по ссылке: Веб-технологии. Часть I