|
Çerçeveler (frame), HTML'e sonradan
eklenmiştir. Bu yüzden eski sürüm browser'lar çerçeve kullanılmış
bir sayfayı görüntüleyemezler. (Microsoft Internet Explorer 3.0
ile Netscape Navigator 2.0 ve üstü sürümleri frameleri
destekliyor). Bunun yanında çerçeve kullanımına karşı düşmanca (!)
tavır sergileyen tasarımcılar da hatırı sayılır miktarda ve hala
birçok site, ziyaretçisine çerçeveli ve çerçevesiz sunum seçeneği
sunuyor.
Çerçeveler sayfanın bazı kısımlarını sabit
bırakırken, diğer kısımlarını değiştirme imkanı verir. Bunun
anlamı ise kullanılacak çerçeve miktarınca ek HTML sayfası
oluşturmak demektir. Browser, çerçevenin bir bölümüne
yerleştirilecek olan kaynak dosyayı bulamazsa hata mesajı
verecektir.
Aşağıdaki örneği inceleyelim:
Örneğimizde 3 adet html dosyası var.
Bunlardan frame.htm dosyası çerçeve komutlarını içeriyor
(yani ana dosya). Bu komutlar browser'a, görüntülenmekte olan
pencereyi ikiye bölmesini, bunlardan birisinde htm1.htm
dosyasını, diğerinde htm2.htm dosyasını görüntülemesini
bildiriyor.
<body bgcolor="..."> etiketi ile
htm1.htm dosyasının artalan rengi kırmızı, htm2.htm
dosyasının artalanı ise mavi yapılmış, kolaylık olması açısından
dosyaların adlarını görüntülemeleri için bunlar da yazılmış ve
sonuç gördüğünüz gibi.
Şimdi bu çerçeveyi birlikte oluşturalım:
frame.htm dosyası:
<html>
<head>
<title>Çerçeveler</title>
</head>
<frameset cols="*,*">
<frame name="sol" src="htm1.htm">
<frame name="sag" src="htm2.htm">
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>
|
htm1.htm dosyası:
<html>
<head></head>
<body bgcolor="red">
<font size="7" color="#ffffff">htm1.htm</font>
</body>
</html>
|
htm2.htm dosyası:
<html>
<head></head>
<body bgcolor="blue">
<font size="7" color="#ffffff">htm2.htm</font>
</body>
</html>
|
<frameset>...</frameset>
Çerçeve oluşturmada kullandığımız etiket:
frameset, cols ifadesi açılacak çerçevelerin yan yana
sütunlar şeklinde olacağını belirtiyor, buraya row yazarsak
çerçeveler alt alta satırlar görünümünde açılacaktır.
cols (sütunlar)
rows (satırlar)
cols="*,*" ifadesi ile açılacak
çerçevelerin pixel cinsinden ebatlarını belirliyoruz, buraya
örneğin cols="140,500" gibi sayı yazılabilir, cols="25%,75%"
ile browser penceresinin o anki ebadına göre verilen %
oranlarına göre şekil alması sağlanabilir yada * sembolü
ile açılacak çerçevenin ebadı browser'a bırakılır, cols="140,*"
ifadesi ilk pencerenin 140 pixel olacağını ikincinin ise ebadının
browser'a bırakıldığını gösteriyor.
Bu şekilde aynı zamanda açılacak çerçeve
sayısını da belirtmiş oluyoruz. cols=".." ifadesine iki
değer (ya da yıldız) verirsek bu iki çerçeve aç anlamındadır, 3
değer 3 çerçeve açar.
frame name="..." src="..." etiketi
çerçevelere, bağlantıların TARGET kısmında kullanabilmek
amacıyla isim (name) vermeyi sağlıyor (bu konuya aşağıda
değineceğiz). src pencerede görüntülenecek html dosyasının
yerini gösteriyor. Resimler bahsinde
belirttiğimiz yer (kaynak) gösterme kuralları burada da geçerli.
Açılacak çerçeve sayısı kadar frame name="..." src="..."
etiketi kullanıyoruz.
Eski sürüm browserların çerçeve etiketini
tanımadıklarından bahsetmiştik, işte noframes kısmı bu
browserlara hitap ediyor. body kısmını bu eski browserlar
görüntüleyebiliyor. Buraya örneğin sayfanın çerçeve kullanılarak
yapıldığını gösteren bir mesaj yazılabilir, böylece ziyaretçinin
artık yeni sürüm bir browser kullanması gerektiğini
hatırlatabilirsiniz.
FRAMESET etiketi ile kullanabileceğimiz diğer parametreler
şunlar;
frameborder="..." (yes, no) Çerçeveler arasındaki sınır
çizgisinin görünüp görünmeyeceğini belirler.
border="..." (sayı) Sınır çizgisinin kalınlığını (veya
çerçeveler arası mesafeyi) belirler
FRAME etiketi ile kullanabileceğimiz parametreler;
marginwidth="..." marginheight="..." (sayı) Sayfanın
solundaki (marginleft) ve üstündeki (margintop) kenar boşluklarını
belirler.
scrolling=".." (yes, no, auto) Kaydırma çubuklarının
durumunu belirler.
noresize Pencere boyutlarının sabit olmasını sağlar.
Daha karmaşık Çerçeveler
Yan yana sütünlar ya da alt alta satırlar
görünümünde çerçeveler açmayı öğrendik peki tablolarda gördüğümüz
hücreleri birleştirme gibi bir özellik çerçevelerde de var mı?
maalesef yok, fakat aynı görünümü elde etmek mümkün.
Bu etkiyi sağlamak için FRAMESET
etiketini açıp kaynak dosyaların hepsini belirtmeden yeni bir
FRAMESET açıyoruz, içiçe açtığımız bu etiketlerin kaynak
dosyalarını eksiksiz olarak belirtip, etiketleri sonlandırıyoruz.
Örnekleri ve yanlarındaki kodları inceleyip,
farklı çerçeve türlerini kendi bilgisayarınızda oluşturmaya
çalışın,
 |
 |
