Frames
(рамки)
От този материал ще научите как да разделяте страницата си на
фреймове (рамки). Въпреки, че фреймовете са напълно "законен" инструмент в HTML,
препоръчително е по възможност да избягвате употребата им. Причината за това е,
че фреймовете страници създават трудности при индексирането им от търсещите
машини, а често затрудняват и потребителите при сърфирането из съответния
сайт.
ТАГОВЕ И ОСНОВНИ АТРИБУТИ ПРИ ИЗГРАЖДАНЕ НА
РАМКИ
В първите уроци беше споменато, че почти всички HTML-страници
имат секция HEAD и секция BODY. Фреймовите страници са едно от изключенията - те
не съдържат секция BODY.
Фактически една фреймова страница се състои от
няколко - 3, 4 или повече HTML-документа.
Ако често сърфирате из интернет
сигурно сте попадали на фреймови страници. Много често използван вариант е
страница разделена на горен, ляв и централен сектор. За да се изгради такава
страница първо трябва да създадем 3 HTML-документа - по един за горния, левия и
централния фрейм и накрая да създадем индекс-фреймовата HTML-страница, която ще
обедини трите споменати страници.
Трите страници, които ще се показват
съответно горе, вляво и в центъра, се създават като "нормални" HTML-страници -
със секция HEAD, секция BODY и т.н. Разликите с обикновената HTML-станица се
проявяват при индексната фреймова страница, която обединява 3-те първоначално
създадени "нормални" HTML-страници. Кода на тази индексна страница може да
изглежда например
така:
<html>
<head>
<title>Пример за фреймова
страница №1</title>
</head>
<frameset
rows="30%,*">
<frame src="top.html" name="top" />
<frameset
cols="30%,*">
<frame src="left.html" name="left" />
<frame src="right.html" name="right"
/>
</frameset>
</frameset>
</html>
Вид
на фреймовата страница от пример №1:

Нека да разгледаме таговете, които изграждат тази
страница:
1. Както се вижда, страницата не притежава BODY-секция.
На мястото на тага BODY е поставен тага frameset. Тага frameset определя
"раграфяването" на индекс-HTML-страницата, а другия таг - frame - "извиква"
съответната HTML-страница, която трябва да се появи на съответното
място.
Тага frameset може да притежава 2 основни атрибута: cols и
rows.
Чрез атрибута cols се задава разграфяване на страницата на колони,
а чрез атрибута rows - на редове.
В случая атрибутите cols и rows имат
зададени стойности "30%,*". Когато такава стойност е зададена на rows, това
означава, че за горния ред (горния хоризонтален фрейм) се запазва 30% от
височината на браузъра. Звездичката след запетаята указва, че цялото останало
пространство (70%) може да се заеме от долния хоризонтален фрейм.
Същата
стойност е зададена и на атрибута cols, което означава, че 30% от ширината на
прозореца на браузъра са запазени за първата колона (левия вертикален фрейм), а
останалото пространство може да се заеме от десния вертикален
фрейм.
Стойностите на атрибутите cols и rows могат да се зададат и по
друг начин. Ако напишем например "30%,70%" - това няма да е грешка. Освен
относителни стойности тези атрибути могат да приемат и абсолютни - например ако
напишем cols="200,*", това ще означава, че на левия фрейм се отреждат 200
пиксела пространство, а останалото ще бъде заето от десния фрейм.
Тага
<frameset> притежава затварящ таг </frameset>.
2. Тагът frame изпълнява функцията да "извиква" съответния HTML-документ на нужното
място. Това става чрез включването на атрибута src, на който му се задава адреса
на нужната HTML-страница. В нашия пример, веднага след frameset rows="30%,*"
следва тага frame, който чрез атрибута src извиква HTML-страницата
top.html.
Внимание! Още веднъж да подчертаем - за да бъде извикана страницата
top.html, тя трябва да е предварително създадена. Само така тя ще може да се
появи в горния фрейм на нашата фреймова индекс-страница. Същото важи и за
останалите две страници - left.html и right.html, които се появяват съответно
вляво и вдясно. Тези страници се създават предварително като обикновени
HTML-документи - с HEAD и BODY секции.
Тага frame няма затварящ таг, но
според изискванията на XHTM в края преди затварящата скоба се изписва затваряща
наклонена на дясно черта.
Последния атрибут от нашия пример - name - в
случая не е задължителен за употреба, но е препоръчително да го използвате
винаги, защото ако решите, чрез него и с помощта на атрибута target може да
зареждате HTML-документ, който да се появи във фрейм, където се е съдържал преди
това друг HTML-документ. Как става това е обяснено
по-долу.