Использование фреймов. Iframe и Frame — что это такое и как лучше использовать фреймы в Html

Фреймы — это HTML-элементы, позволяющие разделить окно веб-браузера на несколько независимых окон, в каждое из которых можно загрузить отдельный HTML-документ. Каждое такое окно (фрейм) может иметь собственные полосы прокрутки и функционировать независимо от других независимых окон либо наоборот управлять их содержанием. Они могут применяться для организации постоянно находящегося в одном окне меню, в то время как в другом окне располагается непосредственно сама информация. Пользователи могут обращаться к меню в любой момент, и им не нужно возвращаться к предыдущей странице, чтобы выбрать другой пункт меню. Применение фреймов позволит вам «закрепить» в окне браузера изображения или другие неподвижные по замыслу элементы интерфейса, в то время как остальная часть страницы будет прокручиваться во фрейме.
Однако, стоит отметить, что в наши дни фреймы считаются устаревшим средством, а сайты с фреймами теперь считаются несолидными, так как профессиональные веб-мастера никогда не используют фреймы в своих проектах. С фреймами связан целый ряд печально известных проблем. Они, например, сбивают с толку поисковые машины, поскольку на страницах, которые содержат контент, нет ссылок на другие документы. Если вы хотите получать посетителей с поисковых систем, забудьте о фреймах. Понравившуюся страницу пользователю невозможно поместить в раздел закладки браузера, так как фреймы скрывают адрес страницы, на которой он находится, и всегда показывают только адрес веб-сайта. По этой причине они создают проблемы для браузеров при отслеживании хронологии и еще они не слишком приспособлены для разных размеров экранов и мобильных устройств.
Несмотря на то, что проекты с фреймами встречаются во всемирной паутине все реже, изучение HTML было бы неполным без рассмотрения темы о фреймах. У фреймов наряду с недостатками есть и некоторые достоинства, которые не позволяют отбросить эту технологию как бесперспективную.

Создание фреймов

Структура HTML-документа с фреймами внешне очень напоминает формат обычного HTML-документа. Как и в обычном HTML-документе, весь код помещен между парными тегами и , а в контейнере располагаются заголовки. Основное отличие документа с фреймами от обычного HTML-документа — у документа с фреймами вместо тега применяется парный тег (от англ. frame set – набор фреймов).
В следующем примере приведена структура HTML-документа с фреймами:

Пример: Структура HTML-документа с фреймами

  • Попробуй сам »
frame_top
frame_left frame_right



Документ с фреймами

В приведенном примере страница содержит три области, в каждую из которых первоначально загружаются HTML-документы frame_top.html, frame_left.html и frame_right.html. Помимо HTML-документов, фрейм может содержать и графику. Для этого необходимо указать адрес соответствующего изображения в атрибуте src , например src="image.gif" . Обратите внимание, что элемент используется без закрывающего тега.
Внутри контейнера могут содержаться только теги или другой набор фреймов, охваченный тегами и .
Тег имеет следующие атрибуты:

  • rows — описывает разбиение страницы на строки:
  • cols — описывает разбиение страницы на столбцы:
Области, полученные в результате такого разбиения страницы, и будут являться фреймами. Отсутствие этих атрибутов определяет один фрейм, который займет все окно браузера.

В значении атрибутов rows и cols необходимо указывать не количество строк или столбцов, а значение ширины и высоты фреймов. Все значения в списке разделяются запятыми. Размеры могут быть указаны в абсолютных единицах (в пикселах) или в процентах:

  • cols="20%, 80%" — окно браузера разбивается на две колонки с помощью атрибута cols , левая колонка занимает 20%, а правая 80% окна браузера.
  • rows="100, *" окно браузера разбивается на два горизонтальных окна с помощью атрибута rows , верхнее окно занимает 100 пикселов, а нижнее — оставшееся пространство, заданное символом звездочки.

