HTML   Lekcja 2.5  - Konstruowanie ramek.

Dowolny system ramek można zapisać w postaci zagnieżdżanego kodu w jednym dokumencie ustalającym raz na zawsze system ramek. Nie jest to trudne. Wystarczy pamiętać o zasadzie zastępowania ramki nazwanej np. <frame name="a"> nowym podziałem ramek oraz o kolejności pisania kodu zgodnie z zasadami czytania i pisania dokumantów w naszej kulturze. Otóż to co jest po lewej stronie jest pierwsze w stosunku do tego co jest po prawej, a to co na górze jest pierwsze w stosunku do dołu. Przeglądarka zna te zasady wobec czego porządek pisania kodu musi odzwierciedlać fizyczny porządek i usytuowanie ramek na ekranie monitora.

Drugim, często stosowanym i bardziej elastycznym sposobem konstruowania skomplikowanych systemów ramek jest zagnieżdżanie odpowiednich dokumentów w miejsce dotychczasowego zagnieżdżania kodu. Wymaga to większego nakładu pracy, ale często opłaca się ponieważ tak stworzony system ramek jest bardzo elastyczny, umożliwia łatwą ich modyfikację, a także pozwala na wykorzystanie tzw. ramek rodzicielskich (parent).

Aby dobrze zrozumieć sposób tworzenia takiego system zauważmy, żę poszczególne systemy ramek, tak jak to przedstawiono na rysunkach poniżej, będą tworzone w oddzielnych dokumentach html.


Każdy układ ramek, np. taki jak na rysunku po lewej, ma swojego rodzica oraz ramkę główną, najbardziej zewnętrzną, czyli okno główne tzw. (top)

Na rysunku po lewej ramki to ramki siostrzane mające wspólnego rodzica parent.

W naszym przykładzie parent to najbardziej zewnętrzna ramka, a więc parent i top to to samo.
Łatwo to zrozumieć ponieważ nie ma więcej ramek na zewnątrz systemu.
Niechaj plik zawierający deklarację ramek e i f ma nazwę ramki_ef.htm




Sytuacja na drugim rysunku jest podobna. Widzimy tutaj system trzech ramki siostrzanych a, b i c. Ramki te mają wspólnego rodzica (parent), który jest jednocześnie ramką (top)
Niechaj plik zawierający deklarację ramek a, b i c ma nazwę ramki_abc.htm


Sytuacja zmieni się zasadniczo jejśli w pliku ramki_abc.htm zawierającym deklaracje ramek a, b, c wprowadzimy zmianę polegającą na wpisaniu nazwy pliku ramki_ef.htm zawierającego deklarację ramek e, f. jako żródło dla ramki b.
Będzie to wyglądało następująco: <frame name="b" src="ramki_ef.htm">
Zobaczmy teraz jak wygląda w pełni zmodyfikowany kod dokumentu zawartego w pliku ramki_abc.htm

<html>
<head>
</head>
<frameset cols="20%, 70%, 10%">
             <frame name="a" src="menu.htm">
             <frame name="b" src="ramki_ef.htm">
             <frame name="c" src="strona2.htm">
</frameset>
</html>

Oczywiście efekt końcowy będzie wizualnie identyczny jak przy zagnieżdżeniu kodu, z tą różnicą, że rodzicem ramek e, f będzie ramka b, która ciągle istnieje, chociaż jest niewidoczna bo podzielona na ramki e, f. Rodzicem ramek a, b c jest w dalszym ciągu ramka najbardziej zewnętrzna, jest ona jednocześnie ramką top dla wszystkich ramek potomnych.

Jeśli się zastanowić tworzenie w jednym dokumencie ramek a, b i c też jest nieopłacalne jeśli chcemy mieć więcej możliwości zarządzania miejscem. Można np. najpierw podzielić główne okno na część lewą i prawą, a dopiero później prawą część podzielić na dwie części. Stworzy to więcej ramek i więcej możliwości ich wykorzystania. Oczywiście wymaga to stworzenia dodatkowych dokumentów html. W naszym przykładzie chodziło jednak o pokazanie możliwości dzielenia okna na więcej niż dwie części.

Ramki są bardzo wygodnym narzędziem nawigacji i jeśi umiemy je tworzyć i wykorzystywać znakomicie upraszczają projektowanie stron WWW, przyczyniając się jednocześnie do zwiększenia szybkości działania witryny przez wyeliminowanie zbędnych przeładowań powtarzających się na stronach elementów.

[dalej]