Html фреймы – Фрейм (html) — Википедия

Фреймы. Плавающий фрейм. Noframes. Учебник html frame

Глава 7

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

Часто при создании сайта возникает необходимость открывать в одном окне браузера одновременно несколько HTML документов.. так вот фреймы как раз таки и созданы для того чтобы определить рабочие области для каждого документа. Кроме того, фреймы — это хороший инструмент, с помощью которого можно заниматься версткой страницы, они служат достойной «альтернативой» табличному способу верстки страницы.. в кавычки взял слово «альтернатива» потому, что это совершенно иной способ построения сайта со своими достоинствами и недостатками и его достаточно трудно сопоставлять с доселе привычным построением сайта.. но обо всем по порядку..

Ну что, начнем? Допустим нам необходимо в одном окне браузера открыть сразу три HTML документа и расположить их к примеру вот таким способом:

Что нам для этого нужно? Для начала естественно нам необходимо создать три отдельных html документа которые мы собственно и будем открывать в одном окне.. Пусть первый документ будет нести в себе графическое изображение и будет выполнять роль логотипа назовём его logotype.html , вторым документом будет некое содержание.. назовём menu.html , ну и третьим документ с кучей текста. text.html. Конечно Вы можете придумать свои названия, как впрочем и содержание документов, но пока лучше всё же копируйте мои.. так будет удобнее и мне и Вам.

Итак, есть три файла logotype.html, menu.html и text.html.. которые нам необходимо разместить под одной крышей, а крыши у нас как раз таки ещё пока и нет..

Пишем «крышу», главный документ к которому будем подключать наши файлы. Раз он будет главным, присваиваем ему имя index.html.

<html>
<head>
<title>фреймы</title>
</head>
<body>
</body>
</html>

Вот привычная для нас структура документа которую мы пережевали ещё в самом начале нашего обучения.. Фреймы ломают сложившиеся стереотипы! Структура фрейм документа имеет вот такой вид:

<html>
<head>
<title>фреймы </title>
</head>
<frameset>


</frameset>
</html>

Отсутствие тега <body> компенсирует новый тег <frameset> — установить фрейм или набор фреймов.. с этим товарищем мы собственно и будем работать дальше.

Тег <frameset> имеет атрибуты rows и cols — эти атрибуты указывают браузеру на то, как следует размещать фреймы в окне браузера

rows — горизонтально                cols — вертикально

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

<html>
<head>
<title>фреймы </title>
</head>
<frameset rows=»15%,15%,70%»>
</frameset>
</html>

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

Вот несколько примеров написания:

<frameset rows=»15%,15%,70%»> — такая запись говорит о том, что будет три горизонтальных окошка где последнее займет 70% площади окна браузера, а первые два по 15%.
<frameset cols =»200,240,200″> — здесь три окна расположены вертикально ширина которых указана в пикселях.
<frameset rows=»100,*,180″> — такая запись значит, что первое и третье окно будут иметь ширину 100 и 180 пикселей соответственно, а второй фрейм займет всю оставшеюся площадь.

С размещением документов покончили, теперь собственно осталось их подключить и насладится первым результатом..

Тег <frame> и его атрибут src

укажет браузеру путь к html документу который следует открыть в отведенном для него месте. У нас имеется три отдельных документа logotype.html, menu.html и text.html теперь к каждому нужно прописать путь, что мы собственно и делаем. (предполагаю, что у Вас все четыре файла находятся в одной папке и пути к ним имеют самую простую запись по типу: <frame src=»logotype.html»>)

Пример:

Файл index.html
<html>
<head>
<title>фреймы</title>
</head>
<frameset rows=»15%,15%,70%»>
<frame src=»logotype.html»>
<frame src=»menu.html»>

<frame src=»text.html»>
</frameset>
</html>

Файл logotype.html
<html>
<head>
<title>фреймы</title>
</head>
<body>
<img src=»logotype.jpg» alt=»Кулинария»>
</body>
</html>

Файл menu.html
<html>
<head>
<title>фреймы</title>
</head>
<body bgcolor=»#e8e8e8″ background=»fon1.jpg»>
<font face=»Monotype Corsiva» size=»6″color=»#ff0000″>Меню:</font><br>

<font face=»Comic Sans MS» size=»3″>
<a href=»text.html»>Суп из шампиньонов</a><br>
<a href=»text1.html»>Бобы в горшочке по-итальянски</a><br>
<a href=»text2.html»>Австралийский летний салат</a><br>
… … …
</font>
</body>
</html>

Файл text.html
<html>
<head>
<title>фреймы</title>
</head>

<body bgcolor=»#f5f5f5″>
<center><font face=»Comic Sans MS» size=»3″>Суп из шампиньонов</font></center>
<br>
куча текста..
</body>
</html>

В данном примере я выложил все четыре HTML документа где index.html является основным, а остальные три, это подключаемые страницы, каждая из которых в принципе может работать автономно и содержать в себе всё что угодно картинки, таблицы, тексты, ссылки.. сделал я это для того что бы дать Вам понять принцип работы с фреймами. В дальнейших примерах я буду выкладывать лишь головной файл с фреймами, (а то уж больно много места на странице они все вместе занимают), а Вы знайте что у меня «где то там» есть все остальные файлы содержащие в себе графику, тексты, может быть ещё что ни будь.. ну и не отставайте за мной потихоньку редактируйте свои собственные странички к будущему тренировочному сайту.. Не знаю про что Вы будите писать свой, а я тут пообещался помочь одной девушке в написании сайта посвящённого кулинарии..)) так что решил так сказать сразу на двух зайцев замахнуться.. на девушку зайку и сайт..)) как-то так..))

В выше изложенном примере мы расположили все окна горизонтально, поменяв атрибут rows на cols можно расположить их в вертикальном порядке. А как быть, если требуется разместить наши окна


     вот так?:                                    или так?:                                    или даже так?:

Выход есть. Разберём на примерах.

Начнём с первого случая.. что мы видим? А видим мы две строки, где вторая поделена на два столбца.

A теперь по порядку:

<frameset rows=»20%,80%»> — делим окно браузера на две строки
<frame src=»logotype.html»>— в первую строку загружаем наш логотип
<frameset cols=»30%,70%»>— а вторую строку делим на два столбца
<frame src=»menu.html»> — в первом будет меню
<frame src=»text.html»>— а во втором куча текста
</frameset> — закрываем тег деления на столбцы
</frameset> — закрываем тег деления на строки

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

