В контексте веб - браузера , кадр является частью веб - страницы или браузера окно , которое отображает содержимое независимо от его контейнера, с возможностью к содержимому нагрузки самостоятельно. В HTML или медиа - элементы , показанные в кадре может исходить от другого веб - сайта , как и другие элементы контента на экране, хотя эта практика, известная как обрамление , [1] сегодня часто рассматривается как нарушение одного источника политики и имеет считается формой нарушения авторских прав .
В HTML набор фреймов - это группа именованных фреймов, на которые могут быть направлены веб-страницы и мультимедиа; IFrame обеспечивает кадр , чтобы быть помещен внутри тела документа.
С начала 2000-х годов использование наборов фреймов считалось устаревшим из-за проблем с удобством использования и доступности, и эта функция была удалена из стандарта HTML5 .
Теги и атрибуты
Фреймы в HTML создаются с помощью пары тегов.
Тег представляет собой тег - контейнер для всех других тегов, которые используются для создания кадров.
Тег заменяет
тег FRAMESET документов.
Тэг определяет , как разделить окно на кадры.
Каждый набор фреймов определяет набор строк или столбцов. Если пользователь определяет фреймы с помощью rows
атрибута, создаются горизонтальные фреймы. Если пользователь определяет фреймы с помощью, cols
то создаются вертикальные фреймы.
Элемент может быть включен так веб - браузеры с фреймами отключенных (или браузерами , которые не поддерживают фреймы) могут отображать что - то для пользователя, так как в этом примере:
< frameset cols = "85%, 15%" > < frame src = "http://www.example.com/frame_1.html" name = "frame_1" > < frame src = "http: //alt.example. com / frame_2.html " name = " frame_2 " > < noframes > Ваш браузер не поддерживает фреймы. < HREF = "http://www.example.com/frame_1.html" > Нажмите здесь > для просмотра кадра 1. < в HREF = "http://alt.example.com/frame_2.html" > Щелкните здесь a > для кадра 2. noframes > frameset >
Наборы фреймов имеют border
атрибут. Если установлено целое число больше 0, пользователь может изменять размер фреймов, перетаскивая эту границу, если noresize
атрибут не присутствует в элементе фрейма. Если граница установлена на 0, граница не будет отображаться, и содержимое в разных кадрах будет примыкать друг к другу без выделения.
iframe
Элемент используется встроенный в пределах нормального HTML тела, и определяет начальное содержание и имя аналогично frame
элементу. Любой текст внутри пары тегов будет отображаться в браузерах, которые не поддерживают тег iframe.
< iframe src = "http://www.example.com/frame_1.html" height = "480" width = "640" > Ваш браузер не поддерживает iframe. < HREF = "http://www.example.com/frame_1.html" > Нажмите здесь > для просмотра содержимого.iframe >
История
Netscape Navigator 2.0 представил элементы, используемые для фреймов, в марте 1996 года. Позже в том же году последовали другие поставщики браузеров, такие как Apple с Cyberdog . [2] В то время Netscape предложила Консорциуму World Wide Web (W3C) фреймы для включения в стандарт HTML 3.0. [3]
Фреймы использовались для отображения и навигации по ранним онлайн-журналам и веб-приложениям , таким как веб- службы электронной почты и сайты веб-чатов . Фреймы имели то преимущество, что позволяли отображать элементы по всему сайту, не требуя серверных функций, таких как серверные включения или поддержка CGI . Эти функции не были распространены на ранних веб-серверах, доступных для широкой публики.
Ранние веб-сайты часто использовали рамку вверху для отображения баннера, который нельзя было прокрутить. Эти рамки для баннеров иногда включали логотип сайта, а также рекламу. [4]
XHTML , задуманный как преемник HTML 4, удалил все фреймы в 1.1. Предназначено в конечном итоге замена была XFrames , [5] , который пытается решить проблему адресации через заполненные фреймы композитных URIs .
Более поздний стандарт HTML5 , в котором использовался подход, отличный от HTML 4, также удаляет наборы фреймов. [6] Тем не iframe
менее, элемент остается с рядом опций «песочницы», предназначенных для обмена контентом между сайтами. [7]
Преимущества
Позволяя загружать контент и перемещаться по нему независимо, фреймы предлагали несколько преимуществ по сравнению с обычным HTML, когда они были впервые разработаны:
- Упрощение обслуживания контента, используемого для всех или большинства страниц, например данных навигации. [8] Если элемент необходимо добавить в меню навигации боковой панели, автору веб-страницы необходимо изменить только один файл веб-страницы, тогда как каждую отдельную страницу на традиционном веб-сайте без набора фреймов нужно будет отредактировать, если появится меню боковой панели. на всех них.
- Уменьшение необходимой пропускной способности за счет отказа от повторной загрузки частей страницы, которые не изменились.
- Позволяет просматривать несколько фрагментов информации рядом с возможностью независимой прокрутки каждого раздела. Это может включать параллельное сравнение двух изображений или видео или два разных способа понимания чего-либо, например, независимо прокручиваемую страницу текста рядом с видео, изображениями, анимацией, вращающимися трехмерными объектами и т. Д.
- Разрешить появление сносок или отступлений в выделенном разделе страницы при наличии ссылки, чтобы читатель не потерял свое место в основном тексте.
Критика
Практика создания HTML-содержимого во фреймах вызвала многочисленные критические замечания, в основном из-за проблем с удобством использования и доступности . Это включает:
- Фрейминг нарушает идентичность между содержимым и URL-адресом, отображаемым в браузере, что затрудняет привязку или закладку определенного элемента содержимого в наборе фреймов [9]
- Реализация фреймов несовместима в разных браузерах [9]
- Браузеры, которые отображают материал линейно, плохо обрабатывают фреймы. [10]
- Программы чтения с экрана
- текстовые или аудио браузеры
- Почтовые браузеры, такие как Agora [11]
- Мобильные браузеры
- Фрейминг усложняет веб-индексирование и может нанести ущерб поисковой оптимизации . [12]
- Фрейминг путает границы между контентом на разных серверах [13], что поднимает вопросы нарушения авторских прав [14]
- Посетители, пришедшие из поисковых систем, могут попасть на страницу, предназначенную для отображения во фрейме, в результате чего посетитель не сможет перейти к остальной части сайта [15]
- Рамки меняют поведение кнопки возврата. [15]
- Пользователи обычно не ожидают, что браузеры будут печатать фреймы так, как они это делают. [14]
- Внешние ссылки на веб-страницах, которые используют фреймы, могут вызывать появление других страниц в наборе фреймов, поскольку поведение ссылки по умолчанию - загрузка в текущем фрейме, если автор не указывает иное. Это может быть использовано недобросовестными веб-мастерами, чтобы создать впечатление, будто контент с другого сайта на самом деле является частью сайта, на котором размещен набор фреймов.
- Если разрешение экрана или размер окна браузера слишком малы, то в каждом кадре будут полосы прокрутки, которые могут выглядеть беспорядочно и занимать уже ограниченное пространство. Такое поведение, как правило, было результатом плохого дизайна сайта (фиксированные макеты вместо гибких макетов), в результате чего не все функции набора фреймов были использованы должным образом.
Такое поведение можно смягчить:- отключение прокрутки для меньших кадров, для которых обычно не требовалась полоса прокрутки;
- использование гибких характеристик дизайна на целевых страницах вместо фиксированного дизайна, чтобы контент не создавал горизонтальных полос прокрутки.
Альтернативы
По мере развития веб-технологий многие цели, для которых использовались фреймы, стали возможными способами, которые позволили избежать проблем, связанных с фреймами.
- Каскадные таблицы стилей (CSS) позволяли прокручивать элементы страницы независимо (с помощью
overflow
свойства) или удерживать их на экране, пока прокручивается другой контент (с помощьюposition:fixed
) - Server-Side Includes позволяет редактировать общий контент один раз и автоматически доставлять клиенту как часть готовой страницы; по мере увеличения скорости ЦП и соединения сервера дополнительная работа, необходимая для выполнения этого «на лету», становилась менее важной.
- CGI и веб-ориентированные языки сценариев и фреймворки веб-разработки, такие как PHP и Active Server Pages , а также системы управления контентом на базе баз данных, такие как WordPress , предоставляют гораздо более богатые возможности для поддержки контента и обеспечения навигации.
- Клиентские сценарии и динамический HTML позволяют визуально заменять части страницы в зависимости от действий пользователя. Это обеспечило гораздо большую гибкость для отображения «побочного» содержимого, такого как сноски или инструкции, поскольку теперь их можно было отображать и скрывать в любом месте страницы, вместо того, чтобы требовать заранее определенного фрейма.
- AJAX позволяет динамически отображать контент на странице, даже если его нужно получить с сервера, например, на основе зарегистрированного пользователя или событий в другом месте.
Не все проблемы, связанные с наборами фреймов, можно устранить с помощью этих альтернативных подходов; например, проблемы с навигацией назад / вперед, закладками и индексированием остаются на многих сайтах, которые интенсивно используют навигацию DHTML / AJAX.
Смотрите также
- Аспекты авторских прав гиперссылок и фреймов
- Кадры
- Встроенная ссылка
- Ссылки на контент
- Framekiller
- Веб-дизайн без таблиц
Рекомендации
- ^ «Подключение к другим веб-сайтам» .
Фрейминг отличается тем, что вместо того, чтобы перенаправлять пользователя на связанный веб-сайт, информация с этого веб-сайта импортируется на исходную страницу и отображается в специальном «фрейме». Технически, когда вы просматриваете информацию во фрейме, ваш компьютер подключен к сайту, выполняющему фрейм, а не к сайту, страница которого отображается во фрейме.
- ^ Гараффа, Дэйв (23 декабря 1996 г.). «Подарок от Apple: Cyberdog 2.0a1» (пресс-релиз). Internet.com . Архивировано из оригинального 17 августа 2000 года . Проверено 14 апреля 2011 года .
- ^ Лэдд, Эрик. «Использование HTML 3.2, Java 1.1 и CGI; Глава 13, Фреймы» . Архивировано из оригинального 30 октября 2007 года.
- ^ Шафер, Дэн (1996). Волшебство JavaScript и Netscape . Скоттсдейл, Аризона: Книги группы Кориолиса. С. 31 . ISBN 978-1-883577-86-5.
- ^ «Рабочий проект XFrames» . W3C.
- ^ Отличия HTML 5 от HTML 4 : «Следующие элементы отсутствуют в HTML 5, потому что их использование отрицательно влияет на удобство использования и доступность для конечного пользователя: фрейм, набор фреймов, без фреймов»
- ^ Отличия HTML 5 от HTML 4 : «новые функции песочницы для iframe»
- ^ «Наборы фреймов» .
- ^ а б Нильсен, Якоб (декабрь 1996 г.). «Кадры - отстой большую часть времени» .
- ^ "Следует ли использовать фреймы?" . Учебник по HTML-коду.
- ^ «Как делать что угодно по электронной почте от GEBoyd - Часть 1» . GeoCities . 11 августа 2000 года Архивировано из оригинала 17 августа 2000 года . Проверено 24 июня 2010 года .
- ^ Мур-Эйд, Пирс. «Основы SEO 1» . Льюис SEO . Проверено 25 февраля 2012 года .
- ^ «Ненавижу фрейм-клуб» .
- ^ а б "Почему кадры такие злые?" .
- ^ а б «Плюсы и минусы фреймов на веб-страницах» .
Внешние ссылки
- Справка HTML: что не так с фреймами?
- Веб-советы Дэна: рамки
- Скрипт, предназначенный для предотвращения кадрирования вашего контента