Konstrukcja ramek składa się z pliku definiującego podział okna waną ilość okien. Plik ten jest zbliżony wyglądem do tradycyjnego!, istotnych różnic. Oto przykład prostego pliku definiującego podział
Miejsce znacznika <body> zapnaje mącznik <frameset> </frameset>, który jest odpowiedzialny za deklaracje wygłąd naszych ramek. Znacznikowi <FRAMESET> towarzyszą dwa atrybuty: COLS="x,y,efcc" albo rows="x, y, etc". Pierwszy odpowiada za definiowanie kolumn, a drugi wierszy. Wartości x,y,etc określają ilość kolumn-wierszy i mogą być określane bądź w ilości pikseli bądź wartości procentowych liczonych od wielkości okna przeglądarki. Istniejcież Możliwość definiowania tych wartości w taki sposób, jak to przedstawia powyższy przykład: wówczas musimy zadeklarować pierwszą wartość, natomiast drugą zastępujemy znakiem *, co symbolizuje, że chcemy użyć całości dostępnej powierzchni. Rozwiązanie takk jest stosunkowo wygodne, gdyż nie musimy znać dokładnych wartości.
Nasz przykład zawiera następny znacznik <frame>, który określa dokładniej konkretną ramkę i przypisuje do niej nazwę oraz dokument wyświetlany domyślnie wemtata. Służy do tego atrybut name=" " oraz SRC="". Poza tym w naszym przykładzie znajduje sie jeszcze trybut SCROLLING="" odpowiedzialny za wyświetlanie suwaków, pozwalających na przewijanie dokumentu znajdującego się wewnątrz ramki. Atrybut scrolling="" może przybrać następujące wartości: AUTO, a wówczas suwaki będą pokazywane automatycznie, jeśli okażą się potrzebne (gdy dokument przypisany do danej ramki będzie za duży), NO - a wtedy suwaki nie zostaną pokazane nigdy, oraz yes wymuszający pokazywanie suwaków niezależnie od tego, czy są potrzebne, czy nie. Ostatnim atrybutem znacznika <FRAME> jest noresize, wymuszający na przeglądarce zablokowanie możliwości zmiany wielkości okien, które domyślnie mają taką możliwość.
Podane powyżej przykłady pokazują, że możemy dzielić okno przeglądarki na kolumny (atrybut cols) bądź wiersze (atrybut rows), ale nic nie stoi na przeszkodzie, by na naszej stronie połączyć kolumny i wiersze. Do tego celu musimy użyć kombinacji <frameset> z atrybutem COLS bądź rows. Oto przykład:
Skoro wiemy, jak dzielić okno na odpowiednią ilość ramek, pora poznać formę adresowania dokumentów wewnątrz ramek. Chodzi o to, że hiperłącza w formie, jaką poznaliśmy, nie zadziałają poprawnie na stronie zbudowanej w oparciu o ramki. Efekt będzie taki, że przy wywołaniu hiperłącza, strona, do której odnosi się nasze łącze, zostanie wyświetlona w tym samy oknie, w którym znajdowało się hiperłącze. By tego uniknąć, musimy określić, w którym oknie wywoływany dokument ma zostać wyświetlony, i tu z pomocą przychodzą nam nazwy ramek, które definiowaliśmy poprzednio.
Weźmy pod lupę hipotetyczny przykład oparty na powyższej definicji ramek. Zdefiniowaliśmy 3 ramki na stronie i nadaliśmy im nazwy: GÓRA, lewa, prawa. Dokumenty wyświetlane w tych ramkach mają podobne nazwy. Dokument lewa.html zawiera definicje następujących odsyłaczy:
<a href="infol.html"> Informacje 1 </a> <a href="info2.html"> Informacje 2 </a>
Tymczasem my chcemy, by po wybraniu dowolnego z tych odsyłaczy odpowiednia strona została pokazana w ramce o nazwie prawa. Aby to osiągnąć, nasz odnśnik w pliku lewa.html musimy wzbogacić o atrybut TARGET="nazwa ramki docelowej ". W naszym przypadku będzie to wyglądało tak:
<a href="infol.html" target="prawa"> Informacje 1 </a> <a href="info2.html" target="prawa"> Informacje 2 </a>
Atrybut target zawiera dodatkowo cztery zdefiniowane wartości:
1 TARGET="_blank"
2 TARGET="_self"
3 TARGET="_parenf"
4 TARGET="_top"
Pierwsza wartość spowoduje otwarcie nowego okna przeglądarki i wyświecieine w nim zadanego dokumentu. Kolejna wartość "_self" jest domyślna i spowooupc. tt dokument zostanie wyświetlony w ramce, z której chcieliśmy dokonać praekiarcm^jiia. Wartość trzecia dokona zamiany dokumentu nadrzędnego dla bieżącego doianicntu. Ostatnia wartość spowoduje przeładowanie zawartości okna i wyśwteiMie nowego dokumentu czyli dokona zmiany na miejscu dokumentu pierwszego w hierarchii stoków.
Ostatnia wartość jest szczególnie przydatna, jeśli z dokumentu zawierającego zdefiniowane ramki ładujemy inny dokument również zawierający ramki, np. jesl: daceaiy jedynie za pomocą HTML przeładować zawartość dwóch ramek.
Dla naszych ramek możemy zdefiniować obramowanie. Niestety, by opcja ta zadziałała, musimy zdublować parametry. Oto przykład:
<FRAME BORDER="n" FRAMEBORDER="n" FRAMESPACING="n">
Atrybut border odpowiada za wyświetlanie obramowania w przeglądarce Netscape, a pozostałe dwa w przeglądarce Internet Explorer. Zmienna n odpowiada za ickiaracje grubości ramki.
Znacznik <frame> zawiera jeszcze dwa dodatkowe atrybuty odpowiedzialne za deklaracje marginesów wewnątrz danej ramki. Oto przykład konstrukcji:
<FRAME MARGINHEIGHT="x" MARGINWIDTH="y">
gdzie x i y definiująjego wielkości, czyli określają, o ile pikseli bądź procent zawartość ramki ma być odsunięta od jej górnej lewej krawędzi.
Znacznik <noframes> </noframes>. Pozwala on użytkownikom przeglądarek, nie obsługujących ramek, zobaczyć zawartość strony. Wewnątrz tego znacznika powinniśmy umieścić przynajmniej część informacji zawartych na stronach w wersji z ramkami, pozwalających zobaczyć zawartość strony. Jak widać, pomiędzy znacznikami musimy użyć znacznika
, gdyż tam umieszczamy treść zwykłej strony, czyli musimy zgodnie ze specyfikacją określić jej <BODY>.Zasada działania jest prosta: jeśli wejdziemy na taką stronę za pomocą przeglądarki wspomagającej działanie ramek, to zawartość znacznika <noframes> zostanie pominięta, jeśli natomiast wejdziemy na stronę dzięki przeglądarce bez wsparcia dla ramek, to zgodnie z metodą działania przeglądarek - nieznane znaczniki zostaną pominięte, czyli pozostanie poza ogólną deklaracja ram strony tylko zawartość znajdującą się pomiędzy <NOFRAMES></NOFRAMES>.
Wady i zalety stosowania ramek
to mój mail: Napisz