Ну да ладно, смотрим пример:

<html>
<head>
<title>фреймы</title>
</head>
<frameset rows=»15%,85%»>
<frame src=»logotype.html»>
<frameset cols=»20%,80%»>

<frame src=»menu.html»>
<frame src=»text.html»>
</frameset>
</frameset>
</html>

Во втором случае у нас имеется два столбца в котором второй поделен на две строки, значит будем писать так:

<frameset cols=»30%,70%»> — делим окно на два столбца
<frame src=»menu.html»> — в первом будет содержание
<frameset rows=»20%,80%»> — а второй делим на две строки
<frame src=»logotype.html»> — логотип
<frame src=»text.html»> — и основной текст
</frameset> — закрываем деление на строки
</frameset> — закрываем деление на столбцы

Пример:

<html>
<head>
<title>фреймы</title>
</head>
<frameset cols=»20%,80%»>
<frame src=»menu.html»>
<frameset rows=»15%,85%»>
<frame src=»logotype.html»>
<frame src=»text.html»>
</frameset>
</frameset>
</html>

Третий случай немного посложней, но бояться его не стоит.. тем более что именно такое построение лично я выбрал для сайта про кулинарное искусство, чуть ниже объясню почему. Что мы имеем? три столбца причем во второй столбец по сути заключён наш первый случай..

<frameset cols=»*,800,*»> — делим окно на три столбика (обратите внимание второй столбец занимает ровно 800 пикселей а два крайних точного размера не имеют и поделят пополам оставшееся место)
<frame src=»dekor.html»> -в первый столбец загружаем html документ который будет выполнять сугубо декоративную функцию

<frameset rows=»15%,85%»>
<frame src=»logotype.html»>
<frameset cols=»20%,80%»>во второй столбец вставляем наш «первый случай»
<frame src=»menu.html»>
<frame src=»text.html»>
</frameset>
</frameset>

<frame src=»dekor.html»> — в третий столбец загружаем всё тот же файл с декорациями
</frameset> — захлопываем

Посмотрите пример, а потом я объясню почему избрал путь с пятью окнами

Пример:

<html>
<head>
<title>фреймы</title>
</head>
<frameset cols=»*,800,*»>
<frame src=»dekor.html»>
<frameset rows=»120,*»>
<frame src=»logotype.html»>
<frameset cols=»200,600″>
<frame src=»menu.html»>
<frame src=»text.html»>
</frameset>
</frameset>
<frame src=»dekor.html»>
</frameset>
</html>

Так почему пять окон? Помнится мне, я уже писал про то, что у разных пользователей сети Интернет на мониторах выставлены разные разрешения и соответственно на разных экранах наш сайт будет выглядеть по разному.. и если нет конкретных размеров все наши рисунки, тексты, таблицы что называется «поплывут» у тех пользователей, разрешения мониторов которых отлично от Вашего. Когда мы верстали сайт с помощью таблицы, вопрос с размерами страницы решался при помощи присуждения этой таблице конкретной ширины и высоты, к сожалению, с фреймами так поступить нельзя.. даже если указывать ширину фреймов не в процентах, а в пикселях, всё равно последний столбец растянется на оставшеюся ширину окна браузера и страница, что называется, потеряет «товарный вид». Так как же быть? Приходится идти на маленькие хитрости.. Задав центральному столбцу (в котором у нас собственно и размещена вся страница) размер 800 пикселей мы раз и навсегда определи его ширину, а безразмерные первый и третий столбцы помимо декора выполняют роль своего рода «пружин» на которых подвешен центральный столбец.. Так, у людей с маленьким разрешением монитора эти окна/поля будут узкими, а людей с большим разрешением широкими, таким образом центральный столбец никак не пострадает и теперь мы можем с полной уверенностью размещать в нём какие либо объекты, с точной привязкой по месту, не переживая за их дальнейшую судьбу. Сравните первый пример, где три окна и третий, где их уже пять, неправда ли так лучше?

На этом с размещением и размерами фреймов закончим.. и так здесь долго задержались.. идём дальше.

В последнем нашем примере первое, что бросается в глаза, это целая куча полос прокруток, которые стоят где надо и не надо.. Давайте от них избавимся, ну можно и оставить кое где.. Делается это при помощи атрибута scrollingтега <frame>, он может иметь одно из трёх значений:

  • no— никогда не показывать полосу прокрутки,
  • yes— всегда показывать,
  • auto— показывать в том случае если она необходима.

Пример:

<html>
<head>
<title>фреймы</title>
</head>
<frameset cols=»*,800,*»>
<frame src=»dekor.html» scrolling=»no»>
<frameset rows=»120,*»>
<frame src=»logotype.html» scrolling=»no»>
<frameset cols=»200,600″>
<frame src=»menu.html»>
<frame src=»text.html»>
</frameset>
</frameset>
<frame src=»dekor.html» scrolling=»no»>
</frameset>
</html>

Поля фреймов или иначе расстояние от границ фрейма до текста или картинки, как в нашем случае, задаются в пикселях при помощи атрибутов marginwidth и marginheight тега <frame>

Пример:

<html>
<head>
<title>фреймы</title>
</head>
<frameset cols=»*,800,*»>
<frame src=»dekor.html» scrolling=»no»>
<frameset rows=»120,*»>
<frame src=»logotype.html» scrolling=»no» marginwidth=»0″ marginheight=»0″>
<frameset cols=»200,600″>
<frame src=»menu.html»>
<frame src=»text.html» marginwidth=»10″ marginheight=»10″>
</frameset>
</frameset>
<frame src=»dekor.html» scrolling=»no»>
</frameset>
</html>

Поговорим немного о рамках вокруг наших фреймов.

Если Вы обратили внимание, то в последнем примере наведя курсор на границу фрейма он, курсор то бишь, приобретает другой вид (захватить и переместить) и теперь эту границу можно перетащить в какую либо сторону удерживая левой кнопкой мыши. Иногда такая «мобильность» границ фреймов играет на руку веб-мастеру, но чаще всё же мешает.. Для того, чтобы запретить пользователю играться с размерами окон для тега <frame> придумали атрибут noresize

Пример:

