Вставка фрейма. Iframe и Frame — что это такое и как лучше использовать фреймы в Html
Тег
Тег
Синтаксис
...
Параметры
align
Определяет как фрейм будет выравниваться по краю, а также способ обтекания
его текстом.
frameborder
Устанавливает, отображать границу вокруг фрейма или нет.
height
Высота фрейма.
hspace
Горизонтальный отступ от фрейма до окружающего контента.
name
Имя фрейма.
scrolling
Способ отображения полосы прокрутки во фрейме.
src
Путь к файлу, содержимое которого будет загружаться во фрейм.
vspace
Вертикальный отступ от фрейма до окружающего контента.
width
Ширина фрейма.
Закрывающий тег
Обязателен.
Пример 1. Использование тега
Тег IFRAME
Ваш браузер не поддерживает плавающие фреймы!
Описание параметров тега
Параметр ALIGN
Описание
Для плавающего фрейма можно указать его положение на веб-странице или задать
способ обтекания текстом или другими элементами веб-страницы. Способ выравнивания
задается параметром align
тега
.
Синтаксис
...
Аргументы
absmiddle
Выравнивание середины фрейма по середине текущей строки.
baseline
Выравнивание фрейма по базовой линии текущей строки.
bottom
Выравнивание нижней границы фрейма по окружающему тексту.
left
Выравнивает фрейм по левому краю окна.
middle
Выравнивание середины фрейма по базовой линии текущей строки.
right
Выравнивает фрейм по правому краю окна.
texttop
Верхняя граница фрейма выравнивается по самому высокому текстовому элементу
текущей строки.
top
Верхняя граница фрейма выравнивается по самому высокому элементу текущей
строки.
Наиболее популярные параметры — left
и right
,
создающие обтекание текста вокруг фрейма. Чтобы текст не прилегал плотно к содержимому
фрейма, рекомендуется в теге
добавить
параметр hspace
и vspace
,
задающих расстояние до текста в пикселах.
Значение по умолчанию
Пример 2. Выравнивание плавающего фрейма
Тег IFRAME, параметр align
Lorem ipsum dolor sit amet, consectetuer adipiscing elit...
Параметр FRAMEBORDER
Описание
По умолчанию вокруг содержимого фрейма рисуется рамка с эффектом трехмерности.
Чтобы ее скрыть применяется параметр frameborder
.
Синтаксис
... ...
Аргументы
yes (или 1)
Отображает рамку вокруг фрейма.
no (или 0)
Скрывает рамку вокруг фрейма.
Значение по умолчанию
Пример 3. Сокрытие исходной рамки вокруг фрейма
Тег IFRAME, параметр frameborder
Параметр HEIGHT и WIDTH
Описание
Для изменения размеров фрейма средствами HTML предусмотрены параметры width
и height
. Допускается использовать значения в пикселах
или процентах. Если установлена процентная запись, то размеры фрейма вычисляются
относительно родительского элемента — контейнера, где находится тег
.
В случае отсутствия родительского контейнера, в его качестве выступает окно
браузера. Иными словами, width="100%"
означает, что фрейм будет занимать всю ширину веб-страницы.
Если значение высоты или ширины не заданы, то фрейм автоматически принимает
размер 300 х 150 пикселов.
Синтаксис
... ...
Аргументы
Любое целое положительное число в пикселах или процентах.
Значение по умолчанию
width — 300 пикселов, height — 150 пикселов.
Пример 4. Ширина и высота фрейма
Тег IFRAME, параметр width
Параметр HSPACE и VSPACE
HTML:
3.2
4
XHTML:
1.0
1.1
Описание
Для любого фрейма можно задать невидимые отступы по горизонтали и вертикали
с помощью, соответственно, параметров hspace
и
vspace
. Особенно это актуально при обтекании содержимого
фрейма текстом. В этом случае, чтобы текст не «наезжал» плотно на
границу фрейма, необходимо вокруг него добавить пустое пространство.
Для указания имени используется набор символов, включая числа и буквы. При
обращении к фрейму по имени соблюдайте то же написание, что и в параметре name
.
Значение по умолчанию
Тег IFRAME, параметр name
Чебурашка
Крокодил Гена
Шапокляк
Параметр SCROLLING
Описание
Если содержимое фрейма не помещается в отведенные размеры, автоматически появляются
полосы прокрутки для просмотра информации. В некоторых случаях, полосы прокрутки
нарушают дизайн веб-страницы, поэтому от них можно отказаться. Для управления
отображением полос прокрутки используется параметр scrolling
.
Синтаксис
...
Аргументы
auto
Полосы прокрутки добавляются браузером только по необходимости, в том случае,
когда содержимое фрейма превышает его видимую часть.
no
Запрещает отображение полос прокрутки.
yes
Всегда вызывает появление полос прокрутки, независимо от объема информации.
Значение по умолчанию
Пример 7. Сокрытие полос прокрутки
Тег IFRAME, параметр scrolling
Параметр SRC
Описание
Указывает адрес файла (URL), который будет загружаться во фрейм. Это может
быть HTML-документ, изображение или серверная программа. Допустимо использовать
не только путь к файлу, но также имя функции JavaScript, которое возвращает
значение.
Синтаксис
...
Аргументы
В качестве значения принимается полный или относительный путь к файлу.
Значение по умолчанию
Пример 8. Путь к файлу
Тег IFRAME, параметр src
Теги фреймов
FRAME определяет свойства отдельного фрейма, на которые делится окно браузера.
FRAMESET определяет структуру фреймов на веб-странице. Фреймы разделяют окно браузера на отдельные области, расположенные вплотную друг к другу. В каждую из таких областей загружается самостоятельная веб-страница определяемая с помощью тега FRAME.
IFRAME создает плавающий фрейм, который находится внутри обычного документа, он позволяет загружать в область заданных размеров любые другие независимые документы.
NOFRAMES отображается в браузере, когда он не поддерживает фреймы и не умеет их интерпретировать. Браузеры, которые работают с фреймами, полностью игнорируют содержимое тега NOFRAMES.
Здравствуйте, уважаемые читатели блога сайт. Сегодня речь пойдет о фреймах в языке Html. Понятное дело, что начнем мы сначала, а именно с того, что это такое за зверь. Так же поговорим о настоящем (Frame) и будущем (Iframe) этих элементов в языке гипертекстовой разметки текущей версии и в новом стандарте Html 5 при .
В конце статьи, после детального описания процесса создания встроенных фреймов и их классической структуры в Html коде (уже редко используется), мы затронем вопрос актуальности построения сайта на них, а так же обсудим возможные способы их применения в текущий период времени на примере моего блога.
Что это такое и чем отличается Iframe от Frame
Что же это такое? Оказывается, что они могут использоваться не только на сайтах, но и в каких-либо приложениях к программам, но отличаются тем, что окно web страницы или же приложения будет разделено на несколько областей, в каждую из которых загружен какой-то отдельный документ. Причем, эти области фреймов ведут себя не зависимо друг от друга.
Наверное, самый наглядный пример их использования, с которым сталкивались практически все из вас, это так называемые файлы помощи (хелпы), которые имеются у многих программ установленных на вашем компьютере.
В левое окно загружен файл с меню хелпа, а в правом выводится соответствующий выбранному пункту меню документ. Примечательно, что такая структура позволяет не подгружать в левое окно повторно файл с меню при открытии нового документа в правом. Именно в этом и состоит основное преимущество использования фреймов
в Html.
Собственно, само название этих элементов следует трактовать именно как самостоятельное окно. С помощью фреймов у нас появляется возможность разбить одно большое окно на несколько фрагментов, которые в свою очередь могут служить приемниками для отдельных независимых друг от друга документов (страниц, текстов, изображений, видео и т.п.).
Как создается фреймовая структура в языке гипертекстовой разметки? Если говорить про стандарт Html 4.01 (по классификации ), который является основным на текущий момент времени, то для этого используются три элемента — Frame, Frameset и Noframes.
Iframe — встроенный фрейм в стандарте Html 5
Если же говорить про стандарт Html 5 (наше будущее, некоторые элементы которого уже поддерживаются многими браузерами), то там тегов Frame, Frameset и Noframes, а равно и классической фреймовой структуры уже не будет, вместо них предусмотрен один единственный тэг Iframe (встроенный фрейм), о котором мы и поговорим в начале, а потом уже все внимание обратим на классическую схему из версии 4.01, которая сейчас, собственно, и используется.
Iframe в отличии от классики, которая рассмотрена ниже, не требует замены тега Body на теги Frameset. Т.е. этот тег можно будет вставлять на обычные страницы, например, внутри параграфа или в любом другом месте. По своей сути этот элемент очень похож уже на рассмотренный нами тег Img.
Он является строчным с замещаемым контентом, потому что ведет себя в точности как строчный элемент, но вот внутри него отображается посторонний внешний контент
. Таких элементов в языке Html всего четыре — Img, Iframe, Object и Embed. Поэтому наш герой подразумевает наличие внешнего файла, который будет подгружаться в область, размер которой задается с помощью атрибутов этого тега.
Т.о. Iframe является сточным элементом, в который загружается внешний объект (например, видеоролик). А для указания пути до этого файла, который должен подгружаться на странице, служит специальный атрибут Src. Но в отличии от Img элемент Iframe парный, т.е. имеется еще и закрывающий тег
:
В данном примере показан вывод на странице видеоролика с Youtube с помощью Iframe. Для того, чтобы ограничить область фрейма (окна), куда будет подгружаться внешний файл, предусмотрены атрибуты Width и Height
, значения которых задаются в пикселах:
Т.е. этот тег создает область, в которую загружается какой-то внешний объект (не важно, с вашего ли сайта или же с другого ресурса). Ширина и высота области задаются с помощью Width и Height, а в атрибуте Src указывается путь до этого объекта.
Все эти атрибуты элемент Iframe унаследовал от подобных ему строчных тегов с замещаемым контентом (типа уже упомянутого выше Img). Ну, и еще у картинок он взял и атрибуты Hspace и Vspace
, которые позволяют задать отступы от границ фрейма до обтекающего его текста.
Так же показательно, что выравнивание встроенного фрейма осуществляется абсолютно так же, как мы это могли видеть при изучении картинок в Html — . Все тот же Align
, но уже для тега Iframe с возможными значениями Bottom, Top, Middle, Left и Right.
Но этот элемент взял так же и несколько атрибутов от тэга Frame из классической фреймовой структуры, о которой мы очень и очень подробно поговорим ниже по тексту. К таким атрибутам относится Name, значение которого можно использовать в качестве значения для того, чтобы нужный вам документ при переходе по ссылке открывался именно в окне этого фрейма (подробности читайте ниже).
Так же в Iframe из тега Frame перекочевал атрибут Frameborder, который имеет только два значения — либо 0 (рамка вокруг фрейма не отображается), либо 1 (рамка видна). По умолчанию используется значение Frameborder=1, поэтому для ее удаления вам потребуется прописать Frameborder="0":
Из Frame в этот элемент перешел еще и атрибут Scrolling, имеющий по умолчанию значение Auto — полосы прокрутки во фрейме будут появляться по мере необходимости, когда контент будет больше по размеру окна, предназначенного для его отображения.
Ну, и атрибуты Marginwidth и Marginheight тоже перешли из элемента Frame. Они будут подробно рассмотрены ниже по тексту, но в двух словах — они позволяют задать отступ по ширине и высоте от краев фрейма до контента, который в него помещается.
Как я уже упоминал, наглядным примером использования Iframe является :
Вставив Iframe напрямую в web страницу, вы получите вывод ролика с ютуба. Делаем вывод, что этот элемент является помесью строчных элементов с замещаемым контентом и, собственно, классических фреймов, о которых сейчас и пойдет речь.
Фреймы на основе тегов Frame и Frameset — их структура
Итак, создание классической фреймовой структуры начинается с того, что вы прописываете в Html коде вместо открывающего и закрывающего тега Body, который обычно должен присутствовать в любом документе, заменяющий его контейнер на основе элементов Frameset
.
Принципиальным моментом является как раз то, что элемент Body в этом случае использовать нельзя — либо Body (для обычного документа), либо Frameset (при создании фреймовой структуры документа):
Каждый фрейм, который мы с вами формируем внутри главного, создается с помощью отдельного элемента Frame
. Этот тег является одиночным и в нем мы задаем путь до того документа, который должен будет подгружаться в это окно.
Третий элемент, который мы еще с вами не затронули — это Noframes
. Он парный и позволяет написать внутри себя какой-то текст, который будет обработан браузером и отображен на web странице только в том случае, если этот самый браузер (или другое устройство отображения) не поддерживает фреймы. Это может произойти, например, в случае использования какого-нибудь обозревателя для мобильных устройств.
Обычно в Noframes добавляют не только информацию о сложившейся ситуации с невозможностью обработки фреймовой структуры, но и добавляют так же возможность перейти на другие страницы, где можно будет продолжить работу без их использования. Сказать о нем что-то еще трудно, поэтому продолжим.
Получается так, что элемент Frameset, используемый заместо тега Body, занимает все место, которое отведено для области просмотра, а уже внутри этой области будут создаваться фреймы с помощью отдельных элементов Frame. В связи с этим возникает вопрос — как делить область просмотра между отдельными окнами или, другими словами, как задать размер каждого из них.
Делается это с помощью добавления соответствующих атрибутов к элементу Frameset. Их имеется целых два — Cols и Rows
. Cols задает разделение большого окна на вертикальные фреймы или же колонки, а Rows позволяет разделить его на горизонтальные окна или же строки.
Создание структуры на основе Frameset и его атрибутов Cols и Rows
В качестве значений для Cols и Rows Html тега Frameset выступают числа, проставленные через запятую (без пробелов). Эти числа задают пропорции тех окон, которые мы с вами хотим получить в результате. Следовательно, сколько будет написано чисел через запятую в Cols или в Rows, столько у нас фреймов и должно будет получиться в результате.
Например, с помощью такой записи мы получим три вертикальных колонки, которые по ширине будут соответствовать пропорциям 2:5:3.