Фреймы в Web-дизане и Web-маркетинге Используя фрэймы, позволяющие разбивать Web-страницы на множественные скроллируемые подокна, вы можете значительно улучшить внешний вид и функциональность информационных систем и Web-приложений. Каждое подокно, или фрэйм, может иметь следующие свойства:
Данные свойства фрэймов позволяют создавать продвинутые интерфейсные решения, такие как:
Однако, фрэйм-документ является специфичным видом HTML-документа, поскольку не содержит элемента body и какой-либо информационной нагрузки соответственно. Он описывает только фрэймы, которые будут содержать информацию (кроме случа двойного документа). Вы наверняка не раз видели странички разбитые на несколько частей. Эти части и называются фреймами. Программно разбиение окна браузера на фреймы реализуется так: Попробуем создать html файл реализующий разбиение экрана на две части. Для этого нам понадобится два обычных html файла с именами homepage.htm и menu.htm. Главный файл обзовем к примеру index.htm, вот как он должен выглядеть: <frameset> в этом тэге задается количество рядов или столбцов rows и cols соответственно, а также их размеры и расположение. Существует три способа задания их размера: по пикселам - просто напишите высоту или ширину в пикселах. процентами - пишите сколько процентов от окна браузера вы хотите отдать фрейму и после цифр ставите знак % Также позаботьтесь чтобы все ваши %`ы в суме составляли 100%. звездочка - все оставшееся место в окне равняется значку *. Например вы можете написать 20%,20%,60% или 20%,20%,* и никакой разницы не будет. В этом же тэге можно задать толщину разграничительной линии и окаймляющей рамки командами frameborder="X" и border="Y" где x и y толщина в пикселах. В нашем случае (<frameset cols="*,140">) мы разделяем окно на два столбца, правое шириной в 140 пикселов, а левое шириной во весь оставшийся экран.
<frame> - здесь задаются атрибуты для каждого фрейма персонально. Команда src задает имя файла который загрузится в этом фрейме, в нашем случае имя файла homepage.htm (<frame src="homepage.htm" ...). Команда name задает имя данного фрейма, в нашем случае имя "frame1" . Имя необходимо для того чтобы в последствии указать к какому фрейму использовать ссылку. К примеру мы хотим чтобы нажимая на ссылку в фрейме содержащем файл menu.htm содержимое файла ссылки показывалось в фрейме содержащем файл homepage.htm. Для этого нам необходимо откоректировать html код ссылки: <a href="file.htm">file</a> - что было <a href="file.htm" target="frame1">file</a> - что должно быть А если вы хотите чтобы файл загрузился в главном окне браузера то напишите в ссылке target="_top" Также в этом тэге можно задать величину граници фрейма за которую ничего кроме бэкграунда не может заходить. Это делается командами marginwidth="x" и marginheight="y", где x и y величина в пикселах. </frameset> закрывающий тэг. Вот несколько примеров создания фреймов: Общий контэйнер frameset описывает все фрэймы, на которые делится экран. Вы можете разделить экран на несколько вертикальных или несколько горизонтальных фрэймов. Тэг frame описывает каждый фрэйм в отдельности. Рассмотрим более детально каждый компонент. frameset<frameset [cols="value" | rows="value"]> Тэг <frameset> имеет завершающий тэг </frameset>. Все, что может находиться между этими двумя тэгами, это тэг <frame>, вложенные тэги <frameset> и </frameset>, а также контейнер из тэгов <noframe> и </noframe>, который позволяет строить двойные документы для броузеров, поддерживающих фрэймы и не поддерживающих фрэймы. Данный тэг имеет два взаимоисключающих параметра: rows и cols.
Внимание! Совместное использование данных параметров может привести к непредствазуемым результатам. Например, строка: <frameset rows="50%,50%" cols "50%,50%"> может привести к ошибочной ситуации. Примеры: <frameset cols="50,*,50"> - описывает три фрэйма, два по 50 точек справа и слева, и один внутри этих полосок. <frameset rows="20%,3*,*"> - описывает три фрэйма, первый из которых занимает 20% площади сверху экрана, второй 3/4 оставшегося от первого фрэйма места (т.е. 60% всей площади окна), а последний 1/4 (т.е. 20% всей площади окна. <frameset rows="*,60%,*"> - аналогично предыдущему примеру.Тэги <frameset> могут быть вложенными, т.е. например:
name="frame_name"
Данный параметр описывает имя фрэйма. Имя фрэйма может быть использовано для определения действия с данным фрэймом из другого HTML-документа или фрэйма (как правило, из соседнего фрэйма этого же документа). Имя обязательно должно начинаться с символа. Содержимое поименованных фрэймов может быть задействовано из других документов при помощи специального атрибута target, описываемого ниже. Если в значении target указыктся название какогото фрейма то ссылка загрузится именно в него <a href="URL" target="name_frame"> </a> . Все фреймы должны получить свое имя если вы хотите чтобы внего могли грузиться другие страницы. Также target может иметь одно из стандартных значений (_top, _blanc, _self, _parent). marginwidth="value" Это атрибут может быть использован, если автор документа хочет указать величину разделительных полос между фрэймами сбоку. Значение value указывается в пикселах и не может быть меньше единицы. По умолчанию данное значение зависит от реализации поддержки фрэймов используемым клиентом броузером. marginheight="value" То же самое, что и marginwidth, но для верхних и нижних величин разделительных полос. scrolling="yes | no | auto" Этот атрибут позволяет задавать наличие полос прокрутки у фрэйма. Параметр yes указывает, что полосы прокрутки будут в любом случае присутствовать у фрэйма, параметр no наоборот, что полос прокрутки не будет. Auto определяет наличие полос прокрутки только при их необходимости (значение по умолчанию). <noresize> Данный атрибут позволяет создавать фрэймы без возможности изменени размеров. По умолчанию, размер фрэйма можно изменить при помощи мыши так же просто, как и размер окна Windows. noresize отменяет данную возможность. Если у одного фрэйма установлен атрибут noresize, то у соседних фрэймов тоже не может быть изменен размер со стороны данного. <noreframes> Данный тэг используется в случае, если вы создаете документ, который может просматриваться как броузерами, поддерживающими фрэймы, так и броузерами, их не поддерживающими. Данный тэг помещяется внутри контейнера frameset, а все, что находится внутри тэгов <noreframes> и </noreframes> игнорируется броузерами, поддерживающими фрэймы. Но я рекомендую пользоваться им всегда, так как в него можно помещать ссылки на другие страници сайта. Именно по этим ссылкам сможет пройти поисковый робот .
А теперь несколько советов по фреймам: Недостатки фреймов: |