<html>
<head>
<title>фреймы</title>
</head>
<frameset cols=»*,800,*»>
<frame src=»dekor.html» scrolling=»no» noresize>
<frameset rows=»120,*»>
<frame src=»logotype.html» scrolling=»no» marginwidth=»0″ marginheight=»0″ noresize>
<frameset cols=»200,600″>
<frame src=»menu.html» noresize>
<frame src=»text.html» marginwidth=»10″ marginheight=»10″ noresize>
</frameset>
</frameset>
<frame src=»dekor.html» scrolling=»no» noresize>
</frameset>
</html>

А вот давно нам знакомый атрибут border задаёт ширину в пикселях этих самых рамок между фрёймами.. пишется он внутри тега <frameset>. Как и раньше значение border=»0″ вовсе избавит нас от рамок.

Пример:

<html>
<head>
<title>фреймы</title>
</head>
<frameset cols=»*,800,*» border=»0″>
<frame src=»dekor.html» scrolling=»no» noresize>
<frameset rows=»120,*» border=»0″>
<frame src=»logotype.html» scrolling=»no» marginwidth=»0″ marginheight=»0″ noresize>
<frameset cols=»200,600″ border=»0″>
<frame src=»menu.html» noresize>
<frame src=»text.html» marginwidth=»10″ marginheight=»10″ noresize>
</frameset>
</frameset>
<frame src=»dekor.html» scrolling=»no» noresize>
</frameset>
</html>

Настало время оживить наш сайт ссылками, да вот беда, знакомая нам обыкновенная ссылка <a href=»text1.html»>Бобы в горшочке по-итальянски</a> откроет данный документ в том же фрейме где она и находится, в нашем случае непосредственно в фрейме с содержанием, а само содержание в момент перехода по этой ссылки уйдёт в небытие.. можете взглянуть на    корявый пример..    кликнете в нём на любую ссылку.. Что бы впредь такого не происходило, необходимо указывать браузеру в каком фрейме следует открывать необходимый нам документ, ну если конечно Вам и в правду не нужно открывать его в этом же фрейме.

Помнится мы уже знакомились, в главе посвящённой ссылкам, с атрибутами name— имя и target— цель, применяются они также и при работе с фреймами механизм немного изменён а так почти тоже самое. первым делом фрейму в котором мы хотели бы открывать какие либо документы необходимо присвоить индивидуальное имя.

пишется так:

<frame src=»text.html» name=»osnovnoe»> имя можно придумать любое.. главное его не забыть..

А теперь в документе с ссылками (в нашем случае это файл menu.html)необходимо указать цель то есть собственно определить в каком окне стоит открывать тот или иной документ

Пишется так:

<a href=»text1.html» target=»osnovnoe»>Бобы в горшочке по-итальянски</a>

Ну я думаю Вам уже не стоит объяснять, что прежде чем ссылаться на какие либо документы, их необходимо создать.. в моём случае файлы (рецепты) имеют имена text.html, text1.html, text2.html…

Посмотрите пример:

Файл index.html
<html>
<head>
<title>фреймы</title>
</head>
<frameset cols=»*,800,*» border=»0″>
<frame src=»dekor.html» scrolling=»no» noresize>
<frameset rows=»120,*» border=»0″>
<frame src=»logotype.html» scrolling=»no» marginwidth=»0″ marginheight=»0″ noresize>
<frameset cols=»200,600″ border=»0″>
<frame src=»menu.html» noresize>
<frame src=»text.html» name=»osnovnoe» marginwidth=»10″ marginheight=»10″ noresize>
</frameset>
</frameset>
<frame src=»dekor.html» scrolling=»no» noresize>
</frameset>
</html>

Файл menu.html
<html>
<head>
<title>фреймы</title>
</head>
<body bgcolor=»#e8e8e8″ background=»fon1.jpg» link=»#b40000″ alink=»#900000″ vlink=»#900000″>
<font face=»Monotype Corsiva» size=»6″color=»#ff0000″>Меню:</font><hr>
<font face=»Comic Sans MS» size=»3″>
<a href=»text.html» target=»osnovnoe»>Суп из шампиньонов</a><hr>
<a href=»text1.html» target=»osnovnoe»>Бобы в горшочке по-итальянски</a><hr>
<a href=»text2.html» target=»osnovnoe»>Австралийский летний салат</a><hr>
… … …
</font>
</body>
</html>

Так же как и раньше документ можно открыть в отдельном окне. Напомню, пишется так:

<a href=»text1.html» target=»_blank»>Бобы в горшочке по-итальянски</a>

Или же присвоив атрибуту target значение _top открыть его в этом же окне браузера, но на весь экран.. «обнулив» при этом всё что бы там не находилось.. пишется так:

<a href=»text1.html» target=»_top»>Бобы в горшочке по-итальянски</a>

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

Иногда в страницу содержащую в себе не фреймовую структуру необходимо в отдельном окне вставить другой HTML документ или даже ряд таковых документов. Для выполнения этой цели существует тег <iframe> — так называемый плавающий фрейм.

Данный тег имеет ряд атрибутов:

src — обязательный атрибут, указывающий путь к открываемой странице
width — ширина плавающего фрейма в пикселях или процентах
height — высота плавающего фрейма

scrolling — показ полосы прокрутки

  • no — никогда не показывать полосу прокрутки,
  • yes — всегда показывать,
  • auto — показывать в том случае если она необходима.
align — выравнивание плаваюшего фрейма
  • left — слева
  • right — справа
  • top — выше
  • bottom — ниже
frameborder — наличие рамки вокруг плавающего фрейма
  • 1 — включить рамку
  • 0— выключить рамку

Всё вместе пишется так:

<iframe src=»primer.html» align =»left» scrolling=»auto» frameborder=»1″ ></iframe>

Пример документа с плавающим фреймом:

<html>
<head>
<title>Плавающий фрейм</title>
</head>
<body>
<center><h3>Плавающий фрейм</h3></center>
В эту страницу введён так называемый «плавающий фрейм».
В отдельном окне он открывает для показа другой документ html.
<br>
<iframe src=»primer.html» align =»left» scrolling=»auto» frameborder=»1″></iframe>
<br>
… … …
<br>
</body>
</html>

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

Теперь представьте что Вы построили свой сайт с помощью фреймовой структуры и вот некоторые посетители, может быть сами не подозревая в чем проблема, пытаются открыть Ваш сайт, а их браузер выдает ошибку! Что они подумают о Вашем сайте? я думаю, что то типа: «Фу.. ерунда какая то.. больше сроду сюда не зайду!».

