Настройка фрейма. Как вставить в HTML iframe: пример использования. Мощный, но легкий в использовании

На заре сайтостроения веб-ресурсы широко использовали фреймы для отображения отдельных частей страниц. Но с приходом новой версии HTML 5 всё изменилось. Элементы разметки <frame >, <frameset > и <noframes > признаны устаревшими. Заменой им стал один-единственный тег - <iframe >. Как добавить в html

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

Фрейм - это область, встроенная в один документ, которая отображает другой. Использовать или нет такую возможность, определяет разработчик. Далеко не всегд...

От Masterweb

11.07.2018 19:00

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

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

Понятие и назначение «iframe»

Фреймы показали себя не с самой лучшей стороны, когда стандарт HTML предлагал вариант frame. Ситуация не намного стала лучше с появлением iframe. Браузеры и владельцы сайтов не слишком охотно соглашаются на отображение сторонней информации посредством таких элементов.

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

Однако, есть достаточное количество применений, когда и разработчик веб-ресурса (или документа), и разработчик-потребитель этого ресурса в своем изделии заинтересованы друг в друге. Например, карты Google или видео с Youtube. Существуют и другие востребованные идеи: прогноз погоды, динамика курсов биржи, показания приборов, статистические данные.

Фрейм - это окно в мир данных, которые кто-то собирает, обрабатывает и представляет на своем веб-ресурсе. Также предлагает к ним доступ через фрейм на сайте-потребителе, как правило, через систему требований или специализированное API (библиотеку функций).

HTML «iframe»: пример условий для применения

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


Копируя предлагаемый «HTML-код», можно безопасно вставить желаемый поток видеоинформации на свой сайт. В теге будет указано все необходимое: и размеры и условия отображения. Удобно разместить тег «iframe» в HTML div - это позволит выполнить оптимальное позиционирование стороннего контента внутри собственного сайта.

Рекурсия и фреймы: практический пример

Сомнительно, что iframe ожидает лучшая судьба чем frame. Развитие парсинга и актуальность информации, собранной по критериям, делают призрачными перспективы идеи отображения чужого контента в формате «как есть». Становится предпочтительнее формат «как надо».

Однако, сегодня идеально (и в порядке вещей) применять наработки Google и Youtube, а также погодных, политических, статистических, музыкальных, игровых и других ресурсов, рассчитанных на фреймовое или иное стороннее использование.


В примере выше есть три HTML «iframe» примера:

  • карта Google;
  • видео со стороннего сайта;
  • видео с Youtube.

Последний, четвертый фрейм ссылается на сайт, в котором находятся все эти фреймы. Картинка слева - сайт после загрузки. Картинка справа - сайт в процессе отображения через некоторое время (видео в каждом фрейме «текло» в своем ритме), но ползунок в (4!) смещен вниз. Хорошо видно, что карта и видео по-прежнему отображены, но вот отображение самого себя не сработало.

Код для «iframe» и стиль для этого примера показан ниже.

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

Фрейм не только статичен. Его контент отделен от контента страницы, на которой он размещен. Можно придумать способы обмена информацией между фактически различными ресурсами, но это из серии задач обмена информацией между различными доменами.

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

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

Собственный парсинг или сторонний контент

Что такое фреймы с точки зрения контента сайта? Это его дополнение. Разработчик делает веб-площадку для торговли титульными знаками Webmoney, и его решение разместить окошко с динамикой курсов валют разумно. Контент непосредственно от самой биржи перспективнее нежели парсинг и собственная разработка.

Разработчик делает магазин товаров народного потребления, и его желание предложить посетителю возможность просмотра сайта производителя каждого товара - задача сложная, но привлекательная для клиента. Может, эта стратегия сделает магазин лучше тех, что занимаются парсингом сайтов производителей товаров, а чаще всего - конкурентов.


Что такое фрейм для поставщика контента? Это предоставление информации. По сути, это стабилизация работы компании, которая может вовсе не создавать собственный сайт для работы, а ориентироваться конкретно на фреймовое использование. В частности, нет сомнений, что карты Google - отличная идея, но она идеальна в конкретном применении:

  • туристическое агентство - маршруты и карта движения;
  • доставка грузов - расчеты пути, финансовых затрат, заправок топливом и пр.;
  • навигаторы по городам и регионам...

В этом контексте фреймы востребованы, делают сайт практичнее. Причем разработчик может просто создать окно стороннего контента. HTML «iframe» - пример практичного разделения труда. Одна организация поставляет информацию, другая ее предоставляет клиенту.