<frameset rows="*,*" cols="*,*">
<frame name="a" src="htm1.htm">
<frame name="b" src="htm2.htm">
<frame name="c" src="htm3.htm">
<frame name="d" src="htm4.htm">
</frameset>
|
|
 |
 |
<frameset cols="150,*">
<frame name="a" src="htm1.htm">
<frameset rows="100,*">
<frame name="b" src="htm2.htm">
<frame name="c" src="htm3.htm">
</frameset>
</frameset>
|
|
 |
 |
<frameset rows="50%,50%">
<frameset cols="*,*">
<frame name="a" src="htm1.htm">
<frame name="b" src="htm2.htm">
</frameset>
<frame name="c" src="htm3.htm">
</frameset>
|
|
 |
 |
<frameset rows="*,*,*">
<frame name="a" src="htm1.htm">
<frameset cols="*,*">
<frame name="b" src="htm2.htm">
<frame name="c" src="htm3.htm">
</frameset>
<frame name="d" src="htm4.htm">
</frameset>
|
|
 |
 |
<frameset cols="*,*">
<frameset rows="*,*">
<frame name="a" src="htm1.htm">
<frame name="b" src="htm2.htm">
</frameset>
<frame name="c" src="htm3.htm">
</frameset>
|
|
Çerçeveler konusu ile birlikte HTML
öğreniyorum yazı dizimiz sona erdi, buraya kadar
öğrendiklerinizle internette siz de kendinize ait sayfalarınızı
inşa edebilirsiniz, eğer bu konuda ciddi düşünüyorsanız bunun
yolunun çok çalışmaktan geçtiğini sakın unutmayın, hoşunuza giden
sitelerin dizayn mantığını anlamaya çalışın, hatta bunun için
kaynak kodlarını inceleyin. Görsel editörleri kullanarak sayfalar
hazırlayın ve sonra da editörün kodları nasıl oluşturduğuna bakın.
Son olarak; iyi bir tasarımcı olmanın yolunun çok çalışmak ve
devamlı araştırmakan geçtiğini unutmayın. Hepinize başarılar...
|