Для того что бы дать понять пользователю, что его браузер/настройки браузера не поддерживают фреймы существует тег <noframes>.

Тег <noframes> выводит текст, заключенный в него в том случае, если браузер пользователя не поддерживает фреймы или они принудительно выключены в его настройках. Если же фреймы поддерживаются браузером пользователя, то данный тег попросту игнорируется.

Пример:

<html>
<head>
<title>фреймы</title>
</head>
<frameset cols=»*,800,*» border=»0″>
<noframes>Извините, но Ваш браузер не поддерживает фреймы..</noframes>
<frame src=»dekor.html» scrolling=»no» noresize>
<frameset rows=»120,*» border=»0″>
<frame src=»logotype.html» scrolling=»no» marginwidth=»0″ marginheight=»0″ noresize>
<frameset cols=»200,600″ border=»0″>
<frame src=»menu.html» noresize>
<frame src=»text.html» marginwidth=»10″ marginheight=»10″ noresize>
</frameset>
</frameset>
<frame src=»dekor.html» scrolling=»no» noresize>
</frameset>
</html>

Результат примера будет заметен, если Ваш браузер и в правду не поддерживает фреймы (тут я надолго задумался.. 🙂 если это так, то зачем вообще читать эту главу?) или же Вы в качестве эксперимента выключили поддержку фреймов в своём браузере.

Тег <noframes> должен быть расположен внутри тега <frameset>

С плавающим фреймом всё ещё более просто, достаточно написать нужный текст между <iframe> </iframe> и данная надпись будет выводится на экран, в том случае если браузер не поддерживает фреймы.

Вот так:

<iframe src=»primer.html» align =»left» scrolling=»auto» frameborder=»1″>Извините, но Ваш браузер не поддерживает фреймы..</iframe>
  • Перед тем как начать создавать страницу с использованием фрёймовой структуры проанализируйте её макет, размеры каждого окна, наличие или отсутствие в них полос прокруток и т. д. После этого можно создавать подключаемые HTML файлы особо не переживая за их взаимное расположение относительно друг друга..

  • Используйте тег <noframes>. Помните что если в Вашем браузере сайт работает и отображается так как Вы и задумывали то у других пользователей дела могут обстоять иначе!



www.webremeslo.ru

Что такое фреймы в HTML?

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

Но у фреймов есть и существенные недостатки. Именно поэтому использовать их не рекомендуется. Хотя фреймы поддерживаются в HTML 4.01, их нет в HTML 5. На смену им пришли многофункциональные методы форматирования CSS. Главные недостатки фреймов:

  • Поисковым системам тяжело работать с фреймами;
  • Плохая совместимость с URL;
  • Фреймы недоступны для всех клиентских приложений;
  • Страницы, отображаемые во фреймах, трудно добавлять в закладки;
  • Частые проблемы при распечатке веб-страниц.

Обычно фреймы используют для создания отдельных областей с прокруткой в одном окне. Такой подход применяется в приложениях для мобильных и десктопных платформ. Примером такого приложения является проводник Windows. Окно проводника состоит из двух частей. В левой части окна отображаются папки и «Избранное», в правой — содержимое папки, выбранной в левой части окна.

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

Ниже приводится пример создания frameset HTML:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN”
“http://www.w3.org/TR/html4/frameset.dtd”>
<html>
  <head>
    …
  </head>
  <frameset attributes>
    <frame attributes></frame>
    <frame attributes></frame>
    …
  </frameset>
</html>

Особенности кода:

  • Отсутствует элемент «body». Его роль выполняет тег <frameset>;
  • Теги <frame>, расположенные внутри <frameset>, определяют содержимое фреймов и их свойства;
  • Кроме <frameset> и <head> в документе больше нет никакого содержимого.

Тег <frameset> отвечает за расположение фрейма в документе. Указанные в нем значения определяют количество frameset rows и строк, а также ширину фреймов. Формат тега <frameset> выглядит следующим образом:

<frameset cols|rows = “размер(ы)_столбцов_или_строк”>

Размеры столбцов или строк могут быть заданы в пикселях, процентах или как «*». В последнем случае браузер разделит оставшуюся часть окна на столбцы, где значение “*” указывает их ширину.

Значения атрибута cols или rows также определяют количество отображаемых на странице фреймов. Для каждой записи (значения) требуется наличие тега <frame> внутри тега <frameset>.

Рассмотрим следующие примеры создания тега <frameset>:

<!– Два столбца, 25% окна, остальные 75% окна –>
<frameset cols = “25%, 75%”>
<!– Два столбца, 25% окна, остальные 75% окна –>
<frameset cols = “25%, *”>
<!– Три строки, первая 50% окна, две остальные по 25% окна –
>
<frameset rows = “50%, *, *”>
<!– Две строки, первая высотой 100 пикселей, вторая занимает оставшееся 
пространство окна –>
<frameset rows = “100px, 200px”>

Тег <frame> отвечает за свойства каждого фрейма в наборе фреймов, заключенного в тег frameset. Он имеет следующий синтаксис:

<frame name=”название_фрейма” src=”url_содержимого”></frame>

Атрибут name присваивает фрейму уникальное имя, на которое могут ссылаться URL-адреса, скрипты и т. д. Это необходимо для управления содержимым фрейма. Атрибут src используется для указания URL-адреса содержимого, которое должно отображаться во фрейме.

Тег <frame> поддерживает еще один атрибут — noresize. По умолчанию размер фрейма является изменяемым. Чтобы запретить изменение размера, необходимо задать атрибуту noresize значение noresize.

Например:

<frameset cols=“50%,50%”>
   <frame src=“frame_a.htm” noresize=“noresize”>
   <frame src=“frame_b.htm”>
</frameset>

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

Изменить содержимое фрейма во frameset можно с помощью атрибута target тега ссылки. Для атрибута target допустимы следующие значения:


Например:

<a href=”news.html” target=”content”>Последние новости</a>

В отличие от frameset HTML тег iframe используется для отображения содержимого фрейма рядом с остальным содержимым веб-страницы. Встроенные фреймы не полностью поддерживаются браузерами. Их можно размещать на веб-странице, используя тег <iframe>. Синтаксис тега <iframe> выглядит следующим образом:

<iframe src=”url_содержимого”></iframe>