Как видно из данного примера, контейнер с атрибутом rows вначале создает два горизонтальных фрейма, а вместо второго фрейма подставляется еще один , который разбивает нижний горизонтальный фрейм на две колонки с помощью атрибута cols , левая колонка занимает занимает 20%, а правая 80% окна браузера.
Если браузер не поддерживает фреймы, то в окне будет отображен текст, расположенный между тегами </b> и <b> . Все, что находится между тегами </b> и <b> , игнорируется браузерами, поддерживающими фреймы. Таким образом разработчику нужно написать код, дублирующий содержимое фреймов другими средствами, и поместить этот код в контейнер </b> , тогда все пользователи смогут увидеть его веб-страницу.<br> Как уже отмечалось, для вставки в документ отдельного фрейма служит непарный тег <b><frame> </b> . Атрибут <b>src </b> задает документ, который должен отображаться внутри данного фрейма, например: <frame src="frame_top.html">. Если атрибут <b>src </b> отсутствует, отображается пустой фрейм.</p> <h2>Границы или пространство между фреймами</h2> <p>По умолчанию, браузер отображает серую и, как правило, в виде трехмерной линии границу между фреймами, с помощью которой посетители могут регулировать размер фрейма.<br> Границей фрейма можно управлять, как и любыми другими элементами фрейма. Для этого существует несколько атрибутов элемента <b><frameset> </b> , позволяющих настраивать границы фреймов. Толщина линии границы определяется атрибутом <b>border </b>. По умолчанию значение толщины границы равно пяти.<br> Чтобы скрыть границу фрейма, необходимо либо указать значение ширины границы равным нулю, либо присвоить значение «no» или «0» атрибуту <b>frameborder </b>. Атрибут <b>frameborder </b> может принимать только два противоположных значения. Если значение атрибута <b>frameborder </b> равно «yes» или «1», то граница фреймов будет отображаться, а если «0» или «no», то нет. Учтите, что значения атрибута <b>frameborder </b> различаются для разных браузеров. Чтобы решить эту проблему используйте дважды атрибут <b>frameborder </b>, а для некоторых браузеров требуется еще добавить атрибут <b>framespacing </b> со значением «0»:</p><p> <frameset frameborder="0" framespacing="0" frameborder="no" border="0"> </p><p>В следующем примере убираем границу между фреймами:</p> <h3>Пример: Убираем границу между фреймами</h3> <ul><li>Попробуй сам »</li> </ul><table><tr><td style="width: 10px;background-color:green;color: white;"> frame_left </td> <td style="width: 90%;background-color:lime;color: white;"> frame_right </td> </tr></table><p> <!DOCTYPE html> <html><br><head><br><meta charset="UTF-8"> <title>Фреймы без границ</title> </head> <frameset cols="100,*" frameborder="0" framespacing="0" frameborder="no" border="0"> <frame src="frame_left.html" name=" frame_left" > <frame src="frame_right.html" name="frame_right" > </frameset> </html></p> <p>Если вы удалите границу между фреймами, посетители не смогут изменять размер фрейма в браузере. Вы можете также не допустить изменения размера фрейма, сохранив границы, используя атрибут <b>noresize </b>:</p><p> <frame src="frame_left.html" noresize> </p><p>С помощью атрибута <b>bordercolor </b> можно изменить цвет границы фрейма, необходимо только указать код или соответствующее зарезервированное имя цвета.<br> Ниже приведен пример html-страницы, которая содержит описанные выше атрибуты управления границей фрейма: цвет границы — красный, изменять размер верхнего фрейма нельзя:</p> <h3>Пример: Управление границей фреймов</h3> <ul><li>Попробуй сам »</li> </ul><table style="border-collapse:collapse;"><tr><td style="border-bottom: 4px solid red;background-color:blue;color: white;" colspan="2">frame_top</td> </tr><tr><td style="border-right: 4px solid red;width: 20%;background-color:green;color: white;">frame_left</td> <td style="width: 80%;background-color:lime;color: white;">frame_right</td> </tr></table><p> <!DOCTYPE html> <html><br><head><br><meta charset="UTF-8"> <title>Управление границей фреймов</title> </head> <frameset rows="150, *" border="10" bordercolor="red" frameborder="1" frameborder="yes"> <frame src="frame_top.html" noresize> <frameset cols="20%, 80%"> <frame src="frame_left.html"> <frame src="frame_right.html"> </frameset> </frameset> </html></p> <p>Если вы хотите расположить страницу, отображаемую внутри фрейма, ближе к его границам, или, наоборот, отодвинуть дальше, измените атрибуты <b>marginheight </b> и <b>marginwidth </b> тэга <b><frame> </b> . Атрибут <b>marginheight </b> определяет отступ между содержимым фрейма и его верхней и нижней границами. Синтаксис:</p><p> <frame marginheight="число"> </p><p>Атрибут <b>marginwidth </b> определяет отступ между содержимым фрейма и его правой и левой границами. Синтаксис:</p><p> <frame marginwidth="число"> </p><p>Данная строка html, например, располагает отображаемую страницу вплотную к границе фрейма:</p> <p>Если страница отображает нежелательную для вас полосу прокрутки, вы можете решить эту проблему, указав атрибут <b>scrolling </b>="no" в тэге <b><frame> </b> . Но учтите, что если фрейм будет недостаточно большим, чтобы отобразить все содержимое страницы, то у посетителя не будет никакой возможности прокрутить отображаемую страницу.</p> <h2>Ссылки внутри фреймов</h2> <p>Переход по ссылке в обычном HTML-документе осуществляется следующим образом: нажимаете ссылку и текущий документ заменяется новым в текущем либо в новом окне браузера. При использовании фреймов схема загрузки html-документов отличается от обычной и главное отличие — это возможность загружать html-документ в один фрейм из другого фрейма.<br> Для загрузки документа в определенный фрейм используется атрибут <b>target </b> тега <b><a> </b> . В качестве значения атрибута <b>target </b> используется имя фрейма, в который будет загружаться документ, указанный атрибутом <b>name </b> тега <b><frame> </b> . Стоит также отметить, что имя фрейма должно начинаться либо с цифры либо с латинской буквы. Следующие имена используются в качестве зарезервированных:</p> <p>Для внешних ссылок следует задавать в качестве значения для атрибута target либо _top , либо _blank , для того, чтобы сторонние проекты отображались не в ваших фреймах, а занимали полное окно браузера.</p> <p>В следующем примере изображен HTML-документ, в правый фрейм которого загружается страница по ссылке, помещенной в верхний фрейм. Ссылка на документ, который откроется в правом фрейме:</p><p> <a href="http://www.google.com" target="frame_right">Google</a> </p><p>Правому фрейму присваивается имя <i>frame_right </i>:</p><p> <frame src="frame_right.html" name="frame_right"> </p><p>Чтобы документ загружался в указанный фрейм, используется конструкция <i>target="frame_right" </i>, как показано в примере:</p> <h3>Пример: Ссылка на другой фрейм</h3> <ul><li>Попробуй сам »</li> </ul><p> <!DOCTYPE html> <html><br><head><br><meta charset="UTF-8"> <title>Ссылка на другой фрейм</title> </head> <frameset rows="100, *"> <frame src="frame_topic.html"> <frameset cols="20%, 80%"> <frame src="frame_left.html"> <frame src="frame_right.html" name="frame_right"> </frameset> <noframes> <p>Ваш браузер не отображает фреймы</p>

