Фреймы позволяют разбить окно веб-браузера на несколько прямоугольных областей, в каждую из которых можно загрузить отдельный HTML-документ.
Обычно заголовок и панель навигации для всех страниц сайта содержат одну и ту же информацию, а изменяется только основное содержание страниц. С помощью фреймовой структуры можно заголовок поместить в одно окно навигации — во второе, а основное содержание страницы — в третье. Это позволит, оставляя в неизменном состоянии два первых окна, изменять содержание третьего.
Создадим веб-страницу с такой структурой. Для этого создадим 5 файлов:
HTML-документ, содержащий заголовок (93.html)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Заголовок</title>
</head>
<body bgcolor="#CCFFFF">
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="middle">
<h1>Заголовок</h1>
</td>
</tr>
</table>
</body>
</html>
HTML-документ, содержащий панель навигации (94.html)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Панель навигации</title>
</head>
<body bgcolor="#CCFFFF">
<br>
<h3 align="center">Оглавление</h3>
<ul type="disc">
<li><a href="95.html">Глава1</a></li>
<li><a href="96.html">Глава2</a></li>
</ul>
</body>
</html>
HTML-документ содержащий основное содержание главы1 (95.html)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Глава1</title>
</head>
<body bgcolor="#CCFFFF">
<br>
<h3 align="center">Глава1</h3>
<p>Содержание главы1</p>
</body>
</html>
HTML-документ содержащий основное содержание главы2 (96.html)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Глава2</title>
</head>
<body bgcolor="#CCFFFF">
<br>
<h3 align="center">Глава2</h3>
<p>Содержание главы2</p>
</body>
</html>
HTML-документ , описывающий фреймовую структуру (97.html)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Пример использования фреймов</title>
</head>
<frameset rows="100, *">
<frame src="93.html" scrolling="no">
<frameset cols="20%, 80%" >
<frame src="94.html">
<frame src="95.html" name="charter">
</frameset>
</frameset>
<noframes>
Ваш веб-браузер не отражает фреймы
</noframes>
</html
Все созданные файлы сохраним в одной папке. Откроем файл 97.html.
В окне веб-браузера это будет выглядеть ТАК.
Окно разделено на три прямоугольные области. В верхней части окна находится заголовок. В нижней — расположена панель навигации (слева) и основная часть документа (справа). При переходе по ссылкам содержимое основной части меняется, а остальные остаются неизменными. Если теперь посмотреть HTML-код документа (Вид > Просмотр HTML-кода), то мы увидим только код структуры веб-страницы, не исходный код каждого из HTML-документов. Иными словами, будет отображен исходный код файла 97.html. Чтобы увидеть исходный код заголовка (файл 93.html), необходимо правой кнопкой мыши щелкнуть внутри области, содержащей заголовок. В появившемся контекстном меню нужно выбрать пункт Просмотр HTML-кода. Чтобы посмотреть исходный код файла 94.html, необходимо правой кнопкой мыши щелкнуть по области, содержащей оглавление и т.д.
Примечание. При использовании фреймов следует учитывать, что поисковые машины при индексации сайтов заносят в свой базы данных именно отдельные страницы структуры фреймов, а не саму структуру. Это обстоятельство полностью разрушает структуру сайта. Ведь если паналь навигации расположена на одной странице, а основная часть страницы на другой, то при переходе посетителя с поискового портала он попадает сразу на основную часть, а панель навигации ему не доступна.
Структура HTML-документа с фреймами отличается от обычной структуры.
Структура HTML-документа с фреймами
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Заголовок страницы</title>
</head>
<frameset rows="100, *">
<frame>
<frameset cols="20%, 80%" >
<frame>
<frame>
</frameset>
</frameset>
<noframes>
Ваш веб-браузер не отражает фреймы
</noframes>
</html>
Как и в обычном HTML-документе, весь код расположен между тегами <html> и </html>, а в разделе <head> и </head> располагаются заголовки. Основное отличие документа с фреймами от обычного HTML-документа — у документа с фреймами отсутствует раздел body, отсутствует содержимое страницы, а присутствуют только теги, служащие для определения фреймовой структуры. Иными словами, документ с фреймами не может содержать раздела body и наоборот, обычный HTML-документ не может содержать фреймовую структуру.
Вместо тега <body> применяется парный тег <frameset>, описывающий фреймовую структуру. Каждое отдельное окно описывается тегом <frame>. Если веб-браузер не поддерживает фреймы, то в окне будет отображен текст, расположенный между тегами <noframes> и </noframes>. Рассмотрим эти теги подробно.
Парный тег <frameset> описывает фреймовую структуру. Внутри тегов <frameset> и </frameset> могут содержаться только теги <frame> или другой набор фреймов, описанный тегами <frameset> и </frameset>. Тег <frameset> имеет следующие параметры:
В качестве значений параметров rows и cols указываются размеры фреймов. Должно быть указано как минимум два значения. Все значения в списке разделяются запятыми. Размеры могут быть указаны в абсолютных единицах (в пикселах) или процентах:
cols="20%, 80%"Кроме того, в качестве ширины или высоты может быть указана звездочка (*), которая означает, что под фрейм нужно отвести все оставшееся пространство:
rows="100, *"
Тег <frame> описывает одиночный фрейм и не имеет закрывающего тега. Он располагается между тегами <frameset> и </frameset> и имеет следующие параметры:
<frame src="95.html ">
<frame src="95.html" name="charter">
<frame src="95.html" name="charter" scrolling ="auto">
<frame src="95.html" name="charter" scrolling ="yes">
<frame src="95.html" name="charter" scrolling ="no ">
<frame src="95.html" name="charter" marginwidth = "5">
<frame src="95.html" name="charter" marginwidth = "5" marginheight ="5" >
<frame src="95.html" name="charter" bordercolor = "red" >
<frame src="95.html" name="charter" frameborder = "yes" >
<frame src="95.html" name="charter" frameborder = " no" >
<frame src="95.html" name="charter" scrolling ="no" noresize >
Если веб-браузер не поддерживает фреймы, то в окне будет отображен текст, расположенный между тегами <noframes> и </noframes>. В противном случае содержимое этих тегов будет проигнорировано.
Пример:
<noframes>
Ваш веб-браузер не отражает фреймы
</noframes>
Для загрузки документа в определенный фрейм существует параметр target тега <a>. В параметре target указывается имя фрейма (которое задается с помощью параметра name тега <frame>) или одно из зарегистрированных значений:
<a href = "filel.html" target = "_blank">Текст ссылки</a>
<a href = "filel.html" target = "_self">Текст ссылки</a>
<a href = "filel.html" target = "_top">Текст ссылки</a>
<a href = "filel.html" target = "_parent">Текст ссылки</a>
Если нужно загрузить документ во фрейм с именем charter, то ссылка будет такой:
<a href = "filel.html" target = "charter">Текст ссылки</a>
С помощью парного тега <iframe> можно вставлять фреймы в обычный HTML-документ. Если тег <iframe> не поддерживается, то будет выведен текст между тегами <iframe> и </iframe>. Иногда такие фреймы называют плавающими. Тег <iframe> имеет следующие параметры:
<iframe srs = "http//sevidi.narod.ru/site.html">
<iframe src = "htmpage11.php">
Пример:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Пример применения плавающих фреймов</title>
</head>
<body>
<iframe src = "htmpage10.php ">
</body>
</html>
В окне веб-браузера это будет выглядеть ТАК.
<iframe src = "htmpage10.php " name="charter">
<iframe src = "htmpage10.php " name="charter" scrolling = "auto">
<iframe src = "htmpage10.php " name="charter" scrolling = "yes">
<iframe src = "htmpage10.php " name="charter" scrolling = "no ">
<iframe src = "htmpage10.php " name="charter" marginwidth = "5" marginheight = "5">
<iframe src = "htmpage10.php " name="charter" frameborder = "yes">
<iframe src = "htmpage10.php " name="charter" frameborder = "no">
<iframe src = "htmpage10.php " name="charter" frameborder = "yes" border= "2">
<iframe src = "htmpage10.php " name="charter" width ="200" height ="200">
<iframe src = "htmpage10.php " name="charter" vspace = "5" hspace = "10">
<iframe src = "htmpage10.php " name="charter" align ="left" >
<iframe src = "htmpage10.php " name="charter" align ="right" >
<iframe src = "htmpage10.php " name="charter" align ="center" >
Пример применения плавающих фреймов
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Пример применения плавающих фреймов</title>
</head>
<body>
<h1 align="center">Название документа</h1>
<br>
<iframe src="../htmpage11.php" name="chapter" width="900" height="300" align="right"scrolling="auto">
Ваш браузер не отображает фреймы
</iframe>
<h2>Оглавление</h2>
<ul>
<li><a href="../htmpage10.php" target="chapter">Таблицы</a></li>
<li><a href="../htmpage9.php" target="chapter">Разметка страницы</a></li>
</ul>
</body>
</html>
В окне веб-браузера это будет выглядеть ТАК.
Здесь заголовок и панель навигации остаются в неизменном состоянии, а при переходе по ссылкам соответствующая страница загружается в окно фрейма.
Очень часто тег <iframe> используется в ходе сетей обмена банерами и коде рекламных сетей. В других целях использование тега очень ограниченно из-за отсутствия поддержки большинством веб-браузеров.
Похожие материалы по теме: Окна и фреймы.
Фреймы
Предотвращение использования фреймов. Плавaющие фреймы. Всплывающие окна.