Тег <iframe> поддерживает такие атрибуты:

Данная публикация представляет собой перевод статьи «What are frames in HTML?» , подготовленной дружной командой проекта Интернет-технологии.ру

www.internet-technologies.ru

Урок 4. HTML фреймы и гиперссылки | html фреймы. Фреймовый макет сайта | Уроки MODx Evo

Как создать свой сайт? Уроки HTML и CSS


1. Организация HTML фреймов

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

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

При использовании простого дизайна с двумя HTML фреймами (рис.1) задействовано три документа:

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

Рис. 1. Простая фреймовая структура из двух фреймов

Фреймы содержатся в структуре <frameset> и </frameset>, замещающей в странице с фреймами структуру <body> и </body>, т.е. документ, описывающий фреймовую структур не имеет тегов <body> и </body>.

Допускается вложение фреймовых областей.

Атрибуты тега <FRAMESET>

cols

Этот атрибут определяет количество и ширину столбцов фрейма. Ширину столбцов можно задать в пикселях или в процентах.

cols=n – определяет столбец шириной в n пикселей.

cols=n% – выделяет данному столбцу фрейма n%-долю ширины окна броузера.

rows

Этот атрибут определяет количество и высоту строк фрейма. Высоту строк можно задать в пикселях или в процентах.

rows=n – определяет строку высотой в пикселей.

rows=n% – выделяет данной строке фрейма n%-долю высоты окна броузера.

frameborder

Этот атрибут определяет отображение рамок фреймовой структуры.

frameborder=yes – отображается трехмерная рамка (значение по умолчанию).

frameborder=no – рамка невидима

Лучше определять строки и столбцы не в пикселах, а используя относительные значения. Символ звездочка (*) используется для указания того, что экран делится на пропорциональные части: COLS=»*,*,*» – соответствует COLS=»33%,33%,33%».

В значениях COLS (столбец), ROWS (строка) перечень должен быть заключен в кавычки. Если кавычки не используются, между значениями не должно быть пробелов.

Рассмотрим пример кода простой фреймовой структуры, изображенной на рис. 1.

 Практическое задание 1

  1. Создайте папку frames. Скопируйте в нее файлы с изображениями фонов fon3.jpgfon8.jpgfon10.jpg из папки html_css_4
  2. Откройте файл shablon.html
  3. Измените код как в листинге на рисунке 2. Сохраните документ под именем frames_2.html
  4. Создайте файл, как на рисунке 3. Сохраните документ под именем doc1.html
  5. Создайте файл, как на рисунке 4. Сохраните документ под именем doc2.html
  6. Запустите файл frames_2.html двойным щелчком. В окне браузера Internet Explorer web-страница должна иметь вид, как на рис. 1

 

Рисунок 2. Фреймовая структура из двух столбцов

 

Рисунок 3. Документ doc1.html

 

Рисунок 4. Документ doc2.html

На рис. 1 представлен вид этой HTML-страницы в браузере. Экран по вертикали разбивается на 2 фрейма. Левый HTML фрейм занимает 25% экрана и содержит страницу с названием doc1.html. Правый HTML фрейм займет 75% экрана и содержит страницу doc2.html.

Тег <FRAME>

Тег <frame> определяет отдельный фрейм. Это непарный тег. Тегов <frame> должно быть ровно столько, на сколько областей делится экран. У тега <frame> имеются следующие атрибуты:

src

Этот атрибут указывает URL-адрес содержимого фрейма.

name

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

scrolling

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

scrolling=yes (установка полосы прокрутки)

scrolling=no (отсутствие полосы прокрутки)

scrolling=auto (значение по умолчанию)

noresize

Этот атрибут запрещает пользователю изменение размеров фреймов, чтобы предотвратить искажение дизайна страницы.

Практическое задание 2

  1. Откройте файл shablon.html.
  2. Измените текст, как в листинге на рисунке 5.
  3. Сохраните документ в папке frames под именем frames_3.html
  4. В новом документе наберите текст, изображенный в листинге 6. Сохраните документ под именем doc3.html
  5. Запустите файл frames_3.html двойным щелчком. В окне браузера Internet Explorer Web-страница должна иметь вид, как на рис. 7.

Обращаем Ваше внимание на то, что во фреймовой структуре количество открывающих <frameset> должно быть равно количеству закрывающих </frameset>

Рисунок 5. Фреймовая структура из трех фреймов

 

Рисунок 6. Документ doc3.html

Рисунок 7. Фреймовая структура из трех фреймов

Контрольное задание

  • Создайте файл с фреймовой структурой нашего сайта MyHouse.ru, состоящей из трех HTML фреймов (рис. 8). Сохраните его в папке public_html под именем index.html
  • Правому фрейму присвойте имя main.
  • В верхнем фрейме расположите бегущую строку (файл shapka.html)
  • В левом фрейме расположите список проектов (файл menu.html).
  • В правом фрейме – файл main.html.

Рисунок 8. Фреймовая структура сайта MyHouse.ru

2. Организация гиперссылок

Для организации гиперссылок используется тег <а>, у которого есть обязательные атрибуты, иначе гиперссылка работать не будет.

Рассмотрим пока только обязательный атрибут href.

 Структура гиперссылки

 

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

Конечный якорь – это адрес того сайта или страницы, который должен загрузиться после щелчка мышью по исходному якорю.

 Гиперссылки можно встроить в любое место HTML – документа.

На рис. 9 приведен пример HTML-кода создания гиперссылки и вид в браузере страницы с этим кодом:

 

Подробную информацию об услугах нашего агентства Вы можете получить

<br />

<a href=»inform.htm»>здесь</a>

 

Рис. 9. Пример создания текстовой гиперссылки

 В этом примере слово “здесь” является элементом привязки (или якорем – anchor), а часть href=”inform.htm” представляет  ссылку на URL и означает, что при щелчке на элементе привязки должен быть загружен файл “inform.htm”, находящийся в том же адресе сети.

Элементы привязки (якорь – anchor)

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

Текстовые ссылки браузер обычно выделяет цветом, отличным от цвета основного текста,  подчеркиванием. Кроме того, курсор мыши на ссылке меняет свое изображение на указатель в виде руки.

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

Рассмотрим пример организации графической гиперссылки (рис. 10): 

У нас в агентстве приветливые и компетентные диспетчеры

<br />

<a href=”inform.htm”><img src=”ris.jpg”></a>

 