Плавающие фреймы

Элемент

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

Для создания фрейма используется тег , который заменяет тег в документе и применяется для разделения экрана на области. Внутри данного тега находятся теги , которые указывают на HTML-документ, предназначенный для загрузки в область (рис. 13.1).

Рис. 13.1. Пример разделения окна браузера на два фрейма

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

Рассмотрим этапы создания фреймов на основе страницы, продемонстрированной на рис. 13.1. Нам понадобится три файла: index.html — определяет структуру документа, menu.html — загружается в левый фрейм и content.html — загружается в правый фрейм. Из них только index.html отличается по структуре своего кода от других файлов (пример 13.1).

Пример 13.1. Файл index.html

Фреймы

В случае использования фреймов в первой строке кода пишется следующий тип документа.

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

В данном примере окно браузера разбивается на две колонки с помощью атрибута cols , левая колонка занимает 100 пикселов, а правая — оставшееся пространство, заданное символом звездочки. Ширину или высоту фреймов можно также задавать в процентном отношении, наподобие таблиц.

В теге задается имя HTML-файла, загружаемого в указанную область с помощью атрибута src . В левое окно будет загружен файл, названный menu.html (пример 13.2), а в правое — content.html (пример 13.3). Каждому фрейму желательно задать его уникальное имя, чтобы документы можно было загружать в указанное окно с помощью атрибута name .

Пример 13.2. Файл menu.html

Навигация по сайту

В данном примере серый фон на странице задается с помощью стилей, о которых речь пойдет далее.

Пример 13.3. Файл content.html

Содержание сайта

