22 Haziran 2016 Çarşamba

HTML Ders 7:FRAMELER

Çerçeveler -Frames
HTML ilk çıktığında frame teknolojisi yoktu. Ġlk olarak
lanse edildiğinde bir yandan tarayıcı firmaları frame
desteğiyle övündüler diğer yandan ise site tasarımcıları
bundan nefret ettiler. Hatta bu tepki yüzünden, Netscape
ve Internet Explorer‘ yazılımcıları programlarında frame
seçeneklerini devre dıĢı bırakma kolaylığı bile getirdiler.
Frame düĢmanlığı, mantıksız ancak teknik açıdan çeĢitli
açılardan haklıdır. Aslında site iskeleti için frame
kullanımı tablo kullanımından daha esnek ve güzel
sonuçlar verir ancak framelerin bir çok dezavantajıda
vardır.
Tablodan farklı olarak frame teknolojisi, bize sayfamızın
bir tarafı sabit kalırken, diğer tarafının içeriğini,
kullanıcının tercihine göre değiĢtirme imkanı verir.
Böylece bir tarafta menü dururken diğer tarafta içeriğin
değiĢtirilmesi sağlanabilir. Bu sayade menü kodlaması
için tek bir dosya kullanılmıĢ olur.
Avantajları
 Ġçeriği kontrol etmek kolaydır. Bir taraf menü
diğeri içerik sunmak için kullanılabilir.
 Frame hedef değiĢmediği sürece görüntüleniyor
olacaktır.
Dezavantajları
 Eski tarayıcılar desteklemezler
 Ekranda ilave yer tutarlar
 Her bir frame için ayrı bir sayfa oluĢturulması
gerekir.
Sayfanın kaydedilmesi ve yazdırılması sorun olur
 Frame kullanılan sitelerde link vermek zor olur (En
önemli sorunlar son üçüdür)
 Arama motorları (Google, Yahoo vb) Frameleri