Рис. 10. Пример создания графической гиперссылки 

В этом примере рисунок «ris.jpg» является графическим элементом привязки. Браузер выделяет его синей рамкой.

 Виды адресов

Абсолютный адрес – это полный адрес в Internet.

  • <а href=»http://www.rambler.ru»> – удаленный переход;
  • <а href=»c:\temp\myfile.html»> – использование в ссылке абсолютного адреса на своем сервере (не используется).

Относительный адрес. Правила относительной адресации мы рассмотрели в теме 1. При написании адресов гиперссылок используются те же правила. Рекомендуется применение относительных адресов, поскольку при каждом перемещении каталога не приходится менять все ссылки.

  • <а href=»../folder/my.htm»> – переход на другой документ на своем сайте

Гиперссылки можно разделить на 3 категории:

1. Внешняя – ссылка на web-страницу, которая находится по другому адресу Internet (за пределами сайта). Для ее организации используется абсолютный адрес.

Пример: <а href=»http://www.rambler.ru»>

2. Внутренняя – ссылка на другую web-страницу внутри сайта. Для ее организации необходимо использовать относительный адрес.

Пример: <a href=»../../folder_1/folder_2/mysite.htm»>Текст гиперссылки</a>

3. Внутристраничная – ссылка на другую позицию внутри той же web-страницы. Например, в верхней части web-страницы можно поместить оглавление, а затем связать его пункты с последующими разделами этой же web-страницы или с конкретными разделами другой web-страницы внутри сайта.

 Практическое задание 3

  1. Откройте раздел «Организация гиперссылок» в файле справочника Sprav_html.doc. Ознакомьтесь с атрибутами тега <a>. Будьте готовы ответить на вопросы по правилам задания значений этих атрибутов.
  2. В файле menu.html для пункта «Проекты таунхаусов и блокированных домов», сделайте гиперссылку, целевым адресом которой является web-страница townhouse.html таким образом, чтобы web-страница townhouse.html грузилась в правый фрейм. Напомним, для того, чтобы ссылка грузила документ в нужный фрейм в теге <a> необходимо указать атрибут target, который содержит имя фрейма, куда должен быть загружен документ. Например, <a href=»townhouse.html» target=»main»>. Результат на рис. 11.

Рис. 11.

Практическое задание 4

1. В папке public_html создайте папку project, а внутри нее папку img_d_152_1d.

2. Оформите web-страницу о проекте d-152-1d, используя материалы (тексты и фотографии) из папки projects/d-152-1d. Для оформления web-страницы должны быть использованы стили в таблице стилей и форматирование средствами атрибутов тегов.

3. Все материалы должны быть использованы. В результате на web-странице у Вас должны быть следующие блоки: Заголовок, Аннотация, Материалы, Цена за проект, Планы, Фасады

4. Сохраните web-страницу под именем projekt_d-152-1d.html в папке projects. Примерный результат на рис. 12.

Рис. 12. Web-страница projekt_d-152-1d.html.

5. На web-странице townhouse.html оформите изображение проекта D-152-1D и фразу «Проект D-152-1D» как гиперссылки на страницу projekt_d-152-1d.html, на которой содержится более полная информация об этом проекте (рис. 13).

6. Проверьте работоспособность гиперссылок.

Рис. 13. Изображение является гиперссылкой

Внутристраничные гиперссылки

Внутристраничная гиперссылка создается в два этапа.

Например, необходимо создать ссылку из оглавления на первую главу

1. В оглавлении рядом с названием главы 1 следует создать запись:

<href=«#glava1«>Перейти к главе 1</a>

2. Внутри web-страницы рядом с заголовком главы 1 создать метку и с помощью атрибута name тега <a> присвоить ей имя. Браузер не выделяет содержимое этого тега как ссылку, так как оно используется в качестве метки. В пределах документа метка должна быть уникальной.

<a name=«glava1«>Глава 1</a>

Прокомментируем запись <a href=»#glava1″>Перейти к главе 1</a>.

Атрибуту href тега <a> назначают имя метки и перед именем ставят знак #. Знак # показывает, что ссылка – внутренняя.

Если необходимо организовать гиперссылку на конкретный фрагмент другого HTML-документа (например, на главу 1 в документе «my.htm»), то этот фрагмент предварительно также помечается. Гиперссылка на него организуется следующим образом <a href=»my.htm#glava1″>. Здесь к имени метки добавляется имя файла.

 Практическое задание 5

1. Откройте созданную Вами web-страницу projekt_d-152-1d.html.

2. Под заголовком «Проект дома № D-152-1D» добавьте пункты

  • Аннотация
  • Материалы
  • Цена за проект
  • Планы
  • Фасады

3. Создайте внутристраничные гиперссылки из каждого только что созданного пункта на соответствующий раздел web-страницы (рис. 14, а)

4. Внизу страницы создайте гиперссылку Наверх, при нажатии на которую пользователь будет возвращаться в начало страницы (рис. 14, б).

Рис. 14. Внутристраничные гиперссылки

Задание цвета гиперссылок

Принятые в Web по умолчанию цвета для гиперссылок: синий – для еще не посещенных гиперссылок, красный – для активизированных гиперссылок (в момент щелчка), фиолетовый – для уже посещенных.

Если используемые по умолчанию значения этих атрибутов явно не согласуются с дизайном Вашей страницы, то значения можно поменять. Для этого у тега <BODY> есть соответствующие атрибуты. 

link

Цвет гиперссылки (по умолчанию светло-голубой)

vlink

Цвет использованной гиперссылки (по умолчанию темно-фиолетовый)

alink

Цвет активизированной гиперссылки (в момент щелчка)

 Практическое задание 6

  1. Вверху левого фрейма сделайте логотип графической гиперссылкой таким образом, чтобы при ее активизации в правый фрейм загружалась страница о сайте (файл main.html).
  2. Убедитесь в работоспособности всех гиперссылок. Ваш сайт должен выглядеть примерно так, как показано на рис. 15, при переходе по ссылке «Проекты таунхаусов и блокированных домов» так, как на рис. 16, при щелчке на изображении проекта D-152-1D как на рис. 17.

Рис. 15. Главная страница сайта MyHouse.ru

Рис. 16. Вид web-сайта при активной ссылке «Проекты таунхаусов и блокированных домов»

Рис. 17. Вид web-сайта при активной ссылке «Проект D-152-1D»