СОДЕРЖАНИЕ

Рассмотрим более сложный пример уже с тремя фреймами (рис. 13.2).

Рис. 13.2. Разделение страницы на три фрейма

В данном случае опять используется тег , но два раза, причем один тег вкладывается в другой. Горизонтальное разбиение создается через атрибут rows , где для разнообразия применяется процентная запись (пример 13.4).

Пример 13.4. Три фрейма

Фреймы

Как видно из данного примера, контейнер с атрибутом rows вначале создает два горизонтальных фрейма, но вместо второго фрейма подставляется еще один , который повторяет уже известную вам структуру из примера 13.1. Чтобы не появилась вертикальная полоса прокрутки, и пользователь не мог самостоятельно изменить размер верхнего фрейма, добавлены атрибуты scrolling="no" и noresize .

Инструкция

Язык HTML (HyperText Markup Language - «язык разметки гипертекста») предусматривает два вида фреймов. «Плавающий» более гибок и его проще вставить в уже существующую . В общем случае конструкция, описывающая врезку окна с помощью плавающего фрейма, выглядит так:Здесь в качестве источника данных для этого фрейма указана существующего сайта (атрибут src). Она и будет открыта во фрейме размером 400 на 300 , как это указано в атрибутах width и height.Вы можете указать в атрибуте src и страницу своего сайта. В этом случае достаточно задать относительный адрес (то есть адрес относительно страницы, в которую вставляется фрейм):В этом образце не указаны и высота фрейма, но зато есть атрибут- id. Используя его, вы можете с помощью CSS () задать для этого фрейма необходимые размеры:

Другой тип фреймов - «классический» - требует наличия отдельной страницы, которая будет содержать описание структуры фреймов. Сами фреймы будут находиться в отдельных страницах, может даже на отдельных сайтах. HTML-код такой страницы-контейнера для фреймов может выглядеть так:




Никаких блоков ... и ... , обязательных для обычных страниц, здесь быть не должно.В этом образце открывающий тег контейнера содержит атрибут rows - это , что пространство страницы должно быть поделено по вертикали и первому фрейму будет отдана верхняя часть. Если заменить rows на cols, то разделение будет горизонтальным. Значение этого атрибута "*,*" указывает, что пропорции разделения - по 50% каждому. Если указать, например "20%,*", то первому фрейму будет отдано только 20%, а остальное пространство - второму.Пользователь может сам изменять эти пропорции, перетаскивая границы фреймов мышкой, но есть возможность запретить это действие. Для этого в тег конкретного фрейма нужно добавить атрибут noresize. Можно также указать размеры отступов от соседнего фрейма по вертикали и горизонтали (атрибуты marginwidth и marginheight):Есть возможность задавать правила поведения для полос прокрутки каждого фрейма в отдельности. Для этого используется атрибут scrolling, который может содержать одно из трех предопределенных значений. Если указать scrolling="auto", то прокрутки будут появляться когда содержимое фрейма не вмещается в его границы. Если "yes" - полосы будут присутствовать постоянно, независимо от наличия необходимости в них. Если "no" - это будет означать запрет полос прокрутки для этого фрейма.

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

Окно браузера может быть разделено на части, которые называются фреймами, иногда кадрами; можно их назвать и подокнами. В каждую такую часть окна браузера, т.е. фрейм, может быть загружен отдельный HTML документ. Рассмотрим пример окна браузера с тремя фреймами.

В каждый фрейм в этом случае для наглядности загружен простой HTML документ, сообщающий номер фрейма и название файла, хранящего его содержимое. Если в фрейм будет загружен реальный документ, который не помещается полностью в нем, то у фрейма (внимание, не у всего окна!) появятся вертикальная и/или горизонтальная полосы прокрутки в зависимости от того, по горизонтали и/или по вертикали не помещается содержимое документа.
Например, дизайн и структура вашего сайта таковы, что есть одинаковые элементы, повторяющиеся на каждой странице сайта: название, навигационное меню, адрес в конце страницы или какие-то иные подобные элементы. Изменяется только содержание разделов. Тогда страницы можно разбить на части таким образом, чтобы неизменяемые части были помещены в отдельные фреймы, а еще один фрейм выделить для того, чтобы в него загружалось содержимое нужного раздела после щелчка на соответствующей ссылке, например, из меню.
Это дает экономию в скорости загрузки, так как одинаковые части страниц сайта повторно не загружаются, а просто все время отображаются в отведенных им фреймах.

Создание структуры фреймов элемент FRAMESET

Структура разбивки окна хранится в отдельном HTML документе, он и называется документом с фреймами. Структура фреймов формируется при помощи специального элемента FRAMESET. Обычный документ имеет один раздел HEAD и один раздел BODY, тогда как в документе с фреймами раздел BODY заменяется описанием структуры фреймов, Т.е. разделом FRAMESET.
В раздел FRAMESET может быть добавлен элемент NOFRAME с альтернативным содержанием для отображения в браузерах, не поддерживающих фреймы, или в браузерах с отключенной поддержкой фреймов. Такие браузеры просто не поймут структуры FRAMESET и NOFRAME, а отобразят помещенный внутри них текст.

Простой документ с фреймами</ТIТLЕ> </span> </HEAD> <FRAМESET > <span> ...описание структуры фреймов... </span> <NOFRAМES> <span> Альтернативное содержание для браузеров, не поддерживающих фреймы </span> </NOFRAМES> </FRAМESET> </HТМL> <p>Обратите внимание, что раздел BODY в документе отсутствует полностью, а элемент NOFRAMES содержится внутри раздела FRAMESET.<br> Сама структура фреймов формируется делением окна браузера на части — строки и колонки; В какой-то степени это похоже не создание таблиц. Для этого у элемента FRAMESET существуют атрибуты cols и rows, задающие деление на колонки и строки соответственно.<br> Единицы измерения, в которых можно задавать размеры фреймов, это, как обычно, пиксели и проценты. Есть еще возможность задавать размер в новой пока для нас единице измерения, которую условно можно назвать «часть» окна. Значения атрибутов cols и rows задаются перечислением размеров соответствующих областей через запятую. Можно комбинировать разные способы задания. Рассмотрим несколько примеров, исходя из предположения, что размер окна браузера 800х600 пикселей.</p> <FRAМESET rows= "50%, 50%"> </FRAМESET> <p>Такой код поделит окно по горизонтали на два одинаковых по высоте фрейма (строки). Если задать атрибут cols=» 50%, 50%», то получим две одинаковые по ширине колонки.</p> <span><FRAМESET cols= "120, 400. *"> </span> <span> . . . продолжение определения структуры фреймов. . . </span> </FRAМESET> <p>При таком коде получим три колонки фреймов: левая шириной 120 пикселей, средняя шириной 400 пикселей, а на третью колонку отводится все, что останется от первых двух колонок, в атрибуте это значение обозначается символом звездочки «*».</p> <FRAМESET cols= "1*, 4*"> <span> . . . продолжение определения структуры фреймов. . . </span> </FRAМESET> <p>Такой код создаст две колонки фреймов. Ширина первой принимается за единицу (это обозначается как 1 * или просто *), ширина второй в четыре раза больше. Таким образом, ширина первой будет 20%, а ширина второй 80% от общей ширины окна браузера.</p> <span><FRAМESET cols= "100, 40%, *"> </span> <span> . . . продолжение определения структуры фреймов... </span> </FRAМESET> <p>В приведенном мере комбинируются все три способа задания размеров. Ширина первой колонки будет равна 100 пикселей, для второй отводится 40% оставшейся ширины (800 — 100 = 700), и на третью остается все, что не занято первой и второй колонками.<br> Раздел FRAMESET может содержать вложенные разделы FRAMESET, что позволяет создать довольно сложную структуру фреймов. Допустим, нам надо разделить окно на 4 фрейма следующим образом:</p> <p><img src='https://i0.wp.com/samsebewebmaster.ru/wp-content/uploads/2016/06/Fr-1.jpg' align="center" width="100%" loading=lazy></p> <p>Сначала необходимо организовать 2 колонки таким образом:</p> cols= "100, * " <p>Затем вторую колонку поделить на три строки таким образом:</p> rows=" 80, *, 30" <p>Отдельный фрейм, точнее его описание, задается элементом FRAME и его атрибутами: подробнее о нем чуть позже. Вернемся к вложенным элементам FRAMESET. Рассмотрим пример кода, создающего такую структуру фреймов:</p> <FRAМESET cols= "100, * "> <span> <FRAМE name= "framel" src= "framel.html"> </span> <span> <FRAМESET rows= "80, *, 30"> </span> <span> <FRAМE name= "frame2" src= "frame2.html"> </span> <span> <FRAМE name= "frame3" src= "frame3.html"> </span> <span> <FRAМE name= "frame4" src= "frame4.html"> </span> </FRAМESET> </FRAМESET> <p>Каким образом разбивается окно на фреймы, вроде бы разобрались. При создании фреймов можно сделать так, чтобы границы между фреймами видно не было. Как вы, наверное, уже догадались, делается это при помощи атрибута border его значение должно равняться нулю. Но дело в том, что для фреймов этот атрибут не воспринимается браузером Internet Explorer, зато поддерживается браузером Netscape Navigator. Для Internet Explorer граница между фреймами задается атрибутом frameborder, который не поддерживается браузером Netscape Navigator. Получается, что необходимо задавать одинаковые значения для обоих атрибутов, чтобы оба браузера восприняли HTML код одинаково и толщина границ между фреймами была одинаковой.<br> Толщину границ или, по-другому, расстояние между фреймами также можно регулировать атрибутом framespacing, значение которого задается в пикселях. Все атрибуты элемента FRAMESET приведены в таблице.</p> <h2>Атрибуты элемента <FRAMESEТ></h2> <table cellspacing="1" cellpadding="15"><tbody><tr><td bgcolor="#E7E7E7" width="20%"> <h3>Атрибут</h3> </td> <td bgcolor="#E7E7E7" width="60%"> <h3>Описание</h3> </td> <td bgcolor="#E7E7E7" width="20%"> <h3>Пример</h3> </td> </tr></tbody></table><table cellspacing="1" cellpadding="15"><tbody><tr><td bgcolor="#E7E7E7" width="20%">rows </td> <td bgcolor="#E7E7E7" width="60%">Определяет количество и размеры горизонтальных фреймов (фреймов строк) в окне браузера. В качестве значения задается список размеров фреймов через запятую. Способы задания размеров: <p>а) в процентах от высоты рабочей области окна браузера например: "30%, 30%, 40%" ;</p> <p>б) в виде знака «*» (звездочка), говорящего о том, что фрейм занимает все свободное пространство окна браузера, незанятое другими фреймами с явно указанными размерами например, звездочка в записи "25%, 25%, *" равносильна 50%;</p> <p>в) в пикселях например: "75, *" .</p> <p>Все три способа можно совмещать.</p> </td> <td bgcolor="#E7E7E7" width="20%"> rows= "25%, 25%, *" </td> </tr><tr><td bgcolor="#E7E7E7" width="20%">cols </td> <td bgcolor="#E7E7E7" width="60%">Определяет количество и размеры вертикальных фреймов (фреймов столбцов) в окне браузера. В качестве значения<br> задается список размеров фреймов через запятую. Размеры задаются так же, как и в предыдущем параметре ROWS. </td> <td bgcolor="#E7E7E7" width="20%"> cols= "265, *" </td> </tr><tr><td bgcolor="#E7E7E7" width="20%">border </td> <td bgcolor="#E7E7E7" width="60%">Определяет ширину рамок фреймов в пикселях. Данный параметр действует только в браузерах Netscape. </td> <td bgcolor="#E7E7E7" width="20%"> Border= "0" </td> </tr><tr><td bgcolor="#E7E7E7" width="20%">frameborder </td> <td bgcolor="#E7E7E7" width="60%">Данный параметр действует только в браузерах lnternet Explorer и определяет наличие рамок у содержащихся внутри элемента FRAMESET фреймов. Возможные значения: Yes отображать рамки; No или 0 не отображать рамки. </td> <td bgcolor="#E7E7E7" width="20%"> Frameborder= "0" </td> </tr><tr><td bgcolor="#E7E7E7" width="20%">framespacing </td> <td bgcolor="#E7E7E7" width="60%">Определяет расстояние (так называемую «серую область») между фреймами в пикселях. Данный параметр также необходим для создания фреймов без рамок. </td> <td bgcolor="#E7E7E7" width="20%"> framespacing= "0" </td> </tr></tbody></table><p>Теперь вернемся к элементу FRAME, который описывает отдельный фрейм внутри всей структуры. Обязательный параметр для него — атрибут src, который задает URL HTML — документа или изображения для отображения в этом фрейме. Также лучше задать фрейму имя при помощи атрибута name. Это позволит использовать данное имя в качестве значения атрибута target элемента А и управлять тем, в какой фрейм должна загружаться ссылка. Имена фреймов не могут начинаться с цифр, в качестве начальных символов допустимы только буквы латинскою алфавита (az, AZ).</p> <p>Когда в структуре фреймов не задана рамка между фреймами, их содержимое может слишком плотно примыкать друг к другу, что будет не очень красиво выглядеть. Если хотите раздвинуть содержимое фреймов и при этом все-таки не включать отображение границ между ними, то это можно сделать, задав внутри фреймов отступы. Размер этих отступов задается в пикселях и попарно: для отступов сверху и снизу атрибутом marginheight,<br> а для отступов справа и слева атрибутом marginwidth. Тогда расстояние между содержимым соседних фреймов будет равно сумме соответствующих отступов этих фреймов.</p> <p>Должна ли отображаться рамка вокруг отдельною фрейма, определяется его атрибутом frameborder. Значение yes (или 1) говорит о том, что рамка должна быть, значение no (или 0) указывает, что рамки быть не должно.<br> Пользователь может изменять размер фреймов, созданный HTML документом. Для этого достаточно подвести курсор мыши к границе фреймов (неважно, видны эти границы или нет) и стандартным для операционной системы способом изменить размер окна.<br> В Windows курсор мыши примет вид двунаправленной черной стрелки. Нажав левую кнопку мыши, можно передвинуть границу окна. Аналогично можно изменить и размер фрейма, поскольку фрейм это тоже окно. Если вы рассчитали размеры своих фреймов и не хотите, чтобы пользователь менял их, задайте атрибут noresize. В результате изменение размеров будет запрещено.<br> Как мы уже говорили ранее, полосы прокрутки у фрейма появляются в том случае, если его содержимое в заданных его границах полностью не помещается. Наличие полос прокрутки регулируется атрибутом scrolling. Допустимы три значения yes, no и auto.<br> Значение auto соответствует автоматическому появлению полос прокрутки в тех случаях, когда это действительно необходимо. Если содержимое видно и так, полос прокрутки нет, если часть содержимого не помещается появляется нужная полоса прокрутки.<br> Значение yes включает обе полосы прокрутки независимо от того, нужны они или нет. Иногда это может выглядеть не очень красиво.<br> Значение no запрещает показывать полосы прокрутки совсем. Будьте осторожны с этим значением, поскольку при его указании можете лишить пользователя возможности увидеть все содержимое фрейма, Когда оно не помещается в нем полностью. Все атрибуты элемента FRAME приведены в таблице.</p> <h2>Атрибуты элемента <FRAME></h2> <table cellspacing="1" cellpadding="15"><tbody><tr><td bgcolor="#E7E7E7" width="20%"> <h3>Атрибут</h3> </td> <td bgcolor="#E7E7E7" width="60%"> <h3>Описание</h3> </td> <td bgcolor="#E7E7E7" width="20%"> <h3>Пример</h3> </td> </tr></tbody></table><table cellspacing="1" cellpadding="15"><tbody><tr><td bgcolor="#E7E7E7" width="20%">src </td> <td bgcolor="#E7E7E7" width="60%">Обязательный параметр. Указывает адрес (URL) HTL<br> файла, отображаемого в данном фрейме </td> <td bgcolor="#E7E7E7" width="20%"> src= "frame2 .html" </td> </tr><tr><td bgcolor="#E7E7E7" width="20%">name </td> <td bgcolor="#E7E7E7" width="60%">Определяет имя данного фрейма, которое будет в дальнейшем использоваться для ссылки на него из других документов с помощью атрибута target (см. элемент А). В качестве значения нужно указать любое имя без пробелов с использованием латинских символов и цифр<br> (начальными символами могут быть только буквы латинского алфавита: a-z, A-Z). Имя не должно начинаться с цифр и специальных символов. Зарезервированные имена фреймов начинаются со знака подчеркивания. </td> <td bgcolor="#E7E7E7" width="20%"> name= "menu1" </td> </tr><tr><td bgcolor="#E7E7E7" width="20%">marginwidth </td> <td bgcolor="#E7E7E7" width="60%">Определяет ширину (в пикселях) левого и правого полей фрейма. Если параметр не указан, браузер самостоятельно определит оптимальный размер отступа. </td> <td bgcolor="#E7E7E7" width="20%"> marginwidth= "0" </td> </tr><tr><td bgcolor="#E7E7E7" width="20%">marginheight </td> <td bgcolor="#E7E7E7" width="60%">Определяет ширину (в пикселях) верхнего и нижнего полей фрейма. Если параметр не указан, браузер самостоятельно определит оптимальный размер отступа. </td> <td bgcolor="#E7E7E7" width="20%"> marginheight= "0" </td> </tr><tr><td bgcolor="#E7E7E7" width="20%">scrolling </td> <td bgcolor="#E7E7E7" width="60%">Определяет наличие полос прокрутки содержимого фрейма. Возможные значения:<br> yes — отображать полосы прокрутки;<br> no — не отображать полосы прокрутки;<br> auto — отображать полосы прокрутки при необходимости (если документ, указанный в параметре SRC, не умещается во фрейме) </td> <td bgcolor="#E7E7E7" width="20%"> scrolling= "auto" </td> </tr><tr><td bgcolor="#E7E7E7" width="20%">noresize </td> <td bgcolor="#E7E7E7" width="60%">Не позволяет изменять размеры фрейма. Данный параметр является флагом и не требует указания значения. </td> <td bgcolor="#E7E7E7" width="20%"> noresize </td> </tr><tr><td bgcolor="#E7E7E7" width="20%">frameborder </td> <td bgcolor="#E7E7E7" width="60%">Определяет наличие рамок у фрейма. Возможные значения:<br> yes или 1 — отображать рамки;<br> no или 0 — не отображать рамки. </td> <td bgcolor="#E7E7E7" width="20%"> frameborder= "0" </td> </tr></tbody></table> <p>Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы разобрали, как установить favicon на сайт . В данной статье я бы хотел рассказать, что такое <b>фреймы в html </b>. В переводе с англ. фрейм означает "рамка". С точки зрения html, фрейм — это некая выделенная область на странице, которая ссылается на другую страницу и выводит её содержимое (той самой другой страницы или сайта). Стоит сразу отметить, что фреймы не получили большого развития и сейчас почти не используются, разве что в каких-то специализированных проектах.Всё то же самое можно сделать с помощью CSS и Javascript.<br> С помощью фрейма страницу можно разбить на несколько блоков, каждый из которых будет независим от других. Давайте создадим основной документ index.html и два вспомогательных (внутренних), содержимое которых как раз и будет отображаться на основной странице: menu.html (будет содержать разметку навигации по сайту) и content.html (контент сайта). Разметка index.html будет иметь следующий вид:</p><p> <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Фрэймы в HTML

Обращаю ваше внимание, что здесь отсутствует тег , вместо него появился тег . У данного тега есть несколько атрибутов:

  • cols — данный атрибут указывает, что фреймы будут помещены в столбцы. В значении данного атрибута через запятую указываются размеры фреймов. В нашем случае у нас будет 2 фрейма. Ширина первого будет 40% от ширины страницы, * означает всё остальное пространство страницы (в данном случае можно было написать и 60%). Также размер можно задавать и в пикселях.
  • rows — данный атрибут указывает, что фреймы будут помещены в строки.

Содержимое файла menu.html имеет вид:

  • 1 пункт меню
  • 2 пункт меню
  • 3 пункт меню

Содержимое файла content.html имеет вид:

Тестируем фреймы

Абзац текста

Чтобы вывести содержимое другого документа нужно использовать тег с атрибутом src , в значении которого указывается путь до файла. Также можно указывать url сайта, который мы хотим вывести в этом блоке. Для начала давайте выведем наши страницы menu.html и content.html :

Обязательно наберите данный код, чтобы посмотреть как это всё работает.

У тега frame существуют следующие атрибуты:

  • src — путь до страницы или же url-адрес сайта (страницы сайта). Стоит отметить, что у некоторых сайтов существует защита от встраивания,
  • name — присваивает фрейму имя, с помощью которого данным фреймом можно управлять,
  • noresize — запрещает изменять размер фрейма,
  • scrolling — возможность прокручивать содержимое.

В качестве домашнего задания создайте 2 фрейма и разместите их в строку. В качестве значения атрибута src укажите путь до сайтов.




Top