Наверняка Вы уже не один раз слышали о таком понятие, как фреймы. Прочитать о них можно в любом html-учебнике, а также на ресурсах о создании сайтов . Изучив множество примеров и описаний, я решил рассказать все о фреймах своими словами в очень простой форме. О плюсах, о минусах и о будущем фреймов будет сказано в самом низу этой страницы. Итак, что же такое фреймы в html?
Не пугайтесь, что это звучит немного непонятно. Давайте сразу приведем самый простой пример и тогда все станет ясно.
Отройте помощь (help) в любой программе (это может быть блокнот, какая-то программа, браузер и т.п.). Практически всегда Вы увидите хелп состоящий из двух частей (слева навигация, справа содержимое). Левая и правая части как раз и являются отдельными фреймами. Ниже представлен скриншот сделанный из хелпа самого обыкновенного блокнота Windows:
Рис 1. Использования фреймы на примере хелпа блокнота
То что Вы видите, является веб-страничкой состоящий из двух отдельных независимых фреймов. Приведем примерный html код такого фрейма из хелпа.
Как видно из кода выше, страница созданная из фреймов очень похожа на обыкновенную html-страницу: есть открывающий тег html, раздел
, который отвечает за тело страницы. У этого тега есть два атрибут cols="25%,75%"
, что означает разбить все тело страницы на две области по вертикали в пропорции 1:3. Первая область займет 25% от ширины всего экрана (в ней будет первый фрейм menu.html
), вторая область займет 75% от ширины всего экрана (в ней будет второй фрейм content.html
).
Последний совсем необязательный тег это
. Он нужен для браузеров, которые не поддерживают фреймы. Если браузер не поддерживает фреймы, то рекомендуется вежливо сообщить об этом пользователю через этот тег.
Кстати, обратите внимание, что для тега
не нужен закрывающий тег.
Надеюсь, что теперь у Вас есть представления о фреймах. Чтобы понять более трудные примеры, давайте попробуем создать простую html-страницу состоящую из 4 фреймов. Это будет пример №2.
Пример с 4 фреймами №2
Каркас для примера 2:
Рис 3. Каркас использования фреймов для примера №2
Код исходной html-страницы с фреймом будет следующий:
Пример №2 html-страницы с фреймами
Ваш браузер не поддерживает отображение фреймов
Код файла top.html
Файл top.html - шапка сайта
Пример №2
А здесь могло быть лого и не только:)
Код файла menu.html
Файл menu.html - меню сайта
Код файла content.html
Файл content.html - контент сайта
Главная страница
Содержимое сайта. Сейчас открыт файл content.html
Это исходное состояние нашего фрейма. Назовем этот файл "Главной страницей"
Код файла about-site.html
Файл about-site.html - Страница о сайте
О сайте
Страница о сайте. Сейчас открыт файл about-site.html
Код файла about-autor.html
Файл about-autor.html - об авторе
Об авторе
Страница об авторе. Сейчас открыт файл about-autor.html
Код файла footer.html
Файл footer.html - о сайте
Футер сайта. Сейчас открыт файл 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 документа касающиеся фреймов. Несмотря на сомнительное будущее этого направления, знать про фреймы должен каждый вебмастер.
На заре сайтостроения веб-ресурсы широко использовали фреймы для отображения отдельных частей страниц. Но с приходом новой версии HTML 5 всё изменилось. Элементы разметки <frame
>, <frameset
> и <noframes
> признаны устаревшими. Заменой им стал один-единственный тег - <iframe
>. Как добавить в html
Что такое фреймы? Фрейм - основа большинства первых веб-страниц. Если переводить дословно, данное слово означает «кадр», то есть фрейм представляет собой небольшую часть страницы в браузере. Повсеместное использование фреймов в прошлом можно объяснить низким качеством и дороговизной интернет-трафика. Как правило, сайт разбивался на 3-5 частей, каждая из которых выполняла определённое назначение:
«шапка» (верхний фрейм по ширине страницы) - отображение название ресурса; левый/правый «стакан» - вывод меню; центральный фрейм - показ контента сайта.
Разбивка страницы на части позволяла перегрузить лишь некоторую часть при её обновлении. Например, пользователь нажимал пункт меню, и в центральный фрейм закачивалось новое содержимое.
Современные фреймы в HTML 5 Зачем нужен в HTML <iframe
>? Пример - вставка контента стороннего ресурса . Классической является ситуация, когда веб-разработчик желает показать положение объекта на карте. Как быть? Отрисовывать план местности с нуля? Нет - есть более простое решение: встроить на страницу элемент Google Map , Яндекс Карты или 2ГИС. Задача решается в четыре действия.
Нужно перейти на сайт любого картографического сервиса. Найти желаемый объект. Зная точный адрес , можно ввести его в окне поиска. С помощью кнопки «Сохранить и получить код» (для "Яндекс.Карт") или «Готово» (для карт Google ) получить код для вставки. Осталось вписать сгенерированные теги разметки на страницу.
Дополнительно можно выбрать размер карты и настроить другие опции отображения.
Как ещё можно использовать в HTML <iframe>
? Пример - вставка видеоматериалов с ресурса Youtube . Мультимедиа-технологии привлекают пользователей Интернета, поэтому видеоконтент столь популярен. С установкой ролика разработчик справится быстро.
Следует загрузить на Youtube собственное видео или найти сторонний файл для трансляции. Получить тег, выбрав кнопку «HTML-код» Заключительное действие - вставить в
В обоих примерах использовалась автоматическое формирование кода, но профессиональные разработчики должны уметь сами составлять его. Во-первых, это позволит им разобраться в вёрстке страницы и при необходимости модифицировать её. Во-вторых, не всегда разметка элементов сайта (даже несмотря на то, что они принадлежат внешнему ресурсу), образуется без участия веб-мастера. Вот здесь и проявляется высокая квалификация разработчика.
Синтаксис Итак, прежде чем приступить к вёрстке страницы, необходимо рассмотреть тег iframe (html): что это такое и как правильно его использовать.
Прежде всего, нужно отметить, что тег парный. Между открывающимся и закрывающимся элементами указывают содержимое, которое будет отображаться в браузерах, не поддерживающих данный элемент разметки. Основные атрибуты тега:
width (ширина); height (высота); src (адрес загружаемого ресурса); align (способ выравнивания); frameborder; allowfullscreen.
Таким образом, получен код для
В приведённой разметке достаточно заменить адрес сайта на любой другой и, если это необходимо, скорректировать размеры фрейма.
Всем привет. В html есть один интересный тег, с помощью которого можно на свою веб-страничку вставить другую, причем она будет выглядеть так, как будто вшита в вашу. Это статья о том, как вставить в html iframe с примером.
Возможности iframe Итак, с помощью этого парного тега можно вставить в свою статью страницу с любого веб-сайта в интернете. Давайте рассмотрим вот такой фрагмент кода:
Как видите, все параметры вставки задаются в атрибутах тега. О первых двух, я думаю, вам объяснять ничего не надо – это ширина и высота нашего фрейма, в котором будет находиться нужная страничка . Размеры нужно подбирать исходя из ширины вашего контентного блока.
Адрес нужной страницы задается в атрибуте src . В нем нужно написать полный адрес до сайта. Следующий атрибут – имя фрейма. Тут можно написать произвольное значение. Наконец, scrolling отвечает за появление полос прокрутки, а его значение auto делает так, что прокрутка появится только при необходимости. Также тут можно задать значение no . В этом случае полосы прокрутки не будут появляться, но тогда и прокрутить страницу нельзя будет — вы сможете только просмотреть ее фрагмент, на сколько хватит заданной высоты.
Остальные параметры при необходимости вы можете задать через css. Например, это могут быть отступы или рамка.
Пример вставки iframe в html В примере кода, который я приводил выше, вам нужно лишь изменить адрес страницы на свой, а также размеры фрейма, если это необходимо. Вот пример:
Сейчас в этой статье появился веб-сервис, в котором вы можете путем перемещения курсора по экрану выбирать цвета, а при клике они сохраняются. Я часто использую этот полезный сайт, когда экспериментирую с созданием красивых меню , кнопок и форм.
Вот так вот просто можно вставить другой сайт на свою страничку. Возможно, в связи с этим у вас появится много своих идей вставки iframe к себе. Главное, что теперь вы знаете, как это делается.
Тег (от англ. i
nline frame
- встроенная рамка)
создаёт встроенный фрейм, который находится внутри обычного документа, он позволяет загружать в область заданных размеров любые другие независимые документы.
Синтаксис
...
Закрывающий тег обязателен.
WAI ARIA
Нет значения role по-умолчанию.
Допустимые значения role:
Атрибуты
allowfullscreen - Разрешает для фрейма полноэкранный режим.
height - Высота фрейма.
name - Имя фрейма.
sandbox - Позволяет задать ряд ограничений на контент загружаемый во фрейме.
scrolling - Способ отображения полосы прокрутки во фрейме.
seamless - Определяет, что содержимое фрейма должно отображаться так, словно оно является частью документа.
src - Путь к файлу, содержимое которого будет загружаться во фрейм.
srcdoc - Хранит содержимое фрейма непосредственно в атрибуте.
width - Ширина фрейма.
allowfullscreen
Атрибут allowfullscreen разрешает для фрейма полноэкранный режим.
Синтаксис
Значения
Значение по умолчанию
height
Синтаксис
Значения
Значение по умолчанию
name
В обычном HTML-документе при переходе по ссылке в окне браузера текущий документ заменяется новым. Чтобы направить содержимое во фрейм, он должен иметь уникальное имя, задаваемое атрибутом name . В этом случае при создании ссылки у требуется указать атрибут target , в качестве значения которого выступает имя фрейма.
Синтаксис
...
Значения
Для указания имени используется набор символов, включая числа и буквы. При обращении к фрейму по имени соблюдайте то же написание, что и в атрибуте name .
Значение по умолчанию
sandbox
Атрибут sandbox позволяет установить ряд ограничений на контент, загружаемый во фрейме, к примеру, блокировать формы и скрипты. Это позволяет повысить безопасность текущего документа, особенно в том случае, когда во фрейм загружается документ из непроверенного источника.
Синтаксис
Значения
allow-forms - Позволяет содержимому фрейма отправлять формы.
allow-modals - Разрешает открытие модальных окон, вроде тех, которые делаются с помощью функции alert в JavaScript.
allow-orientation-lock - Позволяет отключать возможность блокировки экрана.
allow-pointer-lock - Позволяет фрейму использовать Pointer Lock API.
allow-popups - Разрешает всплывающие окна (такие как window.open , target="_blank" , showModalDialog).
allow-presentation - Разрешает фрейму использовать Presentation API.
allow-same-origin - Разрешает загружать содержание фрейма, воспринимая его из того же источника, что и родительский документ. Может использоваться для безопасного открытия контента, блокируя при этом всплывающие окна.
allow-scripts - Разрешает запуск и выполнение скриптов. Создание всплывающих окон при этом запрещено.
allow-top-navigation - Позволяет открывать ссылки фрейма в родительском документе.
Допустимо писать несколько значений в любом порядке через пробел. Если указано пустое значение, то устанавливаются все возможные ограничения.
При одновременном использовании значений allow-scripts и allow-same-origin , когда исходный и загружаемый документ одного происхождения, атрибут sandbox игнорируется.
Значение по умолчанию
scrolling
Если содержимое фрейма не помещается в отведённые размеры, автоматически появляются полосы прокрутки для просмотра информации. В некоторых случаях, полосы прокрутки нарушают дизайн веб-страницы, поэтому от них можно отказаться. Для управления отображением полос прокрутки используется атрибут scrolling .
Синтаксис
...
Значения
auto - Полосы прокрутки добавляются браузером только по необходимости, в том случае, когда содержимое фрейма превышает его видимую часть.
no - Запрещает отображение полос прокрутки.
yes - Всегда вызывает появление полос прокрутки, независимо от объёма информации.
Значение по умолчанию
seamless
Устанавливает, что содержимое фрейма должно отображаться так, словно оно является частью документа. При этом соблюдается ряд условий:
игнорируется атрибут sandbox , если содержимое фрейма и родительского документа взяты из одного источника;
ссылки во фрейме открываются не внутри фрейма, а в текущем документе;
стили родительского документа применяются и к содержимому фрейма;
фрейм считается блочным элементом, у которого ширина задана как auto ;
высота формируется автоматически на основе содержимого.
Синтаксис
Значения
Значение по умолчанию
По умолчанию этот атрибут выключен.
src
Указывает адрес файла, который будет загружаться во фрейм. Это может быть HTML-документ, изображение или серверная программа. Допустимо использовать не только путь к файлу, но также имя функции JavaScript, которое возвращает значение.
Синтаксис
...
Значения
В качестве значения принимается полный или относительный путь к файлу.
Значение по умолчанию
srcdoc
Позволяет установить содержимое фрейма непосредственно в атрибуте. Значение должно иметь корректный синтаксис HTML, по желанию содержать и , а также любое количество пробелов, переносов строк, комментариев и других элементов. При одновременном использовании атрибутов src и srcdoc , атрибут src игнорируется.
Синтаксис
...
Значения
HTML-код содержимого, включая необходимые теги.
Значение по умолчанию
width
Для изменения размеров фрейма средствами HTML предусмотрены атрибуты width и height . Допускается использовать значения в пикселях или процентах. Если установлена процентная запись, то размеры фрейма вычисляются относительно родительского элемента - контейнера, где находится элемент . В случае отсутствия родительского контейнера, в его качестве выступает окно браузера. Иными словами, width="100%" означает, что фрейм будет занимать всю ширину веб-страницы.
Если значение высоты или ширины не заданы, то фрейм автоматически принимает размер 300х150 пикселей.
Синтаксис
Значения
Любое целое положительное число в пикселях или процентах.
Значение по умолчанию
width - 300 пикселей, height - 150 пикселей.
Спецификации
Примеры
IFRAME
Ваш браузер не поддерживает встроенные фреймы!