Фреймы в html

что такое фрейм

В статье о фреймах в HTML я расскажу о том что это такое, как их правильно использовать и вставлять.

В переводе с английского, фрейм это рамка. И в HTML (что такое HTML?) значение похожее. Фрейм — это совершенно отдельный прямоугольный элемент (область) окна браузера, который содержит и показывает свой HTML-документ. Да, в вместе с другими документами в одном и том же окне браузера. Чудеса!

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

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

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

Но небольшим элементам сайта это не вредит — например когда идет речь о встраивании видео при помощи iframe с видеохостинга Youtube.com.

Правила вставки фреймов

Свойства фрейма определяется тегом <frame> — он поддерживается во всех браузерах (в т.ч. мобильных). Тег <frame> помещается в контейнер <frameset>. И, если фрейм участвует в определении свойств одного фрейма, то фреймсет дополнительно размечает страницу сайта на области. И уже в эти области, вы можете подгрузить фрейм с параметром src=»».

Пример синтаксиса:

<frameset>
<frame src="ссылка на подгружаемый документ" name="имя фрейма">
</frameset>

Надеюсь вы обратили внимание на то, что в этом теге не требуется закрывающий тег типа </frame>, а вот для <frameset> — требуется. Список атрибутов фреймов:

  • bordercolor — определяет цвет пограничной линии (границы)
  • frameborder — задает рамку вокруг фрейма или ее отсутствие
  • name — используется для задания уникального имени (не обязателен, но рекомендован) — это нужно чтобы иметь возможность задавать ссылку к конкретному фрейму
  • noresize — параметр для определения возможности пользовательского редактирования (мышкой) размера области фрейма
  • scrolling — задает отображение внутрифреймовой прокрутки в том случае если содержимое фрейма не помещается в его физические размеры, может принимать следующие значения: yes, no, auto
  • src — последний и самый главный параметр — в нем указывается путь (адрес) к файлу или странце, которую вы хотите подгрузить внутри фрейма
  • marginwidth — с помощью этого параметра можно задать отступ от содержимого фрейма до его левого края
  • marginheight — а с помощью этого параметра мы задаем отступ от содержимого фрейма до его верхнего края

Пример использования трех <frame> и двух <frameset>:

<frameset>
  <frame src="header.html" name="headerFrame" scrolling="no" noresize>
  <frameset>
    <frame src="1.html" name="Frame1" scrolling="no" noresize>
    <frame src="2.html" name="Frame2">
  </frameset>
</frameset>

Либо такой вариант, показываю для примера использования вместе с разметкой html страницы:

<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <head>
        <title>Фреймы</title>
    </head>
    <frameset rows="10%, 80%, 10%" >
        <frame>                
        <frame>
        <frame>
    </frameset>
</html>

Результат:

пример фрейма в html

Еще пример:

<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <head>
        <title>Фреймы</title>
    </head>
    <frameset rows="100, *" >
        <frame>
          <frameset cols="200, *" >
              <frame>
              <frame>
          </frameset>
    </frameset>
</html>

Результат:

фреймы в html

Последний пример фрейма в HTML:

<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <head>
        <title>Фреймы</title>
    </head>
    <frameset cols="20%, *" >
        <frame>
          <frameset rows="30%, *" >
              <frame>
              <frame>
          </frameset>
    </frameset>
</html>

Результат:

как вставить фрейм в html

Как вы видите, frameset в данном случае указывает браузеру, как разбить окно браузера на две-три области — в данном случае тег используется вместо тегов . Подобное построение шаблона сайта называется фреймовой структурой.

Фреймсет тоже имеет параметры:

  • rows — определяет количество горизонтальных областей, на которые будет разбито окно: для задания четырех горизонтальных областей с шириной 25% нужно задать параметр rows=»25%, 25%, 25%, 25%»
  • cols — аналогично горизонтальным областям, только теперь определение вертикальных областей

А для того чтобы фреймсет не имел рамок, используйте следующие атрибуты: border=»0″ frameborder=»0″.

Frame — плюсы и минусы фреймов

Теперь, после того как я рассказал вам теорию и показал на практике HTML код с использованием фреймов, настало время упомянуть о преимуществах и недостатках сайтов, использующих фреймы в своей структуре.

К сожалению, безусловное преимущество только одно — на персональный компьютер интернет-пользователя загружается меньшее количество байтов информации. Так происходит от того, что шапка с меню загружаются один-единственный раз (благодаря чему сокращается время загрузки). Основной контент загружается как и на остальных сайтах — много раз.

К еще большему сожалению, недостатки тоже есть и, увы, их целых три:

1. Структура фреймов может запутать даже бывалого вебмастера.

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

3. Несмотря на то, что все браузеры поддерживают фреймы, не все из них поддерживают фреймовую структуру. Поэтому необходимо делать двойную работу, размещая внутри тегов теги — который будут отображаться, если браузер не поддерживает фреймовую структуру. То есть в любом случае мы делаем сайт без фреймов (для тех браузеров, которые их не поддерживаю) — зачем нам тогда фреймовая структура?

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

Так где все-таки возможно применять фреймы?

Чаще всего это справочно-административные системы:

1. Для оформления оглавления. Размещение вертикального столбца очень удобно для пользователя, чтобы он в любой момент мог к нему обратиться, не обращаясь к кнопке «Назад». Так, оглавление справочной систему будет всегда под рукой сотрудника или пользователя.

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

3. Для оформления форм и результатов запросов. Очень удобно в одном фрейме вводить данные, а в соседнем — получать ответ на запрос или видеть введенные данные в какой-то важной таблице.

Читайте также:

  • Подробные рекомендациии о том, как правильно оформить сайт в интернете.

На этом все, но помните, что в HTML5 не допускается использование <frame>, <noframes> и <frameset> — потому что технология устаревшая и не поддерживается. Взамен этого разработчики спецификации HTML5 предлагают нам использовать тег <iframe> для отображения плавающего или встроенного в сайт фрейма.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

X