Работа со специальными элементами

Работа со специальными элементами определяется с помощью псевдоклассов.

Псевдокласс – специальный селектор, определяющий, как выглядит HTML-элемент в определенный момент.

Например, CSS определяет псевдокласс, который устанавливает, как выглядят гиперссылки в определенные моменты времени:

a:link {color:#ffffff; text-decoration:none} – не посещенные ссылки;

a:visited {color:red; text-decoration:none} – посещенные ссылки;

a:active {color:black; text-decoration:none} – активные ссылки;

a:hover {text-decoration:underline} – ссылка при наведении на нее фокуса.

Можно определить псевдокласс для первого символа элемента. Например, для абзаца:

p:first-letter {font-size:24pt}. Это удобно для задания спецэффектов выделения заглавных букв.

 Практическое задание 7

1. Для верхнего меню страницы проекта включите в файл внешнюю стилевую спецификацию, определяющую вид гиперссылки в определенные моменты. Для этого самостоятельно определите параметры стиля согласно рис. 18.

2. Проверьте работоспособность стиля. 

а – не посещенные ссылки

б – ссылка при наведении на нее курсора

Рис. 18. Вид гиперссылки в определенный момент времени

 Практическое задание 8

1. Для пункта «Проекты таунхаусов и блокированных домов» включите в файл внешнюю стилевую спецификацию, определяющую вид гиперссылки в определенные моменты. Для этого самостоятельно определите параметры стиля согласно рис. 19.

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

а – не посещенная и посещенная ссылка

б – ссылка при наведении на нее курсора

Рис. 19. Вид гиперссылки «Проекты таунхаусов и блокированных домов»

3. Для пункта с названием проекта на странице proekt_townhouse.html включите в файл внешнюю стилевую спецификацию, определяющую вид гиперссылки в определенные моменты. Для этого самостоятельно определите параметры стиля согласно рис. 20.

4. Проверьте работоспособность стиля. 

а – не посещенная ссылка

б – ссылка при наведении на нее курсора

Рис. 20. Вид гиперссылки для названия проектов

 В результате выполнения этой темы, у Вас должны быть созданы следующие файлы:

  • doc1.html
  • doc2.html
  • doc3.html
  • frames_2.html
  • frames_3.html
  • index.html
  • projekt_d-152-1d.html

web-grafika.pro

Фреймы | htmlbook.ru

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

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

Простота

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

Быстрота

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

Размещение

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

Изменение размеров областей

Можно изменять размеры фреймов «на лету», чего не позволяет сделать традиционная верстка HTML.

Загрузка

Загрузка веб-страницы происходит только в указанное окно, остальные остаются неизменными. С помощью языка JavaScript можно осуществить одновременную загрузку двух и более страниц во фреймы.

Недостатки фреймов

Навигация

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

Плохая индексация поисковыми системами

Поисковые системы плохо работают с фреймовой структурой, поскольку на страницах, которые содержат контент, нет ссылок на другие документы.

Внутренние страницы нельзя добавить в «Закладки»

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

Несовместимость с разными браузерами

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

Непрестижность

Весьма странный недостаток, который не имеет никакого отношения к техническим особенностям создания сайта, а носит скорее идеологический характер. Сайты с фреймами считаются несолидными, а их авторы сразу выпадают из разряда профессионалов, которые никогда не используют фреймы в своих работах. Исключение составляют чаты, где без фреймов обойтись хотя можно, но достаточно хитрыми методами, а с помощью фреймов создавать чаты достаточно просто.

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

htmlbook.ru

| HTML | WebReference

Элемент <frame> (от англ. frame — рамка, каркас) определяет свойства отдельного фрейма, на которые делится окно браузера. Этот элемент должен располагаться в контейнере <frameset>, который к тому же задаёт способ разметки страницы на отдельные области. В каждую из таких областей загружается самостоятельная веб-страница определяемая с помощью атрибута src. Хотя обязательных атрибутов у <frame> и нет, рекомендуется задавать каждому фрейму его имя через атрибут name. Это особенно важно, если требуется по ссылке из одного фрейма загружать документ в другой.

Данный элемент устарел, не используйте его.

Синтаксис

<frameset>
  <frame>
</frameset>

Закрывающий тег

Атрибуты

bordercolor
Цвет линии границы.
frameborder
Отображать рамку вокруг фрейма или нет.
name
Задаёт уникальное имя фрейма.
noresize
Определяет, можно изменять размер фрейма пользователю или нет.
scrolling
Способ отображения полосы прокрутки во фрейме.
src
Путь к файлу, предназначенному для загрузки во фрейме.

Пример

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
  "http://www.w3.org/TR/html4/frameset.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>FRAME</title>
 </head>
  <frameset rows="80,*" cols="*">
    <frame src="page/top.html" name="topFrame" scrolling="no" noresize>
    <frameset cols="80,*">
      <frame src="page/left.html" name="leftFrame" scrolling="no" noresize>
      <frame src="page/main.html" name="mainFrame">
    </frameset>
  </frameset>
</html>

Спецификация ?

Спецификация

Каждая спецификация проходит несколько стадий одобрения.

  • Recommendation (Рекомендация) — спецификация одобрена W3C и рекомендована как стандарт.
  • Candidate Recommendation (Возможная рекомендация) — группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
  • Proposed Recommendation (Предлагаемая рекомендация) — на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
  • Working Draft (Рабочий проект) — более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
  • Editor’s draft (Редакторский черновик) — черновая версия стандарта после внесения правок редакторами проекта.
  • Draft (Черновик спецификации) — первая черновая версия стандарта.

Особняком стоит живой стандарт HTML (Living) — он не придерживается традиционной нумерации версий, поскольку находится в постоянной разработке и обновляется регулярно.

×

Браузеры

В таблице браузеров применяются следующие обозначения.

  •  — элемент полностью поддерживается браузером;
  •  — элемент браузером не воспринимается и игнорируется;
  •  — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

Число указывает версию браузреа, начиная с которой элемент поддерживается.

×

Автор и редакторы

Автор: Влад Мержевич

Последнее изменение: 09.10.2018

Редакторы: Влад Мержевич

webref.ru

Фреймы в html | html создание фреймов

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы разобрали, как установить favicon на сайт. В данной статье я бы хотел рассказать, что такое фреймы в html. В переводе с англ. фрейм означает «рамка». С точки зрения html, фрейм — это некая выделенная область на странице, которая ссылается на другую страницу и выводит её содержимое (той самой другой страницы или сайта). Стоит сразу отметить, что фреймы не получили большого развития и сейчас почти не используются, разве что в каких-то специализированных проектах.Всё то же самое можно сделать с помощью CSS и Javascript.
С помощью фрейма страницу можно разбить на несколько блоков, каждый из которых будет независим от других. Давайте создадим основной документ index.html и два вспомогательных (внутренних), содержимое которых как раз и будет отображаться на основной странице: menu.html (будет содержать разметку навигации по сайту) и content.html (контент сайта). Разметка index.html будет иметь следующий вид:


<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8"/>
	<title>Фрэймы в HTML</title>
</head>
<frameset cols="40%, *">
	
</frameset>
</html>

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

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

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


<ul>
	<li>1 пункт меню</li>
	<li>2 пункт меню</li>
	<li>3 пункт меню</li>
</ul>

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


<div>
	<h2>Тестируем фреймы</h2>
	<p>Абзац текста</p>
</div>

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


<frameset rows="50%, *">
   <frame src="menu.html"/>
   <frame src="content.html"/>
</frameset>

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

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

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

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

Весь код можно посмотреть под хайдом.

Подсмотреть код реализации

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8"/>
	<title>Фрэймы в HTML</title>
</head>
<frameset rows="50%, *">
   <frame src="https://alekseygulynin.ru/"/>
   <frame src="https://alekseygulynin.ru/"/>
</frameset>
</html>

В данной статье вы узнали, что такое фреймы в html и как их использовать.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


alekseygulynin.ru

Фреймовая структура html, атрибуты фреймов

Цель урока: изучение возможностей создания фреймов в html

Фреймовая структура в HTML

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

Элемент frameset

Синтаксис деления по вертикали (на колонки):

<FRAMESET cols="n%,n%"> … </FRAMESET>

<FRAMESET cols=»n%,n%»> … </FRAMESET>

где n — ширина фреймов в процентах слева направо

Синтаксис деления по горизонтали:

<FRAMESET rows="n%,n%"> … </FRAMESET>

<FRAMESET rows=»n%,n%»> … </FRAMESET>

где n — высота фреймов в процентах сверху вниз

Фреймов в структуре может быть не два, а более.

Файл с фреймовой структурой называется файлом-раскладкой и обычно называется index.html

Как происходит загрузка файлов во фрейм рассмотрим на примере.

Синтаксис:

<FRAME  src="Имя файла.html"  name="имя фрейма">

<FRAME src=»Имя файла.html» name=»имя фрейма»>

Пример: Создать файл с фреймовой структурой с двумя колонками: в левую (ширина 25%) загружать файл menu.html, в правую (ширина 70%) загружать файл content.html


Выполнение:
<html>
<head>
	<title>Пример</title>
</head>
<frameset cols="25%, 75%">
	<frame src="menu.html">
	<frame src="content.html">
</frameset>
</html>

<html> <head> <title>Пример</title> </head> <frameset cols=»25%, 75%»> <frame src=»menu.html»> <frame src=»content.html»> </frameset> </html>

Атрибуты тега frameset:
frameborder — значение 1 или 0 (есть или нету)
border — значение размера границы
bordercolor — цвет границы
framespacing — ширина граней фреймов в пикселях (только в IE)

<frameset cols="25%, 75%" frameborder="1" bordercolor="red" border="1">

<frameset cols=»25%, 75%» frameborder=»1″ bordercolor=»red» border=»1″>

Атрибуты элемента frame:
name — имя фрейма
noresize — запрещает изменение размеров для определенного фрейма.
scrolling — управляет прокруткой внутри одной области (yes, no, auto).
marginheight — задает величину отступа фрейма от верхнего и нижнего краев страницы.
marginwidth — создает поля слева и справа
frameborder — указывает, нужна или нет рамка вокруг фрейма (0 и 1)
bordercolor – цвет рамки

Правила создания ссылки во фреймах в html

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

Важно: для загрузки пункта меню в определенный фрейм необходимо:

  1. добавить название необходимого фрейма при помощи атрибута name (в файле-раскладке)
  2. Пример:

    <frame src="content.html" name="mainFrame">

    <frame src=»content.html» name=»mainFrame»>

  3. в файле с меню в гиперссылке добавить атрибут target
  4. Пример:

    <a href="glava1.html" target="mainFrame">

    <a href=»glava1.html» target=»mainFrame»>

Посмотрим полный код обоих файлов:
Файл index.html

<html>
...
<frameset cols="25%, 75%">
	<frame src="menu.html">
	<frame src="content.html" name="mainFrame">
</frameset>
</html>

<html> … <frameset cols=»25%, 75%»> <frame src=»menu.html»> <frame src=»content.html» name=»mainFrame»> </frameset> </html>

Файл menu.html:

<html>
...
<body>
	<h3>Меню:</h3>
<ul>
<li><a href="glava1.html" target="mainFrame">Глава 1</a></li>
<li><a href="glava2.html" target="mainFrame">Глава 2</a></li>
</ul>
</html>

<html> … <body> <h3>Меню:</h3> <ul> <li><a href=»glava1.html» target=»mainFrame»>Глава 1</a></li> <li><a href=»glava2.html» target=»mainFrame»>Глава 2</a></li> </ul> </html>

Вложенные фреймы

Работа с фреймами в html подразумевает и более сложную структуру.
Рассмотрим на примере:

Каким будет результат?

Лабораторная работа: создать фреймовую структуру и загружаемые в нее файлы согласно изображению:

Встроенные (плавающие) фреймы

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

1
2
3
4
5
6
7
8
<html>
...
<body>
...
<iframe src="main.html"></iframe>
...
</body>
</html>

<html> … <body> … <iframe src=»main.html»></iframe> … </body> </html>

Фрейм будет вставлен в виде окна указанных размеров (атрибуты width и height).

Дополнительные атрибуты:

  • name — имя фрейма
  • frameborder — граница фрейма
  • scrolling — полоса прокрутки
  • hspace — отступы по горизонтали
  • vspace — отступы по вертикали
  • marginwidth — отступ внутренней страницы от границы фрейма по горизонтали
  • marginheight — отступ внутренней страницы от границы фрейма по вертикали

labs-org.ru

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

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