HTML Kullanımı

Transkript

HTML Kullanımı
1 Web Tasarımı HTML Kodları ve Kullanımları:
1.1 Temel bileşenler: html, head, title, meta ve body
Web tasarımı yaparken bir WEB sayfasının ilk karşılaşacağımız standart
bileşenleri şunlardır:
<html> ve </html> : sayfanın başlangıç ve bitişini belirtir.
<head> ve </head> : sayfanın başlık bilgileri 'title', 'meta' vs. buraya
yerleştirilir.
<title> ve </title> : sayfanın içeriğinin ne olduğunun tanıtılmasında
kullanılır. Sayfada görünmez ama Firefox ya da Internet Explorer bunu
sayfayı tanımlamakta kullanır.
<meta> : sayfanın içeriği hakkında www tarayıcılarına bilgi sağlamak,
arama motoru ve arama motoruna kayıt için gereklidir.
<body> ve </body> : sayfanın içeriğinin başlangıç ve bitişini belirtmekte
ve sayfa hakkındaki genel tanımlamaları yapmakta kullanılır.
Yukarıdaki bu komutların, bir web sitesi içindeki sıraları aşağidaki gibidir.
Bir yazı editörü (joe, pico, xedit, edit, notepad vs.) ile ilk örneğimizi
yazarsak:
<html>
<head>
<title>Bir HTML Denemesi</title>
<meta name="description" content="html sayfası için bir kullanım
örneği"> </head>
<body bgcolor=white>
'Bu sayfa inşa halindedir', ya da 'this page is under construction' web
sitelerinde ille de olması gerektiği düşünülen saçma yazılardır. </body>
</html>
Aslında en basit web sayfası şöyle olabilir:
<html>
Benim neyim eksik?
</html>
sondaki '</html>' yi koymasak dahi www sitesi gosterici programı
(Firefox, Opera, IE, ...) bunu bir HTML sayfası olarak yorumlayacaklardır.
1.2 Renkler, body, font, ve h1..h6
Önceki örnekte '<body color=white>' diye, aşağıdakinin basitlestirilmiş
biçimini kullanmıştık:
<body font=purple bgcolor=#FFFFFF text=black link=blue
vlink=#808090>
Burada font ile kullanilan genel yazıların rengi,
bgcolor ile arkaplan rengi,
text ile tanımsız yazıların rengi,
link ile üzerine gelince el hareketi çekilen yazıların rengi,
vlink ile de seçilmis bağların rengi belirlenir.
renk belirtmek için o rengin İngilizce adı ya da RGB değerleri onaltılık
sistemde verilir. RGB deki sıraya göre 00-FF arası üç değer kullanılır.
Hepsi sıfır ise hiçbir renkten karıştırılmaz. hepsi FF ise her renk maksimum
oranda kullanılır ve beyaz elde edilir.
Örneğin salt bir kırmızı #FF0000 ile elde edilir.
<font color=...> ve </font> arasındakı yazılar belirtilen renkte yazılır.
<h1> ve </h1> den <h6> ve </h6> ya kadar standard yazı tiplerinden
biri seçilerek yazı yazılır. h1 ile belirtilenler h6 ile tanımlananlardan daha
büyüktür.
örneğin:
<html>
<h1>Sayfa başlığı için uygun büyüklükte harfler</h1>
<h4>Bu harfler sanırım yazı için yeterliler</h4>
<h6> Gözleriniz bozuk değilse, ve her gün A vitamini alıyorsaniz bu yazı
sizin için okunabilir olmalı.</h6>
</html>
1.3 Yazıları biçimlendirmek: kalın, yatık, ortalanmış, vs. ...
Önceki web tasarımı örneğinde <h1>, <h2>, ... ile yazıların büyüklüklerini
ayarlamanın basit bir yolunu görmüştük. HTML web sayfamızın yazılarına
biraz daha kişilik kazandırmak için aşağıdaki komutları da kullanabiliriz.
<b> ve </b> arasındaki yazılar koyu görünür.
<i> ve </i> arasındaki yazılar ise italik basılır.
<blink> ve </blink> arasındaki yazılar ise yanıp söner.
<center> ve </center> arasındaki yazılar ortalanır.
<pre> ve </pre> ile sınirlanan yazıların göruntüsünde ayarlama yapılmaz.
Yani birden fazla boşluk varsa bunlar bir tane olacak şekilde azaltılmaz.
<p> paragraf başı yapmak için kullanılır.
<br> bir satır atlamak için kullanılır.
<hr> bir çizgi çeker.
1.4 Sayfada resim göstermek
En basit şekliyle, bir sayfaya resim koymak için aşağıdaki komut şu
şekilde;
<img src="dosya-adi" alt="..." align=... >
kullanılır.
Burada dosya-adı gösterilecek grafik dosyasının (png, gif ya da jpg
tipinde) bulunduğu yer ve adıdır. Bağlanılan html sayfası ile aynı dizinde
bulunan resimler için yer adı belirtmeye gerek yoktur.
Alt ile ise lynx kullanıcılarının görebileceği bir açıklama yazmış oluruz.
Align ile de resmin konumunu belirleriz.
Örneğin:
<img src=resim.gif align=right> ile resmin sağa yanaşık olarak çizilmesini
sağlarız. 'right' yerine 'left', 'center', 'middle' gibi konum bildirici bir başka
sözcük de kullanılabilir.
Ayrıca yukarıdakilere ek olarak 'border', 'width', 'height' belirteçlerini de
<img ...... > içinde kullanabiliriz. Bunlardan 'border='i kullanarak resmin
çerçevesini belirleriz; border=0 dersek hiç çerçeve çizilmez.
Width ve height ile resmin boyutlarını belirleyebiliriz. Bunlardan sadace
birini verirsek, resmin boyutu orantılı olarak çizilecektir. Yani <img
src=resim.gif width=300> demişsek, ve de resmimiz aslında 100 nokta
genişliğinde 50 nokta yüksekliğinde idiyse, ekrana 300 nokta eninde ve
150 nokta yüksekliğinde çizilecektir. Her iki değeri de (width=...
height=...) kullanmışsak, resmin oranını istediğimiz gibi değiştirmek
mümkün olur.
Bu arada, sayfanın internetten indirilirken hızlı gösterilmesini istiyorsak,
her resmin width ve height özelliklerini kullanmalıyız. Bu sayede browser
(gösterici) programınız resimlerin yüklenmesini beklemeden çevrelerine
yazıları yerleştirebilecektir.
Sayfanın hızlı geliyor gibi görünmesini sağlamanın bir yolu da 'lowsrc'
belirtecini <img .....> içinde kullanmak. Web tasarımı yaparken eğer
kullandığımız resimlerin bir de bulanık/niteliksiz/siyah-beyaz ama az yer
tutan bir benzerini daha yapar, ve bunu <img src="resim.gif"
lowsrc="hizliresim.gif" alt="[resim]"> şeklinde tanımlarsak, ilk önce
hizliresim.gif yüklenip gösterilecektir. Bu sayede bulanık iken yavaş yavaş
netleşmeye başlayan resimler belirir sayfamızda. Bunun yararı ise
sayfanıza bakan kişinin çabuk karar vermesini sağlıyor olmasındadır.
1.5 HTML sayfasına bağ (link) yerleştirmek
<a> ve </a> : HTML'nin temeli olan bu komutlarla bağ (link) yapılır.
<a href="hedef bağ"> Açıklama </a> Biçiminde kullanılır.
Açıklama denilen kısım ister yazı ister bir grafik ya da herhangi bir nesne
olabilir. "hedef bağ" kısmı ise yerel kaynakları gösteren bir dosya adı ya da
uzak bir makinedeki bir başka nesneyi (yazı, grafik, video vs.) gösteren bir
bağ (link) olur.
Bu linkler, mevcut internet araçlarından biridir.
Örneğin:
http:// ftp:// telnet:// gopher:// news:// bu araçlardan bazılarıdır.
Bunu kullanırken;
<a href="telnet://orca.cc.metu.edu.tr/> Orca'ya Netscape içinden
bağlanmak için buraya tıklayın</a>
yazarak, telnet aracını bir bağ (link) olarak sayfamıza yerleştirmiş oluruz.
Ya da;
<a href="resmim.jpg">Neye Benzediğimi Görmek İçin Buraya Bas</a>
Yukarıda adı geçen resim bu web sayfası ile aynı dizinde (directory)
olmalıdır.
Başka şekilde örnekler ise:
<a href="ftp://ftp.metu.edu.tr/pub/cica-win95/"> Windows95 için
Uygulama dosyaları</a>
<a href="nntp://news.metu.edu.tr/> Netnews 60000 den fazla konuda
insanların yazıştığı bölge</a>
<a href="news:comp.sys.cbm"> NetNews'in C64 bilgisayarlarına ilişkin
tartışmaları</a>
Ve, internetin en gözde kullanımı: bir web sayfasından başka bir web
sayfasına bağlanma:
<a href="http://www.physics.metu.edu.tr/~filker/nukleer/"> Türkiye'de
nükleer enerji tartışmaları</a>
dikkat ettiyseniz yukarıdaki örnekte sayfanın hangi dizinde oldugu
(...ilker/nukleer/") belli ama hangi dosyada oldugu yazılmamış. Böyle bir
durumda web sunucu program dosyanın adının 'index.html' olduğunu
öngörür.
Kendi dizininizdeki bir sayfa için:
<a href="ihd.html"> İnsan Hakları Derneği ve pişmiş tavuk için buraya
tıklayabilirsiniz.</a>
1.6 Bağlar yardımıyla etkileşimli kullanım örneği
Web sitesinde bir bağa (link) ard arda tıklamak yoluyla, slow motion
biçiminde ardışık resim gösterebilirsiniz. Bu kullanım en basit şekliyle bir
Bilgisayar Destekli Eğitim sayfasında kullanılabilir. Amaç, kullanıcıya
konuyu belli bir sırayla vermek ve konu içindeki ilişkilerin anlaşılmasını
kolaylaştırmak.
Bunu yapmak için, önce tek bir resim ve o resmin link olarak tanımlandığı
bir web sayfası tasarımı yapmalısınız:
<html>
<title>sayfa1</title>
<body>
<a href="sayfa2.html"><img src="resim1.gif"></a>
</body>
</html>
sonra da ikinci sayfa da hazırlanmalı:
<html>
<title>sayfa2</title>
<body>
<a href="sayfa3.html"><img src="resim2.gif"></a>
</body>
</html>
... bu şekilde devam edilir.
ve ilk sayfa yüklendikten sonra resmin üstüne tıklandığında ikinci sayfa ve
içindeki resim yüklenir.
İyi hazırlandığında, bu basit HTML kullanım şekli ile web-designprogramcılığına (Java, cgi-bin, ...) bulaşmadan da etkili 'sunu' ve 'anlatılar'
yapılabilir.
1.7 Ekran düzenine ilişkin daha çok komut:
<multicol cols=2> ... </multicol> : Aradaki yazılar cols= ile belirtilen
sütunlara ayrılarak ekrana basılırlar. Sadece Netscape3.0 ve üstünde
çalışır. Sütun içindeki yazının sütunun ne kadarını kaplayacağını width
parametresi ile belirtiriz. <multicol cols=3 width=75%> gibi. Burada
boşluğu yüzde yerine piksel olarak da verebiliriz. Ayrıca iki sütun
arasındaki boşluğu da gutter parametresi ile veririz: <multicol cols=2
width=500 gutter=25> yazılar... </multicol>
<spacer type=... size=... height=... width=... align=...> : Bununla
paragraf başları için boşluk bırakmak mümkün. Örneğin
<spacer type=block size=48> ile 48x48 piksellik bir boş kare alan
yaratmis oluruz. Burada block yerine vertical ya da horizontal kullanmak
da olası. Ayrica, <spacer type=block width=320 height=200 align=right>
ile 320x200'luk bir boşluk yaratıp bunu ekranda sağa dayatmış oluruz.
Gene align komutundan sonra right, left, center, absmiddle gibi diğer
konum belirteçlerini kullanabiliriz.
&nbsp; : 1 karakterlik boşluk bırakmak için kullanılır. Basit tablolar
yapmak için kullanılabilir. Örneğin, aşağıdaki boşluklar yerine &nbsp;
kullanırsak hizalı görünür:
<h3><br>
yıl
ay
gün <br>
------ <br></h3>
1.8 Sayfalarda tablo kullanımı
Genel kullanım:
<table [seçenekler]>
<tr [seçenekler] ><td [seçenekler] > sütun 1 yazıları </td><td
[seçenekler] >sütun 2</td><td> sütun 3.....</td> </tr>
<tr><td>2.satirin 1. sütunu</td><td>2. sütunu</td><td>3. sütunu
</td></tr></table>
Tablolar satırlar ve sütunlar şeklinde ayrilmış hücrelerden oluşuyor. Her
yeni satıra başlamak için <tr> etiketini, her yeni sütun için ise <td>
etiketini kullanıyoruz.
Bir örnek web tasarımı ile incelersek:
<table border=1 width=200 cellspacing=2 cellpadding=2> <tr>
<td align=top width="50%">Bellek tipleri</td> <td align=top
width="50%">FPM<br>EDO<br>SDRAM<br>DDR
RAM<br>RAMBus</td> </tr>
<tr>
<td align=top width="50%">Disk tipleri</td> <td align=top
width="50%">MFM/RLL<br>ATA IDE<br>ULTRA ATA<br>SCSI</td>
</tr>
<tr>
<td align=top width="50%">İşlemci tipleri</td> <td align=top
width="50%">RISC<br>CISC<br></td> </tr></table>
Burada 2x3'lük bir tablo oluşturduk. Tablomuz 1 pixel kalınlığında
çerçeveye sahip (border=1), tablo sayfada 200 pixel genişliğinde yer
tutacak (width=200), hücreler arası 2 pixel boş ve 2 pixellik bir kalınlık
efektimiz var (cellspacing ile cellpadding).
Örnekte hücre genişliklerin yazı uzunluğuna göre otomatik ayarlanmamsı
için genişlikleri kendimiz belirledik (width="50%"). Bunu pixel olarak da
belirlememiz mümkündü: <td width="100"> ile.
Hücreler içindeki yazıların nasıl yerleştirileceğini ise align="yer" ile
belirtiyoruz. Burada "yer" yerine "top", "bottom", "left", "right" ve "center"
kullanabiliriz.
Ve eğer, bir hücrenin iki hücre genişliğinde veya yüksekliğinde olmasını
istiyorsak colspan ve rowspan seçeneklerini de kullanıyoruz. Önceki
örneğe bir başlık ekleyecek olursak:
<tr><td align=center colspan="2">Bilgisayar Ana Bileşenleri</td></tr>
Tabloları içiçe de kullanmamız mümkün. Bu şekilde bir kullanımla bir
www sayfasındaki resim ve yazıları tam istediğimiz gibi konumlandırmamız
mümkün olur.
1.9 Basit bir HTML sayfası için gereken son noktalar
Daha önce kısaca değinildiği gibi, ilk yüklenecek sayfanın adı standart
olarak 'index.html' olarak belirlenmiştir. Dolayısıyla ilk sayfanızı bu şekilde
adlandırırsanız;
http://www.physics.metu.edu.tr/~filker/ilksayfa.html
yerine
http://www.physics.metu.edu.tr/~filker/ gibi, daha kısa olan, bir adres
kullanabilirsiniz.
2 İleri düzey bilgilerden seçmeler
2.1 Sayfalara 'meta' komutu ile kimlik vermek
Web sayfamızın Google, MSN Search, Slurp, Gigablast, Didikle vs. gibi
tarayıcı programlar tarafından içeriğine uygun olarak dizinlerine
aktarılmasını istiyorsak, <meta ...> komutunu kullanmak uygun duser.
Ayrıca, gene bu komut sayesinde sayfamıza bağlanani bir başka www
adresine yönlendirebilir, bu yolla bir takım hareketli sayfalar dahi
hazırlayabiliriz.
. Sayfanın kimliği:
Sayfayı tanımlamak için üç ayrı meta komutu yeterli. Bunlarla sayfa
hakkında kısa bir paragraf, anahtar sözcük listesi, ve sayfayı hazırlayanin
adını verebiliriz.
<meta name="description"
content="Bu sayfada, Tüsiad raporunun üniversitelerde
gerçekleştirdiği değişim sonucunda, üniversitelerin birer
"bilgili-öğretim-işçisi" makinesi durumuna gelmesi
tartışılmaktadır.">
Yukarıda, sayfamızı kısaca tanıtmış olduk. Bu yazı, tarama sonucunda
arayan kişiye gösterileceği için kısa, öz, ve içeriğe uygun olması gerekir.
Tarayıcılar artık sayfanın tümünde geçen sözcüklere ve bu sözcüklerle ilgili
diger sözcüklere bakarak arama yapsa da, sayfanızın hangi ölçütlere göre
aranması gerektiğini sizden iyi kimse bilemez. Onun için, sayfayı
tanımlayan anahtar sözcukleri de şu şekilde verebiliriz:
<meta name="keywords"
content="üniversite, gelecek, tüsiad, öğrenim, öğretim, eğitim, 21. yüzyıl,
Türkiy,e sermaye, yönetim, etki, rektör, özerk">
Ve, son kimlik bilgisi olarak sayfadan sorumlu kişiyi belirtiriz:
<meta name="author"
content="İlker Fıçıcılar">
Hazırladığımız bütün sayfalara bu türden kimlik vermeyi alışkanlık haline
getirirsek, interneti araştırmaları için bir kaynak olarak kullananlara epey
yardım etmiş oluruz.
. Sayfa yönlendirme:
Eğer yakında www adresimiz geçersiz olacaksa ve, yeni bir web hosting
adresine şimdiden taşınmışsak, bunu kullanıcalara önceden duyurmalı ve
onları yeni adrese yönlendirmeliyiz. Bunun için eski sayfamızı şu şekilde
değiştirebiliriz.:
<html>
<title>Ilker's CBM Projects</title>
<meta http-equiv="refresh"
content="3;url=http://www.geocities.com/SiliconValley/Vista/5666/">
<body>
<h1><center>This page is moved to a new address<br>
<blink> http://www.geocities.com/SiliconValley/Vista/5666/</blink>
<br></center></h1>
<p><p><left>
<h3><font color=blue><br>If your browser does not direct you to the
new address in 3 seconds, then please
<a href="http://www.geocities.com/SiliconValley/Vista/5666/">
click here</a>.
</font></h3>
</left></body></html>
Bu ornekte <meta http-equiv="refresh" ...> diyerek, www gösterici
programına yeni bir sayfa yüklemesini istediğimizi belirtiyoruz.
Bu yüklemeyi kaç saniye sonra yapması gerektiğini '<meta ..' nin
devamındaki 'content="3;....">' yazısı ile belirliyoruz. Buradaki '3' yerine
saniye cinsinden herhangi bir süre belirtebilirsiniz. '0' yazarsanız, doğal
olarak hemen diğer sayfayı yüklemeye başlar.
Yönelinen sayfanın adresi de, ' ... content="saniye; url=http://...">
biçiminde veriliyor.
Yukarıdaki örneğin gerekli kısmını bir daha yazarsak:
<meta http-equiv="refresh"
content="3;url=http://www.geocities.com/SiliconValley/Vista/5666/">
Evet, burada kendi isteğimize göre değistirecegimiz, yalnızca iki yer var: 3
sayısı ve url= işaretinden sonraki adres kısmı.
. Basit sayfa canlandırma
Eğer, yukarıdaki gibi bir 'meta' komutu içeren ardışık bir düzen içeren ayrı
ayrı sayfalar hazırlarsak, ve 'meta' komutunun adres kısmına sıradaki
sayfanın adresini verirsek, hayal gücümüz ölçüsünde hareketli web
sayfaları tasarımı yapabiliriz.
Örneğin birisi sayfamıza bağlandığında, ekranda 3 2 1 şeklinde bir
gerisayim görmesini ve ardından asıl sayfanın yüklenmesini istiyorsak, şu
şekilde sayfalar hazırlarız:
Diyelim ki, http://www.physics.metu.edu.tr/~filker/
adresine bağlanılmasını istiyoruz. Bu durumda index.html dosyasına '3'
sayısını koyup bu sayfayı sıradaki '2' rakamını içeren sayfaya yönlendiririz.
En sonunda da hiç bir yönlendirme içermeyen asıl sayfamıza geliriz.
Dolayısıyla, 'index.html' , 'A.html' , ' B.html' , ' asil.html' adlarında dört
sayfa hazırlamamız yeterli olacaktır:
index.html için:
<html>
<meta http-equiv="refresh"
content="1;url=http://www.physics.metu.edu.tr/~filker/A.html">
<body>
<h1><center> 3 </center></h1>
</body></html>
A.html için:
<html>
<meta http-equiv="refresh"
content="1;url=http://www.physics.metu.edu.tr/~filker/B.html">
<body>
<h1><center> 2 </center></h1>
</body></html>
B.html için:
<html>
<meta http-equiv="refresh"
content="1;url=http://www.physics.metu.edu.tr/~filker/asil.html">
<body>
<h1><center> 1 </center></h1>
</body></html>
ve son olarak asıl sayfamızı hazırlarız:
asil.html :
<html>
<body bgcolor=black text=red>
<h2>
Bu sayfa 'WWW Sayfama Hoş Geldiniz' yazısı içermemektedir :-) <br>
<p>
...
...
vs.
</h2>
<hr>
<p><h5>
sayfayı en son 28 Şubat 2000 tarihinde web hosting firması ftp'siyle
güncelledim.
</h5><br>
</body></html>
Biraz, zor ve yavaş olsa da bu şekilde animasyonlar (canlandırma), TV
yayıncılığı (bir arkaplan programı ile sürekli yeni resimler ve yeni bir
index.html hazırlayarak), ve anlık bilgi sunumu ( borsa fiyatları )
gerçekleştirilebilir. Ama basit resim canlandırmaları için sanırım 'animated
gif' türü '.gif' dosyaları daha uygun duşer.
2.2 Resimlerde 'MAP' kullanarak yapılan web tasarımı
Map'ler bir resmin değişik yerlerine tıklandığında değişik bağların
yüklenmesi veya değişik bir cgi-bin işinin yapılması olarak tanımlanır.
Burada kullanacağımız resmin '.gif' biçiminde olması gereklidir. Sayfanın
içinde bu resmi tanımladığımız '<img ...' belirtecinin içine bir kaç unsur
daha ekleyerek ve bir de 'map' (harita) alanının kısımlarını şekilleriyle
birlikte tanımlayarak işimizi bitiririz.
. Resmin betimi:
<img src="filanca.gif" ISMAP usemap="#falanca" width=160
height=100>
ISMAP, resmin bir harita olduğunu.
usemap="..." hangi usemap html kodu tanımını kullanması gerektiğini,
www gösterici programına söylüyor.
. Usemap tanımı:
<map name="falanca">
<area shape="rect" coords"1,1,159,50" href="dikdortgen.html">
<area shape="circle" coords="80,100,40" href="daire.html">
<area shape="polyg" coords="10,110,150,110,80,190,9,110"
href="ucgen.html">
<area shape="default" nohref>
</map>
name ile belirttiğimiz isim '<img ..' içinde usemap="#..." ile
kullandığımızın aynısı.
shape belirteci ile dikdortgen, daire, ya da poligon tanımlayabiliyoruz.
Dikdörtgenin koordinatlarını: X-sol_ust,Y-sol_ust,X-sag_alt,Y-sag_alt
biçiminde 'coords="..." ' kısmında belirtiyoruz. 'href="..." ' bölümü ise bu
dikdortgen alana tıklanıldığında neyin yüklenmesi gerektiğini söylüyor.
web sitesi alanında bir çember için X-merkez,Y-merkez,R-yarıçap
biçiminde koordinat tanımlıyoruz.
www sayfası poligonu tanımlarken sırayla her bir köşenin X,Y biçiminde
koordinatlarını html kodları içine giriyoruz. Dikkat etmemiz gereken husus,
poligonun noktalarını saat-yönünde tanımlamamız gerektiğidir. Ayrıca
poligonu kapamaya da tarayıcı programlar arasında uyumsuzluk nedeniyle
dikkat etmeliyiz. Yukarıdaki üçgen örneğini incelemek aslında poligon
tanımı yapabilmek için yeterli. Üçgen için dört nokta kullandık (dördüncü
ilkinin dibinde). Aynı zamanda bu üçgenin X,Y betimlemeleri de saatyönünde girilmiş (noktaları kağıt üzerinde yaklaşık olarak işaretlerseniz bu
'saat-yönü' kavramını daha iyi anlayabilirsiniz).
son olarak da '<area shape="default" nohref>' ile resmin diger bölgelerine
tıklanıldığında hiç bir sey yapılmaması gerektiğini söylüyoruz.
Evet bir 'harita' tanımı için gerekenler bu kadar.
Şip Şak Çeviri
www.SipSakCeviri.com
Ticari
Web Sayfası Çevirisi
ve
İhracata Uygun Broşür
Hazırlama
Dosyanızın fiyatını
otomatik hesaplatabilir,
çevirinin ilerleme
durumunu cep
telefonunuzdan WAP
ile izleyebilirsiniz!...
2.3 Dinamik HTML ile Web Tasarımı
Aşağıdaki örnekte, mouse yazının üzerine geldiğinde, tıklamaksızın yazı
değişir:
<h2 style="color:purple;" onmouseover="detay.style.display=''"
onmouseout="detay.style.display='none'">Flash Haber</h2>
<div id="detay" style="display:'none'; color:red;">
Son gelen haberlere gore, Yunanistan Turkiye'ye savaş açtı...
</div>
<font color=blue>Ayrintilar 19.30 Ana haber bülteninde</font>
Konu 3: Script Nedir?
HTML dosyasõ içine gömülmüş kodlara script denir. Yorumlanmasõ için Internet
tarayõcõsõna ihtiyaç vardõr. HTML dilinin karşõlayamadõğõ bazõ ihtiyaçlara çözüm
üretmek için script’ler kullanõlõr.
Web Programlamaya Giriş 279
JavaScript
JavaScript dili, Netscape firmasõ tarafõndan oluşturulmuştur. Yazõm biçimi olarak
C dili esas alõnarak tasarlanmõştõr. Amaç olarak HTML.in yetmediği yerlere
script.ler ile destek vermesi düşünülmüştür. Web programcõlõğõna dinamik bir
yapõ kazandõran JavaScript, istemci tarafõnda çalõşõr. Kullanõmõ giderek
yaygõnlaşan JavaScript, daha sonra Microsoft firmasõnõn Internet Explorer Web
tarayõcõsõnda da kullanõlabilir hale gelmiştir. Günümüzde tüm tarayõcõlarõn
desteklediği
bir script dilidir.
JavaScript kodlarõ yazmak için Notepad gibi bir metin editörü yeterlidir. Kodlar
<script>...</script> etiketleri arasõnda yazõlmalõdõr.
Bu kod alanõ içinde yorum satõrlarõ için // ve /* ... */ ifadeleri kullanõlabilir.
Sadece bir satõr yorum satõrõ yapõlacaksa // ifadesi kullanõlõr.
// bu satõr yorum satõrõdõr.
Birden fazla satõr yorum satõrõ yapõlacaksa, satõrlarõn başladõğõ yere /*, bittiği
yere */ ifadeleri yerleştirilir.
/* yoruma alõnan 1. satõr
2. satõr
...
*/
JavaScript kodlarõ HTML sayfalarõ içine <head> etiketlerine gömülü olarak veya
.js uzantõlõ dosyalara referans gönderilerek HTML içinden çağrõlabilir.
280 Modül 9:
JavaScript dilinde nesneler, nesnelere uygulanan olaylar ve olaylara ilişkin görevler vardõr. Bir nesneyi tõklamak, üzerine gelmek, üzerinde dolaşmak gibi işlemler,
sayfa ile kullanõcõnõn etkileşimli olarak çalõşmasõnõ sağlar.
JavaScript, aynõ bir programlama dilinde olduğu gibi değişkenlere, klavyeden
bilgi alma, ekrana çõktõ verme işlemlerine, koşul ve döngü yapõlarõna, fonksiyon,
nesne ve olay kavramlarõna sahiptir.
Kod 9.8: Örnek JavaScript
<html>
<head><title>onClick</title>
<script language="javascript">
function merhaba()
{
alert ("beni tikladiniz");
}
</script>
</head>
<body>
<input type="button" name="tikla" value="tikla"
onClick=merhaba()>
</body>
</html>
script etiketinin language attribute değeri ile kullanõlacak script dili belirtilir.
JavaScript kullanõlmasõ için burada language=.javascript. bildirimi yapõlõr.
Kod 9.9: Örnek JavaScript
<html>
<head>
<title>JavaScript Örneği</title>
</head>
<body>
<br> Bu yazõ html ile yazõldõ.
<br>
<script language="JavaScript">
document.write("İşte bu ise JavaScript ile yazõldõ!")
</script>
<br>
Bu yazõ yine HTML ile yazõldõ.
</body>
</html>
Buradaki script ifadesi head etiketleri arasõnda bir fonksiyon olarak değil,
body etiketleri arasõnda satõr halinde kullanõlmõştõr.
Web Programlamaya Giriş 281
Değişkenler
var anahtar sözcüğü ile yeni bir değişken oluşturulur. Tür bilgisi saklanmaz.
Sayõsal değerler verildiğinde işlem yapma yeteneğine sahip olurlar. Çift tõrnak
içinde değer verildiğinde ise metin ifadesi olarak anlaşõlõr.
Dikkat edilmesi gereken nokta değişkenlerin küçük . büyük harf duyarlõ
olmasõdõr. Bazõ tarayõcõlar için değişken isimlerinde bu duyarlõlõk göz önünde
bulundurulmazken, çoğu tarayõcõda küçük . büyük harf duyarlõlõğõna dikkat edilir.
Bu nedenle her değişken adõ bu durum göz önünde bulundurularak
verilmelidir.
var deger1;
var deger2=20;
var deger3=30;
var ay=.Mayõs.;
var yil=.2005.;
var degerToplam=deger2+deger3;
var tarih=ay+yil;
Satõrõn sonunda sonlandõrma karakteri olarak ; kullanõlõr. degerToplam isimli
değişkende 20 ve 30 değerleri toplanarak elde edilen 50 değeri tutulurken,
tarih isimli değişkende, ay ve yil değişkenlerinden gelen metin ifadeleri
birleştirilir ve .Mayõs2005. değeri oluşturulur.
Koşul Operatörü
[koşul ifadesi] ? koşul_doğru_ise : koşul_yanlõş_ise
Değişken tanõmlarken aritmetik, karşõlaştõrma ve mantõksal operatörler
kullanõlabilir. Bunlara ek olarak C dilinden gelen koşul operatörleri kullanõlabilir.
Bir if deyiminin tek satõrda yazõlmõş haline benzeyen bu operatörün kullanõmõ
Kod 9.10.da gösterilmiştir.
Genel kullanõm biçimi ise şöyledir:
[koşul ifadesi] ? koşul_doğru_ise : koşul_yanlõş_ise
Kod 9.10: Koşul Operatörünün Kullanõmõ
var a=5;
var b=7;
var c=14;
var d=23;
var e;
e = (a + b < c) ? d : a+b ;
282 Modül 9:
Bu kodda, (a + b < c ) ifadesi ile elde edilen sonuca göre, e değerine d
veya a + b değerleri atanõr.
a + b işleminin sonucu olan 12 değeri c değerinden küçük olduğu için ifade
doğru olarak sonuçlanõr. Bu durumda d değeri, e değişkenine atanõr ve e
değişkeni 23 değerini taşõr.
Bu koşulu if deyimi ile yazõlabilir.
if (a + b < c)
e = d;
else
e = a+ b;
Operatörler
JavaScript operatörleri, Visual Basic .NET dilinde kullanõlan operatörlerden biraz
farklõdõr. Örneğin mod almak için Mod anahtar sözcüğü yerine % mod alma
operatörü kullanõlõr.
Atama Operatörü ( = )
Değişkenlere değer atamak için = karakteri kullanõlõr.
Aritmetik Operatörler
Değişkenler üzerinde aritmetik işlemler yapmak için tanõmlanmõş operatörlerdir.
Tablo 9.1: Aritmetik Operatörler
Operatör Açõklama
+ Sayõsal değişkenleri toplar. String değişkenlerini birbirine ekler.
- Sayõsal değişkenlerde çõkarma işlemi yapar.
* Sayõsal değişkenlerde çarpma işlemi yapar.
/ Sayõsal değişkenlerde bölme işlemi yapar.
% Sayõsal değişkenlerde mod alma işlemini yapar.
++ Sayõsal değişkenlerde artma işlemini yapar.
-- Sayõsal değişkenlerde azalma işlemini yapar.
Visual Basic .NET aritmetik operatörlerinden farklõ olan ++ ve -- operatörleri, C
dili operatörlerindendir. Değişkeni bir artõrma veya bir azaltma yeteneğine
sahiptir. Prefix (değişken isminin önünde) ve subfix (değişken isminin arkas
õnda) olmak üzere iki kullanõm şekli vardõr.
Değişkenin prefix kullanõmõ Kod 9.11.de gösterilmektedir.
Kod 9.11: Prefix ++ operatörü
var x = 5;
// x değişkeni bir artõrõlõr ve ekrana 6 değeri yazõlõr
Web Programlamaya Giriş 283
document.write(++x);
Değişkenin subfix kullanõmõnda ise önce değer alõnõr, akõş bir sonraki satõra
geçtikten sonra değişkenin değeri bir artõrõlõr.
Kod 9.12: Subfix ++ operatörü
var x = 5;
/* x değişkeni önce yazõlõr, sonra bir artõrõlõr.
Yani ekrana 5 yazõlõr. */
document.write( x++);
// Ekrana 6 değeri yazõlõr.
document.write(x);
Karşõlaştõrma Operatörleri
JavaScript kodlarõ içinde de karşõlaştõrma işlemleri yapõlabilir. Ancak bu
operatörler Visual Basic .NET karşõlaştõrma operatörlerinden biraz farklõdõr.
Tablo 9.2: Karşõlaştõrma Operatörleri
Operatör Açõklama
== Eşit midir? operatörü. İki değer de birbirine eşit ise true sonucu verir.
!= Eşit değil midir? operatörü. İki değer birbirine eşit değilse true sonucunu
verir.
< Küçük operatörü. Sol taraf değeri, sağ taraf değerinden küçükse true
sonucunu verir.
> Büyüktür operatörü. Sol taraf değeri, sağ taraf değerinden büyük ise
true sonucunu verir.
<= Küçük eşittir operatörü.
>= Büyük eşittir operatörü.
İki değerin eşitliğinin karşõlaştõrõlmasõ için == operatörü kullanõlõr.
if (a == b) {
document.write(.a ile b değişkeni eşit.)
}
İki değerin eşitsizliğinin karşõlaştõrõlmasõ için != operatörü kullanõlõr.
if (a != b) {
document.write(.a ile b değişkeni eşit değildir.)
}
Mantõksal Operatörler
Mantõksal operatörler ise Visual Basic .NET mantõksal operatörlerinden tamamen
farklõdõr.
284 Modül 9:
Tablo 9.3: Mantõksal Operatörler
Operatör Açõklama
&& And (ve) operatörü. İki tarafta belirtilen ifadeler true ise, sonuç olarak
true değerini döndürür.
|| Or (veya) operatörü. İki tarafta verilen ifadelerden en az birinin doğru
olmasõ durumunda true değerini döndürür.
! Not operatörü: Koşulun yanlõş olmasõ durumunda true değerini verir.
Visual Basic .NET programlamada And operatörünün karşõlõğõ && operatörüdür.
Or operatörünün karşõlõğõ ise || operatörüdür. Bir değerin değili anlamõna gelen
Not operatörünü karşõlõğõ ise ! operatörüdür.
Klavyeden Bilgi Almak ve Ekrana Çõktõ Vermek
JavaScript dilinde kullanõcõdan bilgi almak için formlarõn dõşõnda promt komutu
kullanõlõr. promt komutu ile kullanõcõdan bilgi alõrken ayrõ bir pencere açõlõr.
prompt(.soru., .cevap için rehber ifade.);
Kod 9.13: Prompt ile kullanõcõdan değer almak
var sehir;
sehir=prompt(.Yaşadõğõnõz şehrin trafik kodunu giriniz.,
.İstanbul için 34, Ankara için 6 gibi.);
JavaScript dilinde HTML sayfasõna yazõ yazdõrmak için write komutu kullanõlõr.
document.write(.Yazõlmak istenen değişkene ilişkin
açõklama., degisken);
Görüldüğü gibi write komutu document fonksiyonuyla birlikte kullanõlõr.
Koşul ve Döngü Yapõlarõ
Programlamanõn akõşõnõ yönlendiren koşul yapõlarõ ve döngülerdir. Döngüler
birden fazla gerçekleştirilecek işlemlerin blok halinde yazõlmasõnõ sağlar.
if koşul ifadesinin genel yapõsõ:
if ( koşul )
// koşul doğru ise çalõşacak ifade
// koşul yanlõş ise akõşõn devam edeceği alan
Koşulun doğru olmasõ halinde yapõlacak işlemler bir satõrdan fazla yer tutuyorsa,
bu satõrlar {} parantezleri ile gruplanõr. Visual Basic .NET dilindeki gibi
End if ifadesi kullanõlmaz.
Web Programlamaya Giriş 285
if (koşul) {
//koşul doğru ise
}
else {
//koşul yanlõş ise
}
Tekrarlanan belirli bir işlemi yaptõrmak için kullanõlan döngülerin JavaScript
dilindeki kullanõmõ tamamen C dilinin yapõsõna göre tasarlanmõştõr.
for döngüsünün genel kullanõm biçimi aşağõdaki gibidir:
for(başlangõç_değeri; döngü_ifadesi; değişecek_değişken_adõ)
{
//yapõlacak işlemler
}
Kod 9.14: For Döngüsünün Kullanõmõ
var a;
var b = 10;
for (a = 1; a <= b; a++) {
document.write( a , .. sayõ., .<br>.);
}
while döngüsünün yapõsõ:
while ( döngü_koşul_ifadesi )
{
//şart doğruysa yapõlacak işlemler
}
//şart doğru değilse yapõlacak işlemler
Visual Basic .NET dilindeki Select Case döngüsüne karşõlõk olarak JavaScript
dilinde switch-case ifadesi vardõr. Genel kullanõmõ:
switch (parametre)
{
case .ifade1.:
// ifade1 koşulu doğru ise yapõlmasõ istenenler
break; //break ile diğer koşullarõn da çalõşmasõ
//engellenir ve döngüden çõkõlõr.
case .ifade2:.
//ifade2 koşulu doğru ise yapõlmasõ istenenler
break;
}
286 Modül 9:
Fonksiyonlar
JavaScript dilinde, kodlarõn yeniden kullanõlabilmesi için kullanõlõr. Genel kullan
õmõ:
function fonksiyon_ismi(parametre1, parametre2)
{
//yapõlacak işlemler
}
Fonksiyon içinde hesaplanan değer, return ifadesi ile geri döndürülür.
Kod 9.15: JavaScript ile Toplama
function topla(deger1, deger2)
{
var sonuc= deger1+deger2;
return sonuc;
}
topla fonksiyonuna gönderilen deger1 ve deger2 değişkenleri toplanarak
fonksiyon içinde oluşturulan sonuc değişkenine atanõr. return sonuc; ifadesi
ile topla fonksiyonunda elde edilen sonuç geri döndürülür.
JavaScript Nesneleri
JavaScript içinde bazõ işlemler, bazõ nesnelerin fonksiyonlarõ çağrõlarak yapõlõr.
Örneğin document.write komutu, aslõnda document nesnesinin write metodunu
çağõrõr.
Window Nesnesi
Genel pencere özelliklerini tutan nesnedir. Pencere açma ve kapama işlemleri
için bu nesne kullanõlõr.
Genel kullanõmõ:
window.open(. url .,.pencere_ismi.,.pencere_ozellikleri.);
window.close();
open komutu ile yeni bir pencere açõlõrken, close komutu ile pencere kapatõlõr.
Yeni bir pencere açmak için open komutuna ilk parametrenin girilmesi zorunludur.
Pencere_ismi, birden fazla pencere ile işlem yapõldõğõ durumlarda
kullanõlabilir. Pencereye ait özellikler Tablo 9.4.te belirtilmiştir.
Tablo 9.4: Pencere Özellikleri
Özellik Açõklama
Menubar Menü çubuğunun görüntülenmesini sağlar.
Toolbar Araç çubuğunun görüntülenmesini sağlar.
Web Programlamaya Giriş 287
Tablo 9.4: Pencere Özellikleri
Özellik Açõklama
Location Adres çubuğunun görüntülenmesini sağlar.
Status Durum çubuğunun görüntülenmesini sağlar.
Scrollbars Kaydõrma çubuklarõnõn görüntülenmesini sağlar.
Resizable Penceresinin boyutlandõrõlmasõnõ sağlar.
Width Açõlan pencerenin pixel genişliğini belirtir.
Height Açõlan pencerenin pixel yüksekliğini belirtir.
Left Ekranõn sol noktasõ ile pencere arasõndaki uzaklõğõ verir.
Top Ekranõn üst noktasõ ile pencere arasõndaki uzaklõğõ verir.
Kod 9.16: Yeni bir pencere açmak
window.open("http://www.bilgeadam.com", "bilgeadam" ,
"menubar=no, toolbar=no, scrollbars=yes, location=yes,
width=300, heigt=300";)
Internet tarayõcõsõ ile daha önce ziyaret edilmiş sayfalara tekrar ulaşabilmek için
window.history.go(-1) komutu kullanõlabilir. -1 ifadesi ile bir önceki sayfaya
gidilir. Sayõ artõrõlarak daha önceki sayfalara da gidilebilir.
Internet tarayõcõsõnõn en alt kõsmõnda bulunan status penceresine erişmek için
window.status komutu kullanõlõr.
window.status =.JavaScript öğreniyoruz!.;
Navigator (Tarayõcõ) Nesnesi
JavaScript, tarayõcõlarõ da bir nesne olarak değerlendirir. Kullanõcõnõn tarayõcõsõna ilişkin bilgileri almak için Tablo 9.5.te belirtilen değişkenler kullanõlabilir.
Tablo 9.5: Navigator (Tarayõcõ) Nesnesinin Değişkenleri
Değişken İsmi Açõklama
Appname Tarayõcõ adõ
Appversion Tarayõcõ versiyonu
AppCodeName Tarayõcõnõn kod adõ
UserAgent Tarayõcõnõn sunucuya kendini tanõtõrken verdiği isim.
Kod 9.17: Tarayõcõ nesnesi ile bilgi almak
<html>
<head>
<title>Browser’õmõzõ tanõyalõm</title>
<METAcontent=text/html;CHARSET=iso-8859-9 httpequiv=
Content-Type>
288 Modül 9:
<script language="Javascript">
function Tarayici()
{
var browseradi=" ";
browseradi +="Browser:"+navigator.appName +"\r. ;
browseradi +="Surumu:"+navigator.appVersion +"\r. ;
browseradi +="Kodadi:"+navigator.appCodeName+"\r. ;
browseradi +="Useragent:"+navigator.userAgent+"\r. ;
alert(browseradi);
}
</script>
</head>
<body onLoad="Tarayici()"></body>
</html>
Olaylar
Bir Web sayfasõ üzerinde kullanõcõnõn her türlü hareketi kontrol edilebilir. Bir
kontrolün üzerine gelmesi, dolaşmasõ ve üzerinden ayrõlmasõ gibi hareketlere
olay denir. Bu olaylar ise onClick, onMuoseOver, onMouseOut, onSubmit,
onReset, onChange, onLoad, onUnLoad, onError, onAbort, onFocus, onBlur
olarak belirtilebilir.
onClick
Internet sitelerinin çoğunda en sõk kullanõlan JavaScript olayõdõr. Sayfa üzerinde
bir nesnenin fare ile tõklanõp bõrakõlmasõ sonucunda gerçekleşen olaydõr.
Link, button ve resim nesneleri tõklanarak onClick olayõ tetiklenebilir.
Nesnelerin etiketlerinde ise onClick olaylarõnõ tetikleyen fonksiyonlarõn ismi
bildirilmelidir.
Kod 9.18: onClick Olayõ
function tikla()
{
alert(.Tõklama işlemi gerçekleşti..);
}
<input type="button" name="tikla" value="tikla"
onClick=tikla()>
Düğme tõklanõp bõrakõldõğõnda, onClick olayõ tetiklenir ve bu olayla
ilişkilendirilen tikla fonksiyonu devreye girer. alert komutu ile ekrana bir mesaj
kutusu çõkar.
Ayrõca onDblClick, çift tõklama olayõnõ tetikler.
Web Programlamaya Giriş 289
onMouseOver, onMouseOut
Fare nesnenin üzerindeyken onMouseOver, fare nesne üzerinden ayrõlõnca
onMouseOut olaylarõ devreye girer.
Kod 9.19: onMouseOver ve onMouseOut Olayõ
function nesneUzerinde()
{
window.status="Şu anda nesne üzerindesiniz.";
}
function nesneDisinda()
{
window.status="nesnenin dõşõna çõktõnõz." ;
}
<a href="http://www.google.com"
onMouseOver = nesneUzerinde()
onMouseOut = nesneDisinda()> Google
</a>
onSubmit
Web sayfalarõnda ziyaretçinin forma bilgi girip sunucuya göndermesi durumlar
õnda onSubmit devreye girer. Gönderilecek forma girilen verilerin uygunluğunun
kontrolü bu olayõn tetiklediği fonksiyonlara yaptõrõlabilir.
Kod 9.20: onSubmit Olayõ
function dogrula()
{
confirm (.Formu doldurduysanõz OK’i tõklayõnõz’);
}
<form action="mail.pl" method="post" onSubmit="dogrula()">
confirm komutu, kullanõcõya Ok ve Cancel düğmelerinden oluşan bir diyalog
penceresi açar.
onReset
Form içinde kullanõlan tüm metin alanlarõnõn temizlenmesini sağlar. Doldurulan
formda yanlõşlõk olduğunda bu olay tetiklenir. Kullanõcõya onay penceresi çõkartmak
için de kullanõlabilir.
Kod 9.21: onReset Olayõ
function sil()
{
return confirm(’Silmek istediginize emin misiniz?’);
290 Modül 9:
}
<form onReset="return sil()">
<input type="text" name="mail">
<input type="reset" value="sil">
</form>
onChange
Bilgi girişi yapõlan alanlarda, değişikliğin gerçekleştiği bilgisi onChange olayõ ile
tetiklenir.
Kod 9.22: onChange Olayõ
function degisti()
{
alert(.Seçimi değiştirdiniz.);
}
<form method="post">
<p>
<select name="degistir" size="1" onChange="degisti()">
<option>Istanbul
<option>Ankara
<option>Antalya
</select>
</form>
Sunulan seçeneklerden herhangi biri işaretlendiğinde uyarõ penceresi çõkar.
onLoad, onUnLoad
onLoad olayõ sayfaya giriş yapõldõğõnda gerçekleşir. onUnLoad olayõ sayfadan
çõkõldõğõnda gerçekleşir.
Kod 9.23: onLoad ve onUnLoad Olayõ
function giris()
{
alert(.Sayfaya Giriş Yaptõnõz!");
}
function cikis()
{
alert("Sayfadan çõktõnõz..");
}
<body onLoad="giris()" onUnload="cikis()">
</body>
Web Programlamaya Giriş 291
onError, onAbort
Ziyaret edilen sayfadaki nesneler, çeşitli nedenlerden dolayõ tam olarak
yüklenememiş olabilir. Genellikle resim nesnelerinin yüklenmesinde problem
çõkabilir. Bu tür durumlarõ ziyaretçiye bildirmek için onError veya onAbort
olaylarõ kullanõlõr.
Kod 9.24: onError ve onAbort Olayõ
<img src="resim.gif" onError="alert(.Resim dosyasõ
yüklenemedi’)">
onFocus, onBlur
onFocus olayõ kullanõcõ kontrollerine giriş yapõlõrken gerçekleşir. onBlur olayõ
ise ve kullanõcõ kontrollerinden çõkõş yapõlõrken gerçekleşir.
Kod 9.25: onFocus ve onBlur Olayõ
function dogru()
{
document.form1.mesaj.value="Lütfen hata yapmayõn!";
}
function sor()
{
document.form1.mesaj.value="isminiz alõndõ";
}
<form name="form1" method="post">
<p><h3>Lütfen isminizi yazõnõz!</h3></p>
<input type="text" size="20" name="isim"
onfocus="dogru()" onblur="sor()">
<p>
<input type="text" name="mesaj"></p>
</form>

Benzer belgeler