Трудно сказать, какое будущее ожидает интернет-программирование. Все так динамично развивается, а аппаратная составляющая предоставляет все больше возможностей. Возможно, HTML iframe - пример идеального варианта сочетания различных веб-ресурсов и интернет-технологий. Быть может, это только этап на пути формирования более перспективных идей.

В любом случае, применение тега iframe есть, и оно востребовано в значительном спектре практических задач.

Улица Киевян, 16 0016 Армения, Ереван +374 11 233 255

Тег .

Синтаксис

Параметры

align Определяет как фрейм будет выравниваться по краю, а также способ обтекания его текстом. frameborder Устанавливает, отображать границу вокруг фрейма или нет. height Высота фрейма. hspace Горизонтальный отступ от фрейма до окружающего контента. name Имя фрейма. scrolling Способ отображения полосы прокрутки во фрейме. src Путь к файлу, содержимое которого будет загружаться во фрейм. vspace Вертикальный отступ от фрейма до окружающего контента. width Ширина фрейма.

Закрывающий тег

Обязателен.

Пример 1. Использование тега


Описание параметров тега

Аргументы

absmiddle Выравнивание середины фрейма по середине текущей строки. baseline Выравнивание фрейма по базовой линии текущей строки. bottom Выравнивание нижней границы фрейма по окружающему тексту. left Выравнивает фрейм по левому краю окна. middle Выравнивание середины фрейма по базовой линии текущей строки. right Выравнивает фрейм по правому краю окна. texttop Верхняя граница фрейма выравнивается по самому высокому текстовому элементу текущей строки. top Верхняя граница фрейма выравнивается по самому высокому элементу текущей строки.

Наиболее популярные параметры — left и right , создающие обтекание текста вокруг фрейма. Чтобы текст не прилегал плотно к содержимому фрейма, рекомендуется в теге

Lorem ipsum dolor sit amet, consectetuer adipiscing elit...

Параметр FRAMEBORDER

Описание

По умолчанию вокруг содержимого фрейма рисуется рамка с эффектом трехмерности. Чтобы ее скрыть применяется параметр frameborder .

Синтаксис


Аргументы

yes (или 1) Отображает рамку вокруг фрейма. no (или 0) Скрывает рамку вокруг фрейма.

Значение по умолчанию

Пример 3. Сокрытие исходной рамки вокруг фрейма





Тег IFRAME, параметр frameborder




Параметр HEIGHT и WIDTH

Описание

Для изменения размеров фрейма средствами HTML предусмотрены параметры width и height . Допускается использовать значения в пикселах или процентах. Если установлена процентная запись, то размеры фрейма вычисляются относительно родительского элемента — контейнера, где находится тег

Аргументы

Любое целое положительное число в пикселах или процентах.

Значение по умолчанию

width — 300 пикселов, height — 150 пикселов.

Пример 4. Ширина и высота фрейма





Тег IFRAME, параметр width




Параметр HSPACE и VSPACE

HTML: 3.2 4 XHTML: 1.0 1.1

Описание

Для любого фрейма можно задать невидимые отступы по горизонтали и вертикали с помощью, соответственно, параметров hspace и vspace . Особенно это актуально при обтекании содержимого фрейма текстом. В этом случае, чтобы текст не «наезжал» плотно на границу фрейма, необходимо вокруг него добавить пустое пространство.

Синтаксис


Аргументы

Любое целое положительное число в пикселах.

Значение по умолчанию

Пример 5. Поля вокруг фрейма





Тег IFRAME, параметр hspace




Параметр NAME

Описание

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

Синтаксис

Аргументы

