12.2 Структура и свойства на фреймове

Общят вид на HTML файл за създаване на фреймова структура в прозореца на браузер има следния вид:

<HTML>

<HEAD>
...........................

</HEAD>

<FRAMESET COLS (или ROWS)="число или число%, число или число%, ....>

<FRAME ..................>

<FRAME ..................>

..............................

</FRAMESE>

</HTML>

Структурата от фреймове в прозореца на браузера се задава с тага <FRAMESET .........>...</FRAMESET>.

С него се задават броят и размерът на хоризонтално или вертикално разделените фреймове в прозореца на браузера.

С <FRAMESET............> се задава разделяне на прозореца само на хоризонтални (rows) или само на вертикални (cols) фреймове.

Затова в един таг <FRAMESET ..........> се използва или атрибут rows или атрибут cols, но никога двата атрибута заедно!

Стойностите на двата атрибута rows и cols могат да се задават по няколко начина.

Използва се задаване размера на фреймовете (вертикален размер при rows и хоризонтален размер при cols) във вид на числа в пиксели, разделени със запетая.

Например, следният таг:
.................................
<FRAMESET ROWS=100,500,200>
.................

</FRAMESET>

.................................
ще раздели прозореца на три хоризонтални фреймове (прозореца) с височина съответно 100, 500 и 200 пиксела. Същият резултат би се получил, ако вместо последната цифра в стойностите на атрибута се постави символа звезда ( * ), т.е за първия фрейм височината е 100 пиксела, за втория 500, а за третия останалата част на прозореца на браузера.

За разделяне прозореца на браузера на вертикални фреймове вместо атрибута rows, се използва атрибут cols.

Следният таг ще раздели прозореца на браузера на три вертикални фреймове с указаната ширина в пиксели за съответния фрейм:

....................
<FEAMESET COLS=100,600,*>
..................

</FRAMESET
>
...................

Задаване размерите на фреймовете с абсолютни числа в пиксели е свързано с някои неудобства.

От една страна програмистът  може да зададе точната височина или ширина на фреймовете, но от друга в зависмост от разрзделителната способност на екрана на компютъра, тези фреймове ще изглеждат по различен начин. Ето защо в много случаи практически е по-удобно ширината да се задава в % от съответния общ размер на прозореца на браузера.

В този случай фреймовете ще изглеждат по един и същ начин в прозореца на браузера независимо от разрешаващата способност на екрана на потребителя.

Ето как изглежда тагът <FRAMESET.............> при задаване стойностите на съответния атрибут (rows или  cols) в %.

..........................
<FRAMESET ROWS=20%, 70%, *%>
..........................
</FEAMESET>
...............................

Естествено, че сумата от процентите не трябва да надвишава 100.

След тага <FRAMESET rows/cols=...> трябва да се зададат свойствата на всеки фрейм с неконтейнерния таг <FRAME ..........>. Това означава, че между двойката тагове <FRAMESET.....> .................</FRAMESET> трябва да има толкова тагове <FRAME..........>, колкото фреймове <rows или cols) са зададени в тага <FRAMESET.........>.

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

.....................
<FRAMESET rows=20%, 50%, *%>
<FRAME............>

<FRAME............>

<FRAME............>

</FRAMESET>

......................

На фиг.12.1 е посочен кодът на HTML файл за създаване на фреймове с атрибут rows.

Фиг. 12-2
<html>
<head>
<title>Фреймове</title>
</head>
<frameset rows="20%,60%,*">
<frame name="top" src="frame1.htm" >
<frame name="sreden" src="frame2.htm" >
<frame name="bottom" src="frame3.htm" >
</frameset>
</html>

Видът на изградената структура (три хоризонтални фрейма) ще видите като натиснете ТУК.

Основният атрибут в тага <FRAME .......> е атрибутът SRC, с който се задава HTML документа (HTML файла или Web страницата), който се зарежда в съответния фрейм след създаване на структурата от фреймове.

Освен този атрибут, в тага <FRAME .......> се използват и други атрибути.

Част от тези атрибути са посочени в табл. 12.1.

Табл.. 12.1
Атрибути в тага <FRAME......>
Атрибути
Стойности
Резултат от използване
NAME= Символен низ-име на фрейм 
Името се използва за управление зареждането на HTML документи в дадения фрейм.
SRC= URI адрес на документа или име на файл
Зарежда се файл от указания адрес в съответния фрейм
NORESIZE без стойност
Не може да се изменя размера на фрейма.Ако не е зададен, с мишката може да се изменя размера на фрейма.
SCROLLING= auto
При необходимост автоматично се появяват ленти за превъртане във фрейма.
yes
Лентите за превъртане се появяват задължително във фрейма, независимо дали са необходими или не.
no
Не се появяват ленти за превъртане във фрейма дори когато това е необходимо.
FRAMEBORDER= число
Задава се ширина на рамката на фрейма в пиксели.При стойност 0 фреймът няма рамка.
MARGINWIDTH= число
Задаване ширина на празно поле в ляво и дясно от обекта във фрейма до границите му в пиксели.
MARGINHEIGHT= число
Задаване ширина на празно поле отгоре и отдолу от обекта във фрейма до границите му в пиксели.

На фиг.12.2 e показан кодът на фреймова структура с използване на атрибут cols.

Фиг. 12.2
<html>
<head>
<title>Фреймове</title>
</head>
<frameset cols="20%,*">
<frame name="left" target="left" src="frame1.htm" frameborder="3" scrolling="auto" noresize >
<frame name="right" src="frame2.htm" target="right">
<noframes>
<p>This page uses frames, but your browser doesn't support them.</p>
</noframes>
</frameset>
</html>

Видът на структурата от 2 колони може да видите като натиснете ТУК.

В кода от фиг. 12.2 е добавен, между отварящия и затварящия елементи на тага <FRAMESET ...........> , след таговете <FRAME .......> , контейнерния таг <noframes>....</noframes>

Този таг е предназначен да изведе в прозореца на браузера съобщение, ако не могат да се интерпретират таговете за фреймове.

Тагът <noframes> може да се счита за не нужен тъй като всички най-често използвани браузери възпройзвежат файлови структури.

Създаването на по-сложни структури от фреймове се извършва чрез използване на възможността за влагане на таговете <FRAMESET...> един в друг.

На фиг.12.3 е показан кода на структура от фреймове в който се използва влагане на тагове <FRAMESET ...........>.

С първият таг <FRAMESET ...........> прозореца се разделя на два реда, а с вторият <FRAMESET ...........> вторият ред се разделя на две колони.

Фиг. 12.3
<html>
<head>
<title>Фреймове</title>
</head>
<frameset rows="20%,*">
<frame name="top" src="frame1.htm">
<frameset cols="25%,*">
<frame name="left" src="frame2.htm">
<frame name="right" src="frame3.htm">

</frameset>
</frameset>
</html>

Изобразяването на кода от фиг. 12.3 в браузера може да се види като се натисне ТУК.

С влагането на тагове <FRAMESET ..........> може да се създаде произволна структура от фреймове.

Необходимо е да се обърне внимание на точното място на затварящите части на тага </FRAMESET>.

Независимо от възможностите за създаване на произволна структура от фреймове в прозореца на браузера, трябва да се отчита фактът, че използването на повече от 3-4 фрейма в прозореца не се препоръчва.

Не трябва да се забравя, че във всеки фрейм се зарежда отделен HTML документ (Web страница). Ако текстът и другите елементи на страницата не могат да се покажат в съответния фрейм трябва да се използват ленти за превъртане (най-често в двете посоки). Това разбира се създава неудобства за посетителите на такива страници.