Фреймы. Плавающий фрейм. 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 — вертикальноВ нашем случае нам необходимо горизонтальное размещение фреймов.. значит пишем так:
<head>
<title>фреймы </title>
</head>
<frameset rows=»15%,15%,70%»>
</frameset>
</html>
Проценты после знака равенства — это не что иное, как размеры наших окошек- фреймов в одном большом окне браузера, у нас предполагается размещение трёх окон — следовательно и значений через запятую тоже три. Вспомните как мы задавали размеры ячеек для таблицы, здесь тот же принцип.. Как и в случае с ячейками таблицы, размеры фреймов можно указывать в процентах от общей площади и в пикселях.
Вот несколько примеров написания:
<frameset cols =»200,240,200″> — здесь три окна расположены вертикально ширина которых указана в пикселях.
<frameset rows=»100,*,180″> — такая запись значит, что первое и третье окно будут иметь ширину 100 и 180 пикселей соответственно, а второй фрейм займет всю оставшеюся площадь.
С размещением документов покончили, теперь собственно осталось их подключить и насладится первым результатом..
Тег <frame> и его атрибут src
Пример:
Файл 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> — закрываем тег деления на строки
Вообще то говорить столбцы и строки неверно, так как фреймы никакого отношения к таблицам не имеют кроме как визуального подобия, правильно говорить горизонтальные и вертикальные фреймы.. ну это я так изрекаюсь что б Вам понятнее было..
Ну да ладно, смотрим пример:
<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 — показывать в том случае если она необходима.
- left — слева
- right — справа
- top — выше
- bottom — ниже
- 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 – определяет строку высотой в n пикселей. rows=n% – выделяет данной строке фрейма n%-долю высоты окна броузера. |
frameborder |
Этот атрибут определяет отображение рамок фреймовой структуры. frameborder=yes – отображается трехмерная рамка (значение по умолчанию). frameborder=no – рамка невидима |
Лучше определять строки и столбцы не в пикселах, а используя относительные значения. Символ звездочка (*) используется для указания того, что экран делится на пропорциональные части: COLS=»*,*,*» – соответствует COLS=»33%,33%,33%».
В значениях COLS (столбец), ROWS (строка) перечень должен быть заключен в кавычки. Если кавычки не используются, между значениями не должно быть пробелов.
Рассмотрим пример кода простой фреймовой структуры, изображенной на рис. 1.
Практическое задание 1
- Создайте папку frames. Скопируйте в нее файлы с изображениями фонов fon3.jpg, fon8.jpg, fon10.jpg из папки html_css_4
- Откройте файл shablon.html
- Измените код как в листинге на рисунке 2. Сохраните документ под именем frames_2.html
- Создайте файл, как на рисунке 3. Сохраните документ под именем doc1.html
- Создайте файл, как на рисунке 4. Сохраните документ под именем doc2.html
- Запустите файл 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
- Откройте файл shablon.html.
- Измените текст, как в листинге на рисунке 5.
- Сохраните документ в папке frames под именем frames_3.html
- В новом документе наберите текст, изображенный в листинге 6. Сохраните документ под именем doc3.html
- Запустите файл 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
- Откройте раздел «Организация гиперссылок» в файле справочника Sprav_html.doc. Ознакомьтесь с атрибутами тега <a>. Будьте готовы ответить на вопросы по правилам задания значений этих атрибутов.
- В файле 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 следует создать запись:
<a 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
- Вверху левого фрейма сделайте логотип графической гиперссылкой таким образом, чтобы при ее активизации в правый фрейм загружалась страница о сайте (файл main.html).
- Убедитесь в работоспособности всех гиперссылок. Ваш сайт должен выглядеть примерно так, как показано на рис. 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
Если представить структуру, в которой слева находится фрейм с меню сайта, а справа фрейм, предназначенный для вывода содержимого выбранных пунктов меню, то становится очевидна следующая проблема:
при щелчке на пункте меню содержимое будет загружаться в тот же фрейм с меню, а не во фрейм, расположенный справа
Важно: для загрузки пункта меню в определенный фрейм необходимо:
- добавить название необходимого фрейма при помощи атрибута
name
(в файле-раскладке)Пример:
<frame src="content.html" name="mainFrame"><frame src=»content.html» name=»mainFrame»>
- в файле с меню в гиперссылке добавить атрибут
target
Пример:
<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