Фрейм - это область на сайте (окно), в которой видно другую веб-страницу. Веб-мастера используют такую возможность, чтобы продемонстрировать главную страницу сайта своих друзей или партнеров. Тот же прием используется, чтобы отображать в окошках форму поиска и рядом его результат, и т. д.
Но в основном фреймы используются в создании крупных веб-порталов, где требуется немалое количество пунктов меню и подменю. О таких обычно говорят: "сайт на фреймах". Для создания подобного ресурса требуется хорошее знание HTML-языка.
При помощи данного "сервиса" возможно создание нескольких фреймов на странице, вот только взаимосвязанных элементов таким образом вам не получить.
Во многих программах для создания сайтов предусмотрена возможность установки соответствующего модуля. Например, для Joomla фрейм - это модуль "Обёртка (Wrapper)".
Если его здесь не будет, значит, он не включен. Чтобы воспользоваться ним, сначала нужно его активировать здесь: вкладка "Расширения", далее "Менеджер расширений", далее вкладка "Управление". И ищем в открывшемся списке, можно для быстрого поиска в поле "Фильтр" ввести слово: Wrapper. Напротив данного модуля должен стоять значок зелёного цвета с галочкой внутри. Красный кружок с точкой внутри будет означать, что данный плагин выключен.
После этой процедуры можно вернуться в "Менеджер модулей", создать фрейм и установить его параметры.
Как видно на картинке, модуль позволяет установить: заголовок над фреймом, позицию модуля, выбрать страницы сайта, на которых он будет отображаться. А также настроить ширину, высоту; добавить рамку и собственно ссылку на веб-страницу. Если во фрейме вы хотите отобразить главную страницу какого-либо сайта во всю ширину, то 100%, установленных по умолчанию, будет недостаточно. Можно сразу смело ставить 400%. Высоты 200 обычно хватает, чтобы отобразить верхнее меню страницы. Весь остальной контент будет виден, если пользователь (посетитель сайта) воспользуется полосой прокрутки.
Вот пример того, что такое фрейм в Джумле.
Модуль Джумла для создания фрейма очень удобен и прост в применении. Однако его возможности ограничены, как и возможности конструктора.
В практике создания сайтов из фреймов этот тег (его применение) уже давно отошел на второй план. Их смогли заменить модули, настройки в программах-конструкторах, генерирующие код для веб-страницы без участия сайтостроителя. Однако в некоторых случаях этого бывает недостаточно. Например, когда фрейм - это целостная сложная структура из областей, отображаемых в браузере. Так видят его владельцы сложноструктурированных сайтов. На её создание идут только в крайних случаях, поскольку фреймовские сайты создаются исключительно при помощи специализированных тегов.
Всю страницу сайта можно разбить на области. Например, так:
Такую структуру (её называют вложенной) можно получить, прописав внутри тега атрибут cols, означающий расположение фрейма по горизонтали, и rows - по вертикали. Следом ставится знак = и прописываются размеры. Например, 60%, 40% - процентное соотношение (одно окно займет 60% пространства браузера, другое, соответственно, 40%). Или 100, 200 - соотношение размеров в пикселях. Размеры одного из фреймов можно вообще не задавать (установится по умолчанию). Для этого после или перед запятой нужно указать символ *.
Внутри этой пары frameset прописывает каждый фрейм с параметрами: src=, далее в кавычках дается ссылка на веб-страницу и name= с заголовком (например, Фрейм 1).
Заметьте, в нашем примере для фреймов второго и третьего размеры прописываются только один раз.
Множество задумок позволяют выполнить фреймы. Примеры их расположения в окне браузера можно приводить бесконечно (меняя код соответствующим образом). Однако практического применения эти сведения не находят уже давно. Фреймы, если и используются сегодня при создании сайтов, то только в виде модулей в бесплатных CMS или в виде iframe.
Странно, почему он получил такое название, здесь больше подходит слово "встроенный". Этот фрейм создан для отображения содержимого файла. Вы загружаете в базу какой-либо документ или файл, при помощи тегов айфрейма прописываете путь к нему - и посетители увидят текст файла (видео или изображение). К сожалению, браузеры не всегда отображают содержимое. Для этого веб-строители вписывают между открывающим и закрывающим тегом фразу: "Ваш браузер не отображает содержимое".
Например, Seopult.ru - известный сервис у мастеров по продвижению. Только не его основной сайт, а зеркало I.seopult.pro, созданное для клиентов портала. Код айфрейма здесь прописан так:
.В айфрейм добавляются атрибуты:
- ширины (width) и высоты (height=);
- выравнивания по краю align;
- отступов, которые можно и не прописывать: по умолчанию задается значение 6 - этого вполне достаточно;
- при помощи allowtransparency можно задать прозрачность области фрейма, чтобы было видно фон страницы;
- плюс уже знакомые scr, name, scrolling, border.
Навигация при помощи айфрейма
Самое интересное умение в области создания фреймов - это написание кода, позволяющего открывать в окне контент по ссылке, - то, что сделали создатели зеркала Seopult, только сразу с несколькими ссылками (одновременно доступными пользователю на одной странице).
Для этого берется айфрейм, в нем дополнительно прописывается имя через name=. Например, zagolovok. Далее перед ним в тегах и прописываются ссылки через a HREF = с обязательным указанием после них атрибута target=zagolovok. Перед тем как использовать закрывающий тег а, указывается надпись, которая будет служить ссылкой-кнопкой. Теги "а" открывающие и закрывающие заключаются в тег p.
Таких строк в коде можно прописать несколько, чтобы в итоге на сайте получить в один ряд несколько кнопок-ссылок, нажимая на которые в окне снизу будет отображаться разный контент.
Код будет выглядет так:
Как это будет выглядеть на сайте:
Как вставить iframe в сайт Джумла
Стандартно в панели управления Джумла есть включенный (т. е. готовый к использованию) модуль "HTML-код". При помощи него можно вставить любой код в любое место на сайте. Однако код с тегом айфрем он упорно игнорирует. Поэтому будем использовать специальный модуль Jumi.
Прежде всего его нужно скачать из интернета и установить к себе через административную панель Джумла: "Расширения" - "Менеджер расширений" - "Выбрать файл". Укажите путь к скачанному архиву и нажмите "Загрузить".
После удачной установки заходим в "Менеджер модулей" и создаем новый. Выберите тип Jumi. В открывшемся окне, в поле "Произвольный код", введите подготовленный айфрем, как было показано в предыдущем абзаце статьи. Дайте модулю заголовок, укажите позицию размещения и страницы сайта. Нажмите сохранить и проверьте, что получилось.
Браузеры и фреймы
Все популярные браузеры хорошо отображают содержимое окон frame: Chrome, Safari, Firefox, Android, iOS. Особенно высокий показатель в этом отношении у Internet Explorer и Opera. И всё же нет гарантии, что посетитель вашего сайта увидит содержимое всех окон. На этот случай следует оставить сообщение при помощи тега noframe (открывающего и закрывающего). В него можно вписать следующее: "Ваш браузер устарел. Для отображения содержимого сайта обновите версию". Если браузер пользователя правильно отображает фреймы, то это сообщение он не увидит.
Итак, фрейм - это область или окно сайта, которое имеет собственный URL-адрес. Используется для отображения в одном поле браузера сразу нескольких веб-страниц или независимых документов, также имеющих свой URL. Несмотря на то что фреймы позволяют хорошо организовать сложноструктурированный сайт, их уже давно не используют, кроме iframe. Применение этого тега по-прежнему актуально для загрузки в определенном окне презентаций, видеоплеера, текстовых документов. Его активно используют крупные и известные в сети веб-ресурсы.
Фреймы — это HTML-элементы, позволяющие разделить окно веб-браузера на несколько независимых окон, в каждое из которых можно загрузить отдельный HTML-документ. Каждое такое окно (фрейм) может иметь собственные полосы прокрутки и функционировать независимо от других независимых окон либо наоборот управлять их содержанием. Они могут применяться для организации постоянно находящегося в одном окне меню, в то время как в другом окне располагается непосредственно сама информация. Пользователи могут обращаться к меню в любой момент, и им не нужно возвращаться к предыдущей странице, чтобы выбрать другой пункт меню. Применение фреймов позволит вам «закрепить» в окне браузера изображения или другие неподвижные по замыслу элементы интерфейса, в то время как остальная часть страницы будет прокручиваться во фрейме.
Однако, стоит отметить, что в наши дни фреймы считаются устаревшим средством, а сайты с фреймами теперь считаются несолидными, так как профессиональные веб-мастера никогда не используют фреймы в своих проектах. С фреймами связан целый ряд печально известных проблем. Они, например, сбивают с толку поисковые машины, поскольку на страницах, которые содержат контент, нет ссылок на другие документы. Если вы хотите получать посетителей с поисковых систем, забудьте о фреймах. Понравившуюся страницу пользователю невозможно поместить в раздел закладки браузера, так как фреймы скрывают адрес страницы, на которой он находится, и всегда показывают только адрес веб-сайта. По этой причине они создают проблемы для браузеров при отслеживании хронологии и еще они не слишком приспособлены для разных размеров экранов и мобильных устройств.
Несмотря на то, что проекты с фреймами встречаются во всемирной паутине все реже, изучение HTML было бы неполным без рассмотрения темы о фреймах. У фреймов наряду с недостатками есть и некоторые достоинства, которые не позволяют отбросить эту технологию как бесперспективную.
Создание фреймов
Структура HTML-документа с фреймами внешне очень напоминает формат обычного HTML-документа. Как и в обычном HTML-документе, весь код помещен между парными тегами
и
, а в контейнере
располагаются заголовки. Основное отличие документа с фреймами от обычного HTML-документа — у документа с фреймами вместо тега
применяется парный тег
(от англ. frame set – набор фреймов).
В следующем примере приведена структура HTML-документа с фреймами:
Пример: Структура HTML-документа с фреймами
frame_top |
frame_left |
frame_right |
Документ с фреймами
В приведенном примере страница содержит три области, в каждую из которых первоначально загружаются HTML-документы frame_top.html, frame_left.html и frame_right.html. Помимо HTML-документов, фрейм может содержать и графику. Для этого необходимо указать адрес соответствующего изображения в атрибуте src
, например src="image.gif"
. Обратите внимание, что элемент
используется без закрывающего тега.
Внутри контейнера
могут содержаться только теги
или другой набор фреймов, охваченный тегами
и
.
Тег
имеет следующие атрибуты:
- rows
— описывает разбиение страницы на строки:
- cols
— описывает разбиение страницы на столбцы:
Области, полученные в результате такого разбиения страницы, и будут являться фреймами. Отсутствие этих атрибутов определяет один фрейм, который займет все окно браузера.
В значении атрибутов rows
и cols
необходимо указывать не количество строк или столбцов, а значение ширины и высоты фреймов. Все значения в списке разделяются запятыми. Размеры могут быть указаны в абсолютных единицах (в пикселах) или в процентах:
- cols="20%, 80%"
— окно браузера разбивается на две колонки с помощью атрибута cols
, левая колонка занимает 20%, а правая 80% окна браузера.
- rows="100, *"
окно браузера разбивается на два горизонтальных окна с помощью атрибута rows
, верхнее окно занимает 100 пикселов, а нижнее — оставшееся пространство, заданное символом звездочки.
Как видно из данного примера, контейнер
с атрибутом rows
вначале создает два горизонтальных фрейма, а вместо второго фрейма подставляется еще один
, который разбивает нижний горизонтальный фрейм на две колонки с помощью атрибута cols
, левая колонка занимает занимает 20%, а правая 80% окна браузера.
Если браузер не поддерживает фреймы, то в окне будет отображен текст, расположенный между тегами
и
. Все, что находится между тегами
и
, игнорируется браузерами, поддерживающими фреймы. Таким образом разработчику нужно написать код, дублирующий содержимое фреймов другими средствами, и поместить этот код в контейнер
, тогда все пользователи смогут увидеть его веб-страницу.
Как уже отмечалось, для вставки в документ отдельного фрейма служит непарный тег
. Атрибут src
задает документ, который должен отображаться внутри данного фрейма, например: . Если атрибут src
отсутствует, отображается пустой фрейм.
Границы или пространство между фреймами
По умолчанию, браузер отображает серую и, как правило, в виде трехмерной линии границу между фреймами, с помощью которой посетители могут регулировать размер фрейма.
Границей фрейма можно управлять, как и любыми другими элементами фрейма. Для этого существует несколько атрибутов элемента
, позволяющих настраивать границы фреймов. Толщина линии границы определяется атрибутом border
. По умолчанию значение толщины границы равно пяти.
Чтобы скрыть границу фрейма, необходимо либо указать значение ширины границы равным нулю, либо присвоить значение «no» или «0» атрибуту frameborder
. Атрибут frameborder
может принимать только два противоположных значения. Если значение атрибута frameborder
равно «yes» или «1», то граница фреймов будет отображаться, а если «0» или «no», то нет. Учтите, что значения атрибута frameborder
различаются для разных браузеров. Чтобы решить эту проблему используйте дважды атрибут frameborder
, а для некоторых браузеров требуется еще добавить атрибут framespacing
со значением «0»:
В следующем примере убираем границу между фреймами:
Пример: Убираем границу между фреймами
Фреймы без границ
Если вы удалите границу между фреймами, посетители не смогут изменять размер фрейма в браузере. Вы можете также не допустить изменения размера фрейма, сохранив границы, используя атрибут noresize
:
С помощью атрибута bordercolor
можно изменить цвет границы фрейма, необходимо только указать код или соответствующее зарезервированное имя цвета.
Ниже приведен пример html-страницы, которая содержит описанные выше атрибуты управления границей фрейма: цвет границы — красный, изменять размер верхнего фрейма нельзя:
Пример: Управление границей фреймов
frame_top |
frame_left |
frame_right |
Управление границей фреймов
Если вы хотите расположить страницу, отображаемую внутри фрейма, ближе к его границам, или, наоборот, отодвинуть дальше, измените атрибуты marginheight
и marginwidth
тэга
. Атрибут marginheight
определяет отступ между содержимым фрейма и его верхней и нижней границами. Синтаксис:
Атрибут marginwidth
определяет отступ между содержимым фрейма и его правой и левой границами. Синтаксис:
Данная строка html, например, располагает отображаемую страницу вплотную к границе фрейма:
Если страница отображает нежелательную для вас полосу прокрутки, вы можете решить эту проблему, указав атрибут scrolling
="no" в тэге
. Но учтите, что если фрейм будет недостаточно большим, чтобы отобразить все содержимое страницы, то у посетителя не будет никакой возможности прокрутить отображаемую страницу.
Ссылки внутри фреймов
Переход по ссылке в обычном HTML-документе осуществляется следующим образом: нажимаете ссылку и текущий документ заменяется новым в текущем либо в новом окне браузера. При использовании фреймов схема загрузки html-документов отличается от обычной и главное отличие — это возможность загружать html-документ в один фрейм из другого фрейма.
Для загрузки документа в определенный фрейм используется атрибут target
тега
. В качестве значения атрибута target
используется имя фрейма, в который будет загружаться документ, указанный атрибутом name
тега
. Стоит также отметить, что имя фрейма должно начинаться либо с цифры либо с латинской буквы. Следующие имена используются в качестве зарезервированных:
Для внешних ссылок следует задавать в качестве значения для атрибута target либо _top , либо _blank , для того, чтобы сторонние проекты отображались не в ваших фреймах, а занимали полное окно браузера.
В следующем примере изображен HTML-документ, в правый фрейм которого загружается страница по ссылке, помещенной в верхний фрейм. Ссылка на документ, который откроется в правом фрейме:
Google
Правому фрейму присваивается имя frame_right
:
Чтобы документ загружался в указанный фрейм, используется конструкция target="frame_right"
, как показано в примере:
Пример: Ссылка на другой фрейм
Ссылка на другой фрейм
Ваш браузер не отображает фреймы
Плавающие фреймы
Элемент
(сокращение английского термина «плавающий фрейм») позволяет встроить в любое место веб-страницы отдельный HTML-документ или другой ресурс.
Содержимым плавающего (встроенного) фрейма может быть любая НТМL-страница, как с вашего ресурса, так и с другого веб-сайта. Как вы уже поняли, плавающие фреймы создаются с помощью элемента
, который в отличие от тега
вставляется не между тегами
и
, а между тегами
и
.
В элементе
можно использовать те же атрибуты, что и для фрейма
, за исключением атрибута noresize
— в отличие от обычных фреймов, для встроенных фреймов возможность изменения размеров на экране не предусмотрена:
Атрибут
| Описание
|
---|
src
| используется для указания URL-aдpeca страницы, отображаемой во фрейме
|
height
| устанавливает высоту окна плавающего фрейма в пикселах или %
|
width
| устанавливает ширину окна плавающего фрейма в пикселах или %
|
name
| имя фрейма, по которому к нему можно будет обращаться в ссылках
|
frameborder
| задает обрамление у фреймов, может принимать значения 1 (есть обрамление) или 0 (нет об-рамления) (В HTML5 не поддерживается
)
|
marginwidth
| отступ слева и справа от содержания до границы фрейма (В HTML5 не поддерживается
)
|
marginheight
| отступ сверху и снизу от содержания до границы фрейма (В HTML5 не поддерживается
)
|
scrolling
| определяет вид полос прокрутки у фрейма и принимает значения yes (есть полосы), no (нет полос) и auto (полосы появляются при необходимости) (В HTML5 не поддерживается
)
|
allowfullscreen
| разрешает для фрейма полноэкранный режим
|
hspace
| Горизонтальный отступ от фрейма до окружающего контента
|
vspace
| вертикальный отступ от фрейма до окружающего контента
|
align
| определяет выравнивание фрейма
|
В следующем примере размеры плавающего фрейма заданы в пикселях, однако вы можете задавать их и в %:
Простому пользователю Интернета хочется, чтобы страницы сайтов были понятными и удобными к прочтению. Редко кто – то задумывается, как происходит структурирование данных. Этим вопросом озабочены веб – дизайнеры, что создают то изображение, которое в итоге пользователь видит на своем экране. Помощниками в этом деле выступают фреймы.
Предназначение фреймов
В буквальном понимании фрейм – это рамка вокруг изображения, окошко, граница. С помощью такого инструмента можно разграничить область страницы сайта на отдельные зоны, чтобы пользователю было легче просматривать информацию.
Специальный таг даст возможность воплотить свои цели в жизнь. Например, если нужно добавить фиксированную панель так, что она не будет передвигаться в отличии от другой части страницы, то фрейм с легкостью справится с задачей.
Основная цель такого инструмента веб – дизайнера состоит в том, чтобы правильно рассчитать и разделить пространство страницы сайта на секции. Но в этом есть и свой минус. Когда использование фреймов переходит рациональные границы, то можно забрать слишком много пространства и сайт станет менее интересным и удобным.
Принципы работы фреймов
Чтобы легче было понять, как создаются и внедряются фреймы, их можно представить в виде ячеек таблицы. Содержимое каждой ячейки представляет собой отдельную полноценную веб – страницу. Особенностью такого метода является то, что располагаться эта страница может и отдельно (на другом сервере, каталоге и т.п.).
Структура должна быть построена так, чтобы было понятно, где находится “начинка” каждого фрейма. Чтобы точно определить адрес каждого из них, присваивается индивидуальный URL.
Алгоритм создания фреймовой структуры
В зависимости от того, какую нагрузку будет нести сайт, особенности построения его страниц и степени сложности структуры, будет меняться и алгоритм создания фреймов.
Существует стандартный перечень, который позволит более подробно разобраться, как же выстраивается эта структура:
- Сперва нужно определить, какой вид будет иметь страница, какой размер будет у фреймов.
- Обдумать их содержание.
- Разработать код с использованием тагов, которые будут нести определенную смысловую нагрузку. От них будет зависеть, сколько окон будет на экране, какой процент будет занимать каждое из них и т.д.
- Нужно заполнить пустые фреймы содержимым.
Это лаконичное определение этапов. Каждый же уровень сопровождается большой совокупностью кодов и тегов, с которыми под силу совладать только веб – дизайнеру.
Таги и атрибуты – важные составляющие фреймов
Фреймовая структура невозможна без использования тагов и атрибутов. Вот некоторые из них, которые чаще всего используются в процессе:
- Таги для обрамления текста и компоновки фреймов. С их помощью вписывается информация о количестве, размерах и ориентации фреймов. Они имеют два атрибута. Первый позволяет установить число и размер строк на странице. Также указываются размеры в пикселях и процент от высоты экрана. Второй используется для построения столбцов.
- Таг, созданный для определения внешнего вида. Он имеет 6 атрибутов.
Также существуют целевые фреймы, которые применяются в исключительных случаях. К таким можно отнести:
- Фрейм “blank”, который позволит документу загружаться в новом пустом окне.
- Инструмент “self” укажет на то, что документ будет размещен в том фрейме, где активирована ссылка.
- Фрейм “tор” разрешает документу появляться в другом окне вне фрейма.
Для тех, кому чужд язык программирования, фреймы представляют собой нечто непонятное и труднодоступное. Но для веб – дизайнеров такой инструмент является базовым при создании привлекательных интернет – страниц. Если немного вникнуть в определение и функции этих помощников, то построение фреймовой структуры кажется уже не таким сложным делом.