sevmezler.
Bir frame de aslında tablo gibi satır sütun mantığı ile
oluĢturulur. Ancak tablonun sütun ve satırları ancak
komĢu hücrelerle birleĢtiribilirken frameler tüm ekran
üzerinde özgürce konumlandırılabilirler.
AĢağıdaki sayfa düzenini frameler ile kurduğumuzu
varsayalım.
Kullanıcı sol taraftaki menüden bir sayfayı seçtiği taktirde
_target=content (içerik frame‘nin adı) denildiğinde, üst ,
alt ve sol frameler yerlerinde sabit dururken orta sağdaki
içerik frame değiĢecektir. Dolayısı ile bu yapı sayesinde
her sayfada menüyü ve ana isketlet tablosunu yeniden
kullanmak zorunda kalmamıĢ oluruz. Üstelik menüde
değiĢiklik gerektiğinde sadece menü alanında bulunan
frame kodunun bulunduğu sayfayı değiĢtirdiğimiz anda
bu kod tüm sayfalara yansımıĢ olacaktır.
ġimdi madem bu kadar üstün neden insanlar kullanmıyor
ve kullanmak istemiyor denilebilir. Gerçektende ilk
yaptığım site (1998) hariç hiçbir sitede frame kullanmıĢ
değilim. Üstelik ilerde göreceğimiz CSS ve PHP yardımı
ile zaten bir menü kodunu her yerden çağırabilme
imkanımız baĢka Ģekillerdede mevcut. Dahası frame
kullanılan bir sayfaya link vermek sanıldığı gibi kolay
değildir. Çünkü adres satırında bir Ģey yazarken sayfa
aslında baĢka bir içeriği gösteriyor olabilir. Üstelik arama
motorlarıda frame sayfalardan pek hoĢlanmazlar. Ve
linkler direkt alındığında ise frameli bir sayfa frame
olmadan açılabilmektedir.
Frame Parametreleri
marginwidth="..." (sayı) :Soldan boĢluk
miktarını belirtir.
marginheight="..." (sayı) :Sağdan boĢluk
miktarını belirtir
scrolling=".." (yes, no, auto) :Kaydırma
çubuklarının gösterilip gösterilmyeceğini belirtir.
noresize :Pencere boyutlarının sabit
http://alikoker.name.tr
HTML-CSS–PHP–MYSQL ve SQL Derleme : Ġbrahim Halil Kutluay- 2007-2013
89
kalır ve Fare ile boyutlandırma yapılamaz
frameborder="..." (yes, no) :Çerçeveler
arasındaki sınır çizgisinin olup olmayacağını
belirler.
border="..." (sayı) :Sınır çizgisinin kalınlığını
(veya çerçeveler arası mesafeyi) belirler
Frame Satırları ve Sütunları
Frame kullanan bir HTML sayfası oluĢturmak, aslında,
çerçeve sayısı kadar HTML sayfası oluĢturmaktır
demiĢtik. Tablo ile frame arasındaki en önemli farkta
budur.
Frame oluĢturma kodu olan <frameset
cols="">...</frameset> Ģeklindedir. Burada frame sayı
belirtilmez, verilen ölçü sayısına göre tarayıcı bunu
kendisi hesaplar. ―cols=‖ ifadesinden sonra sayfamızda
kaç çerçeve olması isteniyorsa o kadar ölçü yazılır.
<frameset cols="20%,60%,20%>
Bu komuttaki ―col‖ ifadesiyle dikey frame oluĢturuyoruz
bu çerçeve setinde solda ve sağda ekranın %20‘si eninde
birer alan bırakıp kalan /60 ı ise içerik için kullanacağız.
Bu framelerin içine ne konulacağını ise, FRAMESET
etiketinin içine yazacağımız kaynak gösteren satırlarla
bildirmemiz gerekir;
ġimdi bunları yazalım. </frame> kodunun önüne Ģunları
yazın:
<frameset cols="20%,60%,20%>
<frame name="col1" src="cer01.htm" marginheight="5"
marginwidth="5" noresize scrolling="no">
<frame name="co2" src="cer02.htm" marginheight="5"
marginwidth="5" noresize scrolling="no">
<frame name="co3" src="cer03.htm" marginheight="5"
marginwidth="5" noresize scrolling="no">
<noframes>
<body>
</body>
</noframes>
</frameset>
</html>
Bu kodun içindeki <noframes>..</noframes> koduna
dikkat ettiyseniz içindeki <body> etiketleride ne
diyebilirsiniz. BaĢtada dediğimiz gibi eski tip tarayıcı
kullananlar yada frame özelliğini kapatmıĢ kullanıcılar
sayfanın sadece <noframe> blokunu göreceklerdir.
Setleri oluĢturacak sayfalara örnek ise
<html>
<head>
<title>Çerçeve 1</title>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1254">
</head>
<body bgcolor="#C0C0C0">
<p align="center">Çerçeve: 1</p>
</body>
</html>
Bu sayfayı, örnekten anlaĢılabileceği gibi ―cer01.htm‖
adıyla kaydedilmeli. Zemin rengi metinler değiĢtirmek
üzere, cer02 ve cer03 adıyla iki kopyası daha gerekli
olacaktır. Ayrıca tüm dosyaların aynı klasörde durması
gerektiğinide unutmamak gerekir. Ana set dosyasındaki
frameset içinde bulunan cols ifadesini rows yaptığımız
anda dikey olan frame kolonları bu sefer yatay olarak
yerleĢecektir.
Yatay Dikey KarıĢık Frame OluĢturmak
Frameler teknik olarak birbirleriyle birleĢtirilemez ancak
aynı görüntüyü elde etmek mümkündür. Sadece
kodlama Ģekli biraz farklı olacaktır. Frame kullanımında
ne kadar frame isteniyorsa belirtilir demiĢtik. Bu
belirtilen frameler için <FRAME SRC> ile kaynak
belirtilmediği anda tarayıcı o alanda bir sütun oluĢturur.
Buraya diğer frameler yeleĢtirilebilir. EĢit olmayan sayıda
sütun ve sıra içeren frame iĢlevi için bu olay kullanılır.
Birinci sütun tek sıralı, ikinci sütun iki sıralı bir çerçeve
sayfası için kodumuz Ģöyle olmalıdır:
<FRAMESET COLS="25%,75%">
<FRAME SRC="cer01.htm" NORESIZE
SCROLLING="auto">
<FRAMESET ROWS="20%,80%">
<FRAME SRC="cer02.htm" NORESIZE
SCROLLING="auto">
<FRAME SRC="cer03.htm" NORESIZE
SCROLLING="auto">
</FRAMESET>
http://alikoker.name.tr
HTML-CSS–PHP–MYSQL ve SQL Derleme : Ġbrahim Halil Kutluay- 2007-2013
92

Hiç yorum yok:

Yorum Gönder