Для указания имени используется набор символов, включая числа и буквы. При обращении к фрейму по имени соблюдайте то же написание, что и в параметре 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 тег

    Любые CSS стили, применяемые к родительскому элементу, не будут применяться к содержимому встроенной области, также как стили, примененные к встроенному содержимому, не будут распространяться на родительский элемент.

    Можно указать размер для встроенной области с помощью необязательных атрибутов width и height или с помощью CSS. Обычно размер по умолчанию равен 300px в ширину и 150px в высоту, но, в зависимости от браузера, размер может быть иным. Большинство браузеров по умолчанию отображают содержимое элемента

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

    Что такое Фреймы в html

    Фрейм (англ. frame) - некоторая подключаемая независимая область на веб-странице.

    Не пугайтесь, что это звучит немного непонятно. Давайте сразу приведем самый простой пример и тогда все станет ясно.

    Отройте помощь (help) в любой программе (это может быть блокнот, какая-то программа, браузер и т.п.). Практически всегда Вы увидите хелп состоящий из двух частей (слева навигация, справа содержимое). Левая и правая части как раз и являются отдельными фреймами. Ниже представлен скриншот сделанный из хелпа самого обыкновенного блокнота Windows:

    Рис 1. Использования фреймы на примере хелпа блокнота

    То что Вы видите, является веб-страничкой состоящий из двух отдельных независимых фреймов. Приведем примерный html код такого фрейма из хелпа.

    Пример с фреймами №1 (делаем помощь)

    В каркасе выше рассмотренный хелп будет выглядеть следующим образом:


    Рис 2. Каркас использования фреймов для примера №1

    Разбиение страницы на области с помощью фреймов очень напоминает табличную верстку html (см. HTML тег table). Примерный код такой страницы может выглядеть следующим образом:

    <span>Пример №1 html-страницы с фреймами </span>
    Пояснение к примеру №1

    Как видно из кода выше, страница созданная из фреймов очень похожа на обыкновенную html-страницу: есть открывающий тег html, раздел , заголовок , но есть одно большое различие. Наверное, Вы обратили внимание, что тег body, который отвечает за тело страницы - отсутствует. Вместо него вставлен тег <frameset> , который отвечает за тело страницы. У этого тега есть два атрибут cols="25%,75%" , что означает разбить все тело страницы на две области по вертикали в пропорции 1:3. Первая область займет 25% от ширины всего экрана (в ней будет первый фрейм menu.html ), вторая область займет 75% от ширины всего экрана (в ней будет второй фрейм content.html ).</p> <p>Последний совсем необязательный тег это <noframes> . Он нужен для браузеров, которые не поддерживают фреймы. Если браузер не поддерживает фреймы, то рекомендуется вежливо сообщить об этом пользователю через этот тег.</p> <p>Кстати, обратите внимание, что для тега <frame> не нужен закрывающий тег.</p> <p>Надеюсь, что теперь у Вас есть представления о фреймах. Чтобы понять более трудные примеры, давайте попробуем создать простую html-страницу состоящую из 4 фреймов. Это будет пример №2.</p> <h2>Пример с 4 фреймами №2</h2> <p>Каркас для примера 2:</p> <p><img src='https://i1.wp.com/zarabotat-na-sajte.ru/uroki-html/img/primer2-frame-karkas.jpg' width="100%" loading=lazy><br>Рис 3. Каркас использования фреймов для примера №2</p> <p>Код исходной html-страницы с фреймом будет следующий:</p> <blockquote><html > <head > <title ><span>Пример №2 html-страницы с фреймами </span> <span>Ваш браузер не поддерживает отображение фреймов </span>

    Код файла top.html

    <span>Файл top.html - шапка сайта </span>

    Пример №2

    А здесь могло быть лого и не только:)

    Код файла menu.html

    <span>Файл menu.html - меню сайта </span>

    Код файла content.html

    <span>Файл content.html - контент сайта </span>

    Главная страница

    Содержимое сайта. Сейчас открыт файл content.html
    Это исходное состояние нашего фрейма. Назовем этот файл "Главной страницей"

    Код файла about-site.html

    <span>Файл about-site.html - Страница о сайте </span>

    О сайте

    Страница о сайте. Сейчас открыт файл about-site.html

    Код файла about-autor.html

    <span>Файл about-autor.html - об авторе </span>

    Об авторе

    Страница об авторе. Сейчас открыт файл about-autor.html

    Код файла footer.html

    <span>Файл footer.html - о сайте </span> Футер сайта. Сейчас открыт файл footer.html
    Пояснение к примеру №2

    Первоначально вся страница разбивается на три области по горизонтали в пропорции 3:14:3. За это отвечает атрибут rows="15%,70%,15%" . Первый фрейм в нашем примере - шапка (мы её обозвали top.html ), на нее отводится 15% места по высоте. Далее идет большой фрейм занимающий 70% по высоте. Мы его разбиваем на две части с помощью cols="25%,75%" в пропорции 1:3. Слева будет фрейм menu.html , справа content.html . Мы специально дали имя второму фрейму name="main" с целью возможности переключения страниц. Обратите внимание, что в файле menu.html к каждой ссылки приписан атрибут target="main" , что позволяет при нажатии на эту ссылку загружать элементы в область с именем main. Внизу сайта расположился последний фрейм footer.html .

    Если вы реализуете пример №2, то должны получить такую html-страницу в исходном состоянии:


    Рис 4. Пример №2 - исходное состояние

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


    Рис 5. Пример №2 - второе состояние


    Рис 6. Пример №2 - третье состояние

    Тег

    Необязательные атрибуты этого тега являются width="ширина" и height="высота" , а обязательный атрибут src="адрес фрейма" .

    Атрибуты и свойства тега

    1. Атрибут COLS="Параметры"
    Задает количество разбиений страницы по вертикали.

    2. Атрибут ROWS="Параметры"
    Задает количество разбиений страницы по горизонтали.

    Теперь рассмотрим каким образом можно задать параметры разбиение.

    а) С помощью числа , которому будет соответствовать количество пикселей. Например, cols = "100,100,300" задает разбиение страницы на три области, каждая из которых будет по ширине: 100 пикселей, 100 пикселей и 300 пикселей соответственно.

    б) С помощью процентов от общей ширины/высоты. В рассмотренных выше примерах мы использовали именно процентное разбиение, поэтому приводить пример мне кажется бессмысленно.

    в) С помощью * (звездочки). Например, cols = "2*,3*,100" задает первые две области в соотношение 2:3, а третья область будет шириной в 100 пикселей.

    Все три способа можно совмещать. Например, cols="2*,100,15%,4*" .

    3. Атрибут frameborder="{yes|no}"
    Определяет наличие рамки у фрейма. Если ответ yes, то следующий четвертый атрибут border имеет силу.

    4. Атрибут border="параметр"
    В пикселях border задает толщину обводки области фрейма. Например, frameborder = "2" задает область с выделенным контуром в 2 пикселя.

    5. Атрибут bordercolor="цвет"
    Определяет цвет рамки, если она есть. Цвет можно задать как словами, так и кодом (см. цветовая палитра html).

    Примечание: обратите внимание, что тегу нужен закрывающий тег .

    Атрибуты и свойства тега

    1. Атрибут src="адрес элемента"
    В качестве параметра здесь должен указываться полный URL к адресу элемента. Этот атрибут обязателен. Он уже знаком Вам, т.к. он присутствовал в примерах 1 и 2.

    2. Атрибут marginwidth="число"
    Задает отступ внутри фрейма от границ в пикселях по ширине. Например, marginwidth="10" задаст отступ содержимого слева и справа от границы фрейма.

    3. Атрибут marginhight="число"
    Аналогичен второму с той лишь разницей, что задает отступ по высоте.

    4. Атрибут scrolling="{yes|no|auto}"
    Задает возможность прокрутки фрейма, в случае если он не смог уместиться в рамки отведенной ему области. По умолчанию стоит значение auto (означает, что при необходимости создавать скролл).

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

    5. Атрибут name="название"
    С помощью этого атрибута можно давать фрейму имя. Это нужно для того, чтобы к этому фрейму могли обращаться другие фреймы. В примере №2 как раз рассматривается такой случай.

    Примечание:
    Имя не должно начинаться с нижнего подчеркивания "_".

    6. Атрибуты frameborder, border и bordercolor
    Эти три атрибута такие же как и у frameset (см. атрибуты frameset выше).

    Преимущества и недостатки фреймов

    Плюсы фреймов

    • Возможность отображения в одном окне независимо несколько страниц (пример 1 и 2 выше);
    • Возможность переключать содержимое страницы не перезагружая страницу (меняется только одна область экрана);
    • Возможность построить гибко структуру сайта (шапка, меню, футер и т.д. - вся статическая информация хранится отдельно в файлах, а это позволяет быстро отредактировать часть сайта);
    • Пользователь может сам изменять размер области просмотра, в случае если не установлена опция noresize;

    Минусы фреймов

    • Поисковые системы плохо индексируют сайты на фреймах, поскольку не в состоянии интерпретировать подгружаемые файлы во фреймах. Поисковая машина различает страницы по их адресу (URL), а у фреймов несмотря на разные состояния, адрес страницы не изменяется. Это противоречит правилам поисковой машины, а значит не факт, что поисковик сможет проиндексировать сайт.
    • Невозможно сохранить в закладки сайт на фреймах, т.к. URL страницы будет одинаковый. Таким образом, можно лишь сохранить исходное состояние фрейма.
    • Не все браузеры поддерживают фреймы.

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

    Уважаемый читатель, мы рассмотрели теги html документа касающиеся фреймов. Несмотря на сомнительное будущее этого направления, знать про фреймы должен каждый вебмастер.