HTML Cambazlıkları

Ne sihir.. Ne keramet.. Web'de iki, haydi bilemediniz 12 satırlık komutla, mucizeler yaratmanın ne sihirle, ne kerametle ilişkisi var. Herşey, marifete dayanıyor. Bu kez marifetin adı, HTML püfleri ve DHTML.
Televizyonda en çok izlenen belgesellerden biri, film sanayiinin teknik hileleridir. Sinemada teknik hile, olmayanı varmış, ya da başka bir şeymiş gibi göstermek olduğu halde, Web'de "hile" olamaz. Web'de sihir ve keramet, sadece ziyaretçinin ekranında ancak video montaj yoluyla elde edilebilecek bir etkiyi, HTML kodları ile oluşturmayı amaçlar. Bu konuyu böylesine derinlemesine ele almamızın sebeplerinden biri sinema hilelerine meraklı sinema seyircilerine Hollywood tekniklerinin içyüzünü açıklayan belgesellerin yapım sebebiyle aynı: "Bakın ekranınızdaki bu inanılmaz etkiler aslında nasıl kolay sağlanıyor, görün!" demek. İkinci ve asıl amacımız ise, son altı ayda ülkemizde tanık olduğumuz Web sitesi sayısındaki patlamaya paralel olarak, tekniği zayıf Web sayfası sayısındaki yürekler acısı duruma engel olmak. Oradan buradan derlenmiş ve bu arada en hayatî satırları atılmış Javascriptler; parametreleri eksik Java Applet'ler; yukarıdan aşağı, mesela "HelveticaTürk" harfine atıf yapan, fakat bu harf türünün sadece kendi bilgisaylarında olabileceğini hesaba bile katmayan Webmaster'ların incileri! Kısaca, Webciliğimizin biraz sihire, biraz keramete ve çok ölçüde marifete ihtiyacı var.
WEBCİNİN TAKIM ÇANTASI
Her sanat erbabının bir takım çantası ve içinde sanatın gerektirdiği alet edavat bulunur. Başka bir deyişle alet işler, el övünür. Bir Webcinin bilgisayarında ise bazı programların olması gerekir. Hele Web'de cambazlık ölçüsünde ustalaşmak istiyorsanız, bu programlar olmadan yola çıkamazsınız. İşte size gerekli alet-edevat:
Macromedia Dreamweaver
(www.macromedia.com)
Cascading Stylesheet yazmak ve Layer (katman) teknolojisinden yararlanmak için büyük kolaylıklar sağlıyor. Özellikle katmanlara (DIV, SPAN, LAYER VE ILAYER) hareket kazandırmak için gerekli JavaScript kodlarının yazılmasında, JavaScript dilini çok iyi bilmeyen tasarımcılar için eşi bulunmaz bir hazine.
GoLive CyberStudio
(www.golive.com)
Dreamweaver'ın Windows ortamında yaptığını ve daha fazlasını Macintosh ortamı için yapabilen bu program, tasarımı Mac'de yapanlar için gerekli bir araç. Sadece WYSIWYG görünümlü bir HTML editörü değil, fakat aynı zamanda son derece becerikli bir JavaScript yazarı.
Photoshop
(www.adobe.com)
Web'e veya kağıda yönelik bütün grafik işleriniz ve özellikle bitmap tabanlı resim, fotoğraf ve diğer grafikler için, bu amaçla yazılmış programların Rolls Royce'u. O kadar çok rakibi olmasına rağmen, yıllardır bilgisayarda fotoğraf ve resim işlem yazılımlarının adeta standardı olan Photoshop ile, bugün ve yarın her türlü grafik sorunuzu halledebilirsiniz.
HTML Editörü
HTML kodu yazmak için, aslında bir düz yazı programı yeter. Fakat bunun için bütün HTML kodlarını bilmeniz ve çok dikkatli olmanız gerekir. Özellikle açılan ve kapanan HTML kodlarında kapatma etiketini unutmak mümkündür. Microsoft FrontPage, Netobjects, Corel Web Suite, Adobe PageMill, ve daha niceleri, kelime-işlem programı kolaylığıyla ve HTML kodlarını bilmeden HTML yazmanızı sağlayabilir. Fakat bu programları, Web tasarımında ana araç olarak kullanmak, tasarımcıyı HTML'in inceliklerini öğrenmekten alıkoydukları ve özellikle DHTML alanında kendi bildiklerini tarzdan başkasına izin vermedikleri için tavsiye edilmez. Yine bu programlar gibi WYSIWYG tarzı, fakat kendi bildiğinde israr etmeyen, açtığnız HTML kodunu kapatan etiketi kendiliğinden yazan, bütün HTML etiketlerini gruplar halinde ekranın bir kenarında sunarak, hatırlatan HTML editörlerinden birini seçebilirsiniz. Paul Lutus'un Arachnophilia adlı editörü başta olmak üzere, bu işi yapabilecek çok program bulabilirsiniz.
HTML Kılavuzu
Başarılı her Web tasarımcısının masasının üzerinde bir HTML 4 kılavuzu bulunur. Bu kılavuzu edinmek çok kolay: Web Browser'ınızla "http://www.w3.org/TR/REC-html40/struct/global.html#h-7.4.4.2" adresine gidin ve görüntülenen belgeyi sabit diskinize kaydedin. İşte sizi HTML'in yerini XHTML dili alıncaya kadar idare edecek kılavuza sahip oldunuz! Bu belgenin İngilizce olması, HTML'e aşina bir tasarımcı için sorun olmamalıdır; çünkü bu belgede sayısız örnek yer alıyor.
HTML'İ İYİ BİLİYOR MUSUNUZ?
Web'de usta işi siteler ve sayfalar yapmak için, herşeyden önce HTML'in bütün inceliklerine hakim olmanız gerekiyor. Sonra, buna Dinamik HTML unsarlarını eklemeniz şart. Web sayfalarında gerçekten usta işi denilebilecek uygulamalar, doğru ve yerinde kullanılan HTML komutlarına, Javascript veya VBScript dilleriyle yazılmış programlar ve HTML unsurlarına Cascading Stylesheets denen stil komutları eklemekle mümkündür. Bir sirkte, tel üzerinde tek tekerlekli bisiklet süren ve elindeki uzun değneyi bir sağa bir sola oynatarak dengesini bulan bir cambaz düşünün. Benzetmek gibi olmasın, ama Web'de cambazlık yapacaksanız, üzerinde yürüdüğünüz HTML telini, dengenizi sağlayacak Script çubuğunu ve üzerine çıkacağınız Stil bisikletini iyi tanımanız gerekir. İşe, HTML'in inceliklerinden başlayabiliriz.
DURAGAN HTML'İN İNCELİKLERİ
Web'in ortak dili HTML, dördüncü sürümüne ulaşmış bulunuyor. World Wide Web Consortium (www.w3c.org) tarafından düzenlenen bir ortak çabanın ürünü olan HTML'in ziyaretçilerin birbirinden farklı Browser programları tarafından aynı şekilde yorumlanması ve tasarımcının niyet ettiği gibi görüntülenmesi için, W3C'nin koyduğu ilkelere harfi harfine riayet etmeniz şart.
Uyulması gereken temel ilkelerin başında ise, , ve etiketlerinin sırası ve içlerine nelerin konabileceği konusundaki kurallar geliyor. Bir HTML dosyasının HEAD bölümünde yer alması gereken etiketler, bu etiketin dışına konursa, istenmeyen iki durum meydana gelir: Ziyaretçinin Browser'ı sayfayı sizin istediğiniz gibi yorumlayamaz; sayfanız Internet'in endeksini çıkartan belli başlı ara-bul firmaları tarafından doğru tasnif edilemez ve arandığında herhangi bir ihtiyaç sahibi tarafından arandığında bulunamaz.
Başarılı bir Web sayfası oluşturmak istiyorsanız, etiketinin içinde, şu unsurlara yer vermelisiniz:
BASE: İçinde yer aldığı sayfanın mutlak veya göreli URL'ini belirtir ve çok sayfalı Web sitelerine Browser açısından istikrar kazandırır. Browser'ların Geri düğmesi, bir sayfadan önceki sayfaya gidebilmek için buradaki bilgiyi kullanır. İçinde üç özellik unsuru (attribute) yer alır:
HREF: Sayfanın URL'i belirtir.
TARGET: Frameset etiketi ile birlikte kullanıldığında, çerçevelere isim verilmişse sayfanın yeralacağı çerçeveyi belirtir.
FRAMESET (Sayfanın yükleneceği pencere Target'ta belirtilmemişse, ya isim verilmiş bir çerçeveye ya da Browser'ın varsaydığı , _blank, _parent, _self veya _top çerçeveye yükleneceğini belirtir. Bunlar, sırasıyla, yeni ve adlandırılmamış bir Browser penceresini, mevcut sayfayı açtıran sayfanın çerçevesini, mevcut sayfanın kendi çerçesini ve çerçeveli de olsa mevcut Browser penceresinin tümünü kasteder.
META: Bir Web sayfasındaki bilgiler hakkındaki bilgileri (meta/üst bilgileri) içerir. İki unsuru sık kullanılır:
NAME: Sayfanın yazarı, sayfanın yayın tarihi, vb., bilgiler içerir. şeklinde yazılır.
HTTP-EQUIV: İçinde yer aldığı sayfanın, Web Server tarafından ziyaretçiye gönderilmesinde oluşturulacak Response Header (Karşılık Başlığı) bölümünde yer alacak bilgiler içerir. şeklinde yazılır.
Sık Kullanılan Meta Bilgilerinden örnekler:

"keywords" Internet'teki belli başlı ara-bul kurumlarının siteleri araştırır ve içeriklerine göre gruplandırırken, sınıflandırmada kullanmaları istenen kilit kelimeyi belirtir. CONTENT hanesine sitenizin hangi kelimelerle arandığında bulunmasını istiyorsanız, o kelimeleri yazın. Söz gelimi, Yahoo'da "Türkçe MP3" kelimeleriyle arama yapan birisinin sizin sitenizi bulmasını istiyorsanız, bu etiketi şöyle yazmalısınız:


Bazı ara-bul firmaları "description" etiketini tanır ve karşılığı olan metni, sitenin tanımlaması olarak arama yapan kişiye bildirir. Bu etiketi tanımayan ara-bul firmaları ise sayfanın ilk bir kaç kelimesini tanımlama aracı olarak kullanır. Örnek:


Bazı ara-bul firmaları arama yapanlara siteleri sunarken sitenin yazarını "author" etiketini okumak suretiyle tanır ve karşılığı olan metni, arama yapan kişiye bildirir. Örnek:


Bu sayfanın 4 Nisan günü Griniç saatiyle gece yarısından sonra her türlü ara-bul firmasının endeksinden (ve ziyaretçilerin bilgisayarlarında geçici Internet dosyaları deposundan) silinmesini sağlar.

Bu sayfanın 5 saniye sonra Browser penceresinden silinmesini ve yerine sitem.com adresindeki "iki.htm" belgesinin görüntülenmesini sağlar.
SCRIPT: Web sayfalarına, Javascript ile VBScript dilleri, HTML'in kendi orijinal komutları arasında bulunmayan işlevler kazandırır. Javascript ile Java programlama dili, adlarındaki benzerliğe rağmen uzaktan-yakından ilgili değildir; Javascript gerçekte C dilinden türetilmiştir. VBScript ise Microsoft'un Uygulamalar İçin Visual Basic, VBA, dilinden türetilmiştir. Bir Web sayfasında kullanılacak Script dilinin tipi ve kaynağı, HEAD bölümünde deklare edilmek suretiyle, bütün HTML'de bir daha tip ve kaynak belirtilmeden kullanılabilir. Ancak tasarımcı isterse, HEAD bölümü dışında bir yerde mahallî Script deklarasyonunda da bulunabilir. HEAD bölümünde Script dili kullanılarak oluşturulacak fonksiyonlara, sayfanın ileri bölümlerinde isimleriyle atıfta bulunmak mümkündür.
STYLE: Web Browser programlarının HTML'in ilk günlerinden kalma 18 metin biçimlerdirme, 12 metin sunuş etiketi vardır. Buna yapısal belge etiketlerinden altı başlık etiketini de eklerseniz, bir sayfada herhangi bir metni biçimlendirmek için 26 adet önceden-tanımlanmış şekil kullanabilirsiniz.
HTML DEYİP GEÇMEYİN!
Web cambazlığına özenenlerin çoğu, HTML'in yorumu Browser'lara bırakılmış varsayılan biçimlendirme etiketleri ile çok şey yapılamayacağı şeklinde yanlış bir kanısı vardır. İşte bu etiketlerden bazıları ile oluşturabileceğiniz etkilerden bir kaç örnek:
..: İçindeki metnin kısaltma olduğunu gösterir ve ziyaretçi Mouse işaretçisini bu kelimenin üzerinde tutarsa, kelimenin açık şeklini gösterir. Bu etiket, Windows veya Macintosh'un yerel yardım ve ipucu kutuları gibi, bilgi kutuları oluşturmakta kullanılabilir:

Bu konuda, PCW çok güzel şeyler yazmıştı.



.. İçindeki metnin bir yerden alıntı olduğunu gösterir:

Bu konuda,HTML Tasarım Rehberi kitabına bakabilirsiniz.


.. İçindeki metnin bilgisayar programı veya benzeri bir Script parçası olduğunu gösterir:

Bu paragrafın stili şöyle olmalıdır:

.shadow {
font-size: 16pt;
color: #000000;
font-family: "Arial";
}

Daha sonra normal paragrafa dönebilirsiniz.


.. İçindeki metni, daha küçük harfle ve normal satırın altına indirerek, subscript şeklinde yazdırır. Özellikle bilimsel formül yazarken kullanılabilir:
Dolayısıyla, suyun formülü, H2O şeklinde yazılır.
.. İçindeki metni, daha küçük harfle ve normal satırın üzerine çıkartarak, supercript şeklinde yazdırır. Özellikle bazı isimlerde kullanılabilir:
Romanın kahramanının adı Mike McCormick idi.
,
ve
Özellikle tanımlama ve benzeri liste türü açıklamalarda, tanımlanan kelime ile tanımlama paragrafını, kelime-işlem veya masaüstü yayıncılılık programı hassasiyetiyle, içerden başlatmakta bu iki etiket birlikte kullanılabilir:
DHTML
Kelime anlamı Dinamik Hyper Text İşaretleme Dili olup, Web sayfalarına dinamik nitelik kazandıran teknolojiler bütünüdür.
ASP
Kelime anlamı Aktif Server Sayfaları olup, Microsoft'un Dinamik Web sitesi yapımına getirdiği yeni teknolojileri içerir.
:
Ne var ki, bu görüntülenme tarzı önceden belirlenmiş biçim etiketleri, bu tarzın her zaman tasarımcının elde etmek istediği etkiye uygun olmaması ve HTML etiketlerinin bazen bir Browser'dan diğerine farklı şekil göstermesi çoğu zaman tasarımcıya "Ah, şu metne şu şu özellikleri verecek bir etiket olsa!" dedirtir. İşte bu gibi durumlarda tasarımcının imdadına koşmak amacıyla icad edilmiş birinci araç Script ise ikinci araç Style etiketidir.
Bir HTML belgesi, üç ayrı tarzda stil komutu kabul eder ve bunları tabir yerinde ise üstüste yığarak, en son talimatı yerine getirir. Bu sebeple, HTML'in bir uzantısı olan stil belirleme yoluyla belge biçimlendirme tekniğini, Cascading Style Sheets, denir. Cascading, "birbirinin üzerine yığılma," Style Sheets ise stil komutlarının içinde yer aldığı talimat belgesi anlamına gelir.
Bir Web sayfasına ayrı bir belge halindeki stil kağıdını ekleyebilirsiniz; veya Web sayfasının HEAD bölümünde belgenin tümü için geçerli stil komutları koyarsınız; ya da en zor yola giderek, her bir paragrafı bizzat kendi

etiketininin içindeki stil komutları ile biçimlendirirsiniz. Dışarıdan bir stil kağıdı ekleme yöntemi, sadece bu kağıttaki komutları değiştirerek, bir sitenin (bu kağıt iliştirilmiş) bütün sayfalarındaki biçimlendirmeleri değiştermenize imkan sağlar. HEAD bölümünde yapacağınız stil değişikliği ise o belgedeki bütün biçim etiketlerini etkiler. Bir paragrafın kendi biçim komutları ise o paragraf bittiği anda hükmünü kaybeder. İyi bir Web tasarım tekniği, bütün siteyi bir Style Sheet'e bağlamak ve stil değişikliklerini bu belge üzerinde yapmaktır. Bu sitenin bütün sayfalarına tutarlılık kazandırır. Böyle bir sitede öyle bir sayfa olur ki, sitenin tümüne biçim veren Stil Kağıdı yerine, yeni HEAD bölümündeki stil komutları ile biçimlendirilmesi gerekir. Bu durumda, sayfa, dışarıdaki stil kağıdına bağlı bile olsa, kendi HEAD bölümündeki stil kuralları geçerli olur. Fakat bir sayfada öyle bir paragraf olur ki, sitenin tümünü biçimlendiren veya o sayfayı şekillendiren stiller yerine kendi özel stiline ihtiyaç duyabilir. Bu durumda o paragrafın stilini, kendi

etiketini biçimlendirerek belirlemek en kolay yol olur. Bu durumda ne sitenin stil kağıdı, ne de sayfanın stil bölümü geçerli olur; o paragraf stilini kendi yerel stil komutundan alır.
DİNAMİK HTML'E HOŞGELDİNİZ!
Gerçekte dinamik HTML diye bir şey olmadığını söylersek, Web tasarımcısı olarak hayalleriniz yıkılmaz, herhalde! Dinamik HTML başlığı altında ele alabileceğimiz herşeyi, yukarıda "Duragan HTML" unsurları arasında gördük bile: Script ve CSS.
Script, Browserların 100'e yakın kelime içeren HTML diline, yeni kelimeler kazandıran bir ek sözlük gibidir. Javascrip veya VBScript, programlama dili olarak, Browser ve onun vasıtasıyla Windows, Unix veya MacOS tarafından yorumlanarak anlam kazanırlar. "Yorumlanan" dil, işletim sistemine bir yorumlayıcı eklenmesini gerektirir. Mesela C dili ile yazdığınız bir programın yorumlanması gerekmez; çünkü bu program, işletim sisteminin istediği ve anladığı bütün komutları bilir. Oysa Javascript veya VBScript komutunun, Browser'a bir iş yaptırtabilmesi için önce tercüme edilmesi, yorumlanması gerekir. Bu zorunluk gerçi Script dili ile yazılmış "program" veya "programcığın" yavaşlamasına yol açar, ama Script dilleri genellikle türetildikleri programlama dilinden daha basittir ve daha kolay öğrenilir.
Web'de gerçekten usta bir tasarımcı olmaya niyet eden kişinin, HTML'den hemen sonra, belli başlı iki Browser'ın da ortak Script dili olan Javascript'i derhal öğrenmesi gerekir. VBScript öğrenmek, aktif ve ziyaretçi ile etkileşmeli yeni bir Server teknolojisi olan ASP (Active Server Pages) öğrenmeye ve uygulamaya kararlı kişiler için daha çok kazançlı olacaktır; ancak Netscape bugünkü haliyle VBScript komutlarını tanımamaktadır. Sitesini her iki Browser'ı da kullanan ziyaretçileri dikkate alarak tasarlayan bir Web ustasının, Browser için Javascript, Server için VBScript öğrenmekten başka çaresi yoktur.
"Öğrenmek" dediğimiz zaman, bundan, bilgisayar okullarında öğretildiği tarzda aylar süren bir formel eğitimle bir programlama dilini öğrenmeyi kastetmiyoruz. Çoğu zaman bu iki dilin de nerede ve nasıl kullanıldığını ve bu dilin komutlarının sentaksını (cümle kuruluşunu) öğrenmek yeterlidir. Internet'te istemediğiniz kadar çok bulacağınız Script'leri, kendi sitenize uyarlarken nelere dikkat edeceğinizi bilmeniz gerekir. Bir yerde unutulan bir tırnak, eşittir yerine iki nokta üstüste, ve benzeri mini-mini hatalar yüzünden, bir Script beklediğiniz sonucu vermeyebilir. Bir Web tasarımcısının Script dili öğrenirken amacı, o dili kullanarak, etkileşmeli oyun programı yazmaktan çok, sitesine dinamik unsurlar kazandırmak için yeterli düzeyde, en temel komutları ve bunların yazım tekniğini öğrenmekten ibarettir.
Dinamik HTML tekniğine dayanan Web sayfası ile yapılabilecek işlerin zirve noktalarından birini www.htmlguru.com adresinde görebilirsiniz. Sayfalardaki hemen her unsurun görsel olduğunu, buna karşılık metinle yapılabilecek hiç bir işlemin grafiğe yüklenmediği ve dolayısıyla sayfaların siteden ziyaretçinin bilgisayarına aktarılması için gerekli zamanı asgaride tutan, yine de ziyaretçinin ekranına yansıyacak herşeyi ziyaretçinin talebine bırakan bir dinamizme sahip bir sayfa on adımda elde edilebilir. Buna isterseniz, DHTML'in anayasası da diyebilirsiniz:
1. Kağıt üzerinde hazırlık: Fikrinizi önce kağıda dökün; reklam ajanslarının reklam filmi yaptığı gibi bir senaryo şeması çıkartın. Bu, birinci sayfadan sonuncuya kadar, sitenizdeki bütün sayfaların ekran görüntüsünü kağıt üzerinde resmetmek demektir.
2. Teknikleri belirleme: Hayalinizdeki sitenin oluşumu için kullanılacak teknikleri belirleyin; zayıf olduğunuz tekniklerde kimden yardım isteyeceğinizi düşünün. Günümüzün Web teknolojisi, grafikçinin programcı, metin yazarının grafikçi olmasını gerektiriyor ve kolaylaştırıyor. Hayatında bir suluboya resim yapmamış kişi bile bir grafik programı ve telif hakkından vazgeçilmiş bir kaç grafikle yola çıkabilir ve ortaya en görkemli Web sitelerinde kullanılabilecek kalitede grafikler çıkartabilir. Bu tür bir el yatkınlığını elde etmek için, bol bol alıştırmak yapmak gerekir. Alıştırmanın zamanı ise Web sitesinin çatısını çatmaya başlamadan öncedir.
3. Donanım ve yazılım denetimi: Hayalinizdeki sitenin oluşturulması için gerekli grafik programları, HTML editörü, site yönetim programı, kelime-işlem programı bilgisayarınızda yüklü mü? Bilgisayarınız bu programların hepsini aynı anda çalıştıracak (ve çökmeyecek) RAM, sanal bellek, sabit disk ve grafik kartı ve ekrana sahip mi?
4. Grafik hazırlama: Kullanacağınız grafik unsurları hazırlayın. Zemin grafiği, ziyaretçilerinizin sayfalarınız arasında gidip gelmesini sağlayacak Navigation (seyir) düğmeleri olarak kullanılacak grafikler, içeriğin gerektirdiği grafikler, başlıklar, süsleme unsuru olarak kullanılacak resimler, sabit diskte, belirli bir yerde toplanmış durumda mı? Bu iş söylendiği kadar kolay değildir. Birinci maddede çizdiğiniz sayfa görüntülerinin gerektirdiği bütün unsurları biraraya getirip, telif hakları ile ilgili sorunları halletmek zaman alır. Ayrıca bütün grafiklerinizde aynı tür isimlendirme tekniğini uygulayın: ya hepsinin adı büyük harfle, ya da hepsinin adı küçük harfle yazılsın. Günün birinde dinamik sayfanızda zemin grafiği yerine kırmızı çarpı işareti görmek istemiyorsanız, sitenizin duracağı Server'ın dosya adları konusunda büyük harf-küçük harf ayırt edip etmediğini şimdiden bilmeniz gerekir.
5. Stil belirleme: Sitenizde uygulanacak metin, başlık ve diğer biçimlendirme stillerini belirleyin: Başlıklarınız arasında kavram sıralaması yapın ve yukarıdan aşağı doğru, bütün unsurlarınıza nasıl şekil vereceğini tayin edin. Bunların gerektirdiği stilleri, bir CSS dosyası olarak yazın. CSS dosyası, düz yazı dosyasıdır ve herhangi bir düz yazı programı ile oluşturulabilir. CSS yöntemiyle, HTML'in temel etiketlerinin stillerini değiştirebileceğiniz gibi, kendi vereceğiniz adla kendi stillerinizi oluşturabilirsiniz.
BİR CSS ÖRNEĞİ
Düz yazı dosyası ile oluşturabileceğiniz bir Cascading Style Sheets örneği:
/*
CSS Dosyası
*/
#turkuaz{
BackGround : AquaMarine ! important;
Font : 100%;
}
.Koyumavi{
BackGround : Beige ! important;
Color : DarkBlue ! important;
Font : bold xx-large/1 Sans-Serif, Arial ! important;
}
.Mavi{
Color : #0000FF ! important;
Font : inherit inherit/inherit Sans-Serif ! important;
}
body, p{
Color : #008080 ! important;
Font : normal normal 100%/1 Sans-Serif, Arial ! important;
}
H1{
Color : #800080 ! important;
Font : oblique xx-large/1 Serif, 'Times New Roman' ! important;
Text-Align : center ! important;
Text-Decoration : underline ! important;
}

Web dilinde stili belirlenebilen etiketlere Selector denir. Bu CSS dosyasında, bir ID (kimlikli) türü, iki Class (sınıf) türü Selector tanımlanıyor; iki HTML Selector'ü, varsayılan değerleri yerine yeni biçimlere kavuşturuluyor.
ID türü Selector'ler, adlarının başındaki # işaretinden tanınırlar ve HTML belgesinde kendilerine kimlikleriyle atıfta bulunularak, herhangi bir etikete biçim vermekte kullanılırlar. Örneğin, buradaki "#turkuaz" adlı ID Selector'ünü bir katmanın içindeki yazıyı biçimlemek üzere kullanmak isterseniz, HTML kodunuz şöyle olacaktır:

HTML programcılığının temel ilkesi:


Hiç yılmadan çalışmak ve öğrenmek; sonra herşeye yeniden başlamak

Bu ilkeyi benimseyen, sadece başarılı HTML programcısı değil, her işte başarılı bir bir kişi olur


Buradaki katman etiketi SPAN'ın içindeki metni biçimlendiren, "turkuaz" adlı Selector başka hiç bir şey yapmayıp sadece biçimlendirdiği unsura aquamarin arkaplan rengi verecektir.
"Class" sayılan Selector'leri, mevcut herhangi bir HTML biçim etiketi ile birlikte kullanılabilir: p.mavi, H2.koyumavi gibi. "Mavi" sınıfı Selector ile birleştirilen HTML Selector'ü, "mavi" sınıfının özelliklerini alır. Buradaki örnekte ".mavi" Selectörünün harf rengini mavi yapmaktan başka bir özelliği yok: diğer bütün stil özelliklerini "inherit" ediyor, yani bağlandığı ve değiştirdiği HTML Selectror'ünden miras alıyor. Burada gördüğünüz "! Important" ifadesi ise Browser'a, ziyaretçi kendi bilgisayarında Browser ayarlarını değiştirmiş bile olsa, bilgisayar sahibinin değil, bizim verdiğimiz değerlerin geçerli olması gerektiğini bildiriyor.
CSS yoluyla, HTML'in kendi stil belirleyebilen etiketlerini, veya teknik adıyla HTML Selector'lerini de yeniden biçimleyebiliriz. Normal olarak HTML'in H1 başlığı sağa yatık bir harfle görüntülenmez; ancak "stillerim.css" dosyasını bağladığınız her Web sayfasında H1 başlığı, italik, çok büyük ve Times Roman olacaktır.
Stil kağıdı, herhangi bir isimle kaydedilebilir; fakat dosya adının uzatması, tercihan ".css" olmalıdır. Bir CSS dosyası, HTML sayfasına HEAD etiketi içinde LINK etiketiyle bağlanır. Diyelim ki bu dosyayı "stillerim.css" adıyla kaydettiniz.Bu dosyayı HTML sayfasında şöyle bağlamanız gerekir:


Stil kağıdı bağlama örneği





Genellikle, ziyaretçinin Browser'ını soruşturduğunuz zaman aldığınız sonucu bir değişkene (variable) yazarak, bir kenarda tutmak isteyebilirsiniz. Bu değişken, ilerde başka Java fonksiyonlarında veya HTML içinde özellikle BODY etiketinde kullanılır. Bu amaçla biraz daha gelişmiş bir Browser belirleme fonksiyonu şöyle olabilir:
function Brw() {
var agent = navigator.userAgent.toLowerCase();
this.major = parseInt(navigator.appVersion);
this.minor = parseFloat(navigator.appVersion);
this.ns = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) &&
(agent.indexOf('compatible') == -1)));
this.ns2 = (this.ns && (this.major == 2));
this.ns3 = (this.ns && (this.major == 3));
this.ns4 = (this.ns && (this.major >= 4));
this.ie = (agent.indexOf("msie") != -1);
this.ie3 = (this.ie && (this.major == 2));
this.ie4 = (this.ie && (this.major >= 4));
this.op3 = (agent.indexOf("opera") != -1);
}

var brw = new Brw()
Bu Javascript fonksiyonu, size biri doğru (true), altısı yanlış (false) yedi nesne (object) kazandırır. Diyelim ki, ziyaretçinin Browser'ı Netscape 4.0; o zaman brw.ns4 doğru olacaktır, mesela brw.ie4 yanlış! Sayfanıza ilerde, "Eğer brw.ns4 doğru ise şunu yap... eğer brw.ie4 doğru ise bunu yap" şeklinde rutinler ve fonksiyonlar koyabilirsiniz.
8. Javascript'lerinizi hazırlayın: Dinamik HTML'in iki ayağından biri CSS ise diğeri Javascript yoluyla, bu stilleri katmanlara uygulamaktır. Ziyaretçinin Browser'ına, "Şimdi, pencerende x koordinatı 120, y koordinatı 15 olan noktadan itibaren eni 100, yüksekliği 110 olan bir katman aç ve içine "Burayı tıklayınız!" yaz; bu yazının rengi sarı, zemini mavi olsun; Mouse işaretçisi bu katmanın üzerine geldiği zaman yazının rengi kırmızıya, zeminin rengi turuncuya dönsün!" demek sadece HTML kullanarak hemen hemen imkansız. Oysa, Javascript ile kullanılmaya hazır fonksiyonlar oluşturup (veya bulup), bunları HTML sayfasında kullanmak, işi olağanüstü kolaylaştırır. Javascript ile oluşturulacak fonksiyoonlar da, tıpkı CSS komutları gibi bir HTML dosyasına ya dışarıdan eklenir, ya da HTML'in içinde (ya baş tarafında, ya da kullanılacağı yerde) kullanılır.
Javascript ile oluşturacağınız fonksiyonları bir sitedeki bütün sayfalarda, hatta başka-başka sitelerin sayfalarında kullanmak haricî Javascript dosyasının HTML'e bağlanması ile mümkün olur. Javascript fonksiyonlarını içeren bir düzyazı dosyası, adının uzatması ".js" olan bir dosyada toplanır ve HTML'e LINK etiketi ile bağlanır. Tıpkı stil komutları gibi, sırası geldiğinde HTML'in içinde bu dosyadaki bir fonksiyonu işbaşına çağırırsınız. İyi bir tasarımcının çok zengin bir haricî Script belgesi koleksiyonu olur.
Böyle bir haricî JS dosyasında şu bölümler bulunur:
Browser Belirleme Fonksiyonu: DHTML uyumlu bir Browser, CSS ve katman teknolojisini destekler. Bununla birlikte bütün Browser'lar bütün Javascript fonksiyonlarını desteklemez. Burada kritik nokta, Netscape 4.0 ve daha üstü ile IE 4 ve daha üstünün Browser penceresindeki bir belgeye nasıl referansta bulunduğudur. Netscape, belge unsurlarına document.nesne şeklinde hitabedilmesini isterken, IE, document.all.nesne şeklindeki referans gerektirir. Ayrıca Netscape'te stil belgelerine document.stil_adı.nesne şeklinde atıfta bulunursunuz, IE'de ise bu document.all.stil_adı.style.nesne şeklinde yazılır. Javascript'inizde bu unsurlara, diyelim ki, sürekli belge ve stil diye atıfta bulunabilirsiniz, fakat baş tarafa, Browser belirlediğiniz yere "Eğer Netscape ise belge = document.stil_adı.nesne, eğer IE ise belge = document.all.nesne" anlamında bir rutin yazarsınız.
Grafikleri önceden yükleme: DHTML önemli ölçüde grafik unsurlara yer verme sanatıdır; ve grafikler bir sayfanın ziyaretçiye aktarılmasında en önemli yavaşlık sebebidir. Burada iki büyük düşünce ekolü var: "Sitemizdeki bütün grafikleri henüz birinci sayfa görüntülenmeden ziyaretçiye aktaralım ve sayfalarımız daha sonra çabuk görüntülensin" diyenler; ve "Birinci sayfa ne kadar çabuk görüntülenirse o kadar iyi, ziyaretçinin bir kere ilgisini çekmek şart!" diyenler. İster birinci grupta olun, ister ikinci grupta, hiç değilse birinci sayfanın grafiklerinin tümü, sayfa görüntülenmeye başlamadan önce ziyaretçiye aktarılmalıdır. Bunu, BODY etiketine gömeceğiniz onLoad komutuna bir Javascript önyükleme fonksiyonu bağlayarak yapabilirsiniz. Şu Javascript fonksiyonu, önyükleme işini yapacaktır:
Function onYukleme() {
resim1 = new Image();
resim1.scr = "dizin/resim1.gif";
}
Kapanan kıvrık parantezle fonksiyonu bitirmeden önce, resim2, resim3, vd., sıralayabilirsiniz. Böylece önceden yüklettiğiniz grafikler, ziyaretçinin bilgisayarının belleğinde kalacak ve ihtiyaç anında sür'atle görüntülenecektir.
Javascript konusunda bir son tavsiyeye yer verelim: Gerçekten Javascript öğrenmeye zamanınız yoksa, o zaman sizin için Javascript yazacak bir programı, en ince ayrıntılarına kadar öğrenin. DHTML'in bütün unsurlarını HTML sayfalarınıza yazabilecek ve bu arada sizin için yüzlerce satır Javascript programı oluşturabilecek WYSIWYG tarzı HTML editörlerinin sayısı hızla artıyor. Macintosh dünyasında GoLive CyberStudio, Windows dünyasında Macromedia Dreamweaver bu tür programlar arasında sayılabilir.
9. Katmanlar: Denir ki, Internet, televizyon ile dergi arasında bir ortamdır. Doğru; Web sitelerinde bir gazetede olabileceğinden çok, ancak uzmanlık alanında yayın yapan bir dergide ya da kitapta bulunacak kadar bilgi, bir televizyon atraksiyonu ile ziyaretçiye sunulabilir. Web sayfalarınızda doğrudan video dosyaları da verebilirsiniz; fakat çok pahalı streaming video (akan video) teknolojisi kullanmıyorsanız, bir AVI dosyasının ziyaretçiye aktarılması için gerekli süre, ziyaretçiye bilgisayarını kapattırıp, televizyonunu açtırtabilir!
Fakat Web sayfalarınızda televizyon ve sinema teknolojisinin temeli olan grafiklerin (veya metinlerin) belirli bir sırayla görüntülenmesi, sırası gelenin "açılması," sırası geçenin "kapanması" sağlanabilir. Bunu katman teknolojisi sağlar. Bir HTML sayfasında, ziyaretçinin Browser'ına ActiveX, Flash, Shock ve benzeri animasyonları gerçekleştirmesi için gerekli plug-in dosyalarının yüklenmesini zorunluk olmaktan çıkartan da katman teknolojisidir. DIV, LAYER, ILAYER ve SPAN etiketleri ile oluşturacağınız katmanlar, piksel düzeyinde bir hassasiyetle, ziyaretçinin ekranında, Browser penceresinde belirli bir yere oturtulabilir ve belirli bir sırayla görünür veya görünmez hale getirilebilir. DHTML'in dinamik tek unsuru da budur. (Bunlardan sık kullanacağınız DIV ile SPAN'dir ve aralarındaki tek fark, DIV, blok elemanıdır, yani kendisinden sonra yeni paragraf başlatır; buna karşılık SPAN satır elemanıdır, kendisinden sonra hiç bir şey yapmaz.)
"Piksel düzeyinde hassasiyet" ne demek? Bir Browser, klasik HTML belgesini aldığı zaman içindeki komutları yorumlayıp, sonucunu kendi penceresinde görüntülemeye, sıfır-sıfır noktasından başlar. Bir Browser penceresini, soldan sağa x, yukarıdan aşağı y koordinatları olarak düşünün.
Başarılı bir Web sitesi, 14 inçlik bir ekranı, 640x480 çözünürlükte bir grafik kartı bulunan tipik bir ziyaretçi dikkate alınarak kurulduğuna göre, Windows ve MacOS'in aldığı yerler, Browser'ın kendi penceresi, başlık ve menü çubukları, çerçeveler çıktıktan sonra, tasarımcı olarak size "temiz alan" olarak 600'e 350 piksel kalıyor. (Microsoft, ve Brittanica ansiklopedisi bu alana kendi sitelerini sığdırdığına göre, herhalde siz bir günlük gezete sitesi sığdırabilirsiniz!) Düz bir yazı içeren Web sayfası, nerede başlayıp, nerede biterse bitebilir; önemli değil. Ama, diyelim ki, ziyaretçi Mouse işaretçisini bir grafiğin belirli bir yerine getirdiği zaman, aynı grafiğin 155:220 koordinatında başlayan ve eni 35, yüksekliği 48 piksel olan bir bölüme farklı grafik görüntülenecek! Bu ölçüde hassas positioning (yerleştirme işlemi), ancak katmanlarınızı doğru tanımlamakla mümkündür. "Doğru tanımlamak" ise önce ziyaretçinin o andaki Browser boyutlarını bilmekle mümkündür. Kim olduğunu bile bilmediğiniz bir kişinin, ne olduğunu bile bilmediğiniz Browser'ının o anda enini boyunu nasıl bilebilirsiniz? Ve üstelik bunu, her ziyaretçi için yapacaksınız. Oysa işin kolayı, sayfanın bir kenarına, ziyaretçiye hakaret edercesine, "Ekran çözünürlüğünüz 800'den aşağı ise, yandınız!" diye bir uyarı koymak iken!
Bu işleme ziyaretçinin Browser penceresinin çözünürlüğünü belirleme denir, ve Netscape ile Internet Explorer, farklı sorular sormak şartıyla, sorarsanız, size o andaki boyutlarını verirler. Diyelim ki bir haricî JSavascript dosyasını HTML belgenizin baş tarafında:

şeklinde bir SCRIPT etiketi ile sayfanıza bağlamış bulunuyorsunuz ve bu JS dosyasının içinde daha önce ele aldığımız türden size "brw.ie4" veya "brw.ns4" nesnelerini veren bir fonksiyon var. Şimdi bu neslereni BODY etiketi içinde onLoad olayını kullanarak test edebilir ve ziyaretçinin Browser'ı Netscape ise Netscape için, IE ise IE için geçerli soruyu sorarak, ziyaretçimizin o anda Browser ekranının enini boyunu öğrenebiliriz. İşte size kullanabileceğiniz bir HTML-Javascript parçası:
if(is.ns4) {
ekranEn =innerWidth;
ekranBoy=innerHeight;
preLoad();
} else if(is.ie4) {
ekranEn=document.body.clientWidth;
ekranBoy=document.body.clientHeight;
preLoad();
}"
onResize="history.go(0)">
Bir parantez açalım: buradaki "onResize="history.go(0)" ifadesi, ziyaretçininin sitemize bağlandıktan sonra Browser'ının boyutlarını değiştirmesi ihtimaline karşı, sayfamızın ziyaretçinin sabit diskindeki Cache bellekten yeniden yüklenmesini sağlayan bir güvenlik önlemidir. Bir başka güvenlik önlemi Browser'ın sayfa görüntülendiği anda penceresinin sağına ve altına otomatik kaydırma çubuğu koymasını istemiyorsanız, BODY etiketine şu özellikleri de verebilirsiniz:
BACKGROUND="images/horizon.jpg" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLL="NO"
Peki, şimdi elinizde iki ölçü oldu: ekranEn ve ekranBoy. Bu bilgileri nasıl kullanacaksınız? İşte bu bilgi, ziyaretçinize "Ekranını 800x600 piksel yap, öyle gel!" demekten sizi kurtaracak, söz gelimi bir grafiği 460:710 koordinatlarına denk gelmek yerine "ziyaretçinin ekranının sağ kenarından 200 piksel solda başlamasını sağlayacak olan bilgidir. Bunu yapabilmek için grafiğinizi bir katman nesnesinin (.., .. veya
..
etiketlerinin içine koyarsınız; katman nesnesi, "çıplak" konulacak grafikten () farklı olarak, STYLE özelliğine (attribute) sahiptir ve dolayısıyla, posizyon, başka bir nesnenin altında veya üstünde olmak, görünür veya görünmez olmak gibi kontrollere sahiptir. Örneğin, içinde sayfalarınız arasında gidip gelmeyi sağlayan düğmelerden birincisini içeren katmanın şöyle oluşturulduğunu düşünün:


15 Nisan 2008 Salı

50 Adet Arama Motoruna Kayıt




1. http://www.google.com/intl/en/addurl.html Google

2. http://search.yahoo.com/info/submit.html Yahoo! Search

3. http://search.msn.com/docs/submit.aspx?FORM=WSDD2 MSN

4. http://www.about.com/gi/pages/homehc.htmlc4 About

5. http://www.dmoz.org/add.html Open Directory

6. http://www.accoona.com/submit.html Accoona

7. http://www.exactseek.com/add.html ExactSeek

8. http://www.scrubtheweb.com/addurl.html ScrubTheWeb

9. http://www.snap.com/about/site.php?last_link_type=about Snap

10. http://www.searchsight.com/submit.htm SearchSight

11. http://www.searchit.com/addurl.htm SearchIt

12. http://www.buzzle.com/suggest_basic2.asp Buzzle

13. http://www.entireweb.com/free_submission/ EntireWeb

14. http://www.whatuseek.com/addurl-secondary.shtml What U Seek

15. http://www.ezilon.com/ezilon_url_submission.htm Ezilon

16. http://www.gimpsy.com/gimpsy/searche...check_free.php Gimpsy

17. http://www.dirone.com/add_link_m.php dirOne

18. http://www.websquash.com/cgi-bin/sea...l?Mode=AnonAdd WebSquash

19. http://www.abilogic.com/how-to-suggest-a-site.php AbiLogic

20. http://addurl.amfibi.com/ Amfibi

21. http://www.01webdirectory.com/submit.htm 01WebDirectory

22. http://www.netinsert.com/en/insert.html NetInsert

23. http://www.mavicanet.com/ MavicaNET

24. http://www.searchhippo.com/addlink.php SearchHippo

25. http://www.worldsiteindex.com/ World Site Index

26. http://www.dailyorbit.com/add.htm DailyOrbit

27. http://www.nationaldirectory.com/addurl/ NationalDirectory

28. http://www.tygo.com/websites/FreeSubmitURL.aspx TYGO

29. http://www.mixcat.com/addurl.php MixCat

30. http://www.aeiwi.com/submit.html Aeiwi

31. http://www.illumirate.com/add_your_site_exp.cfm IllumiRate

32. http://www.infotiger.com/addurl.html Info Tiger

33. http://www.towersearch.com/addurl.php TowerSearch

34. http://www.splatsearch.com/submit.html SplatSearch

35. http://www.subjex.net/submit_url.html Subjex

36. http://www.qango.com/dir/addurl.html Qango

37. http://www.zeezo.com/Listings/New.aspx Zeezo

38. http://www.canlinks.net/addalink/ CanLinks

39. http://www.webbieworld.com/signup.asp WebbieWorld

40. http://www.searchking.com/add_new.htm SearchKing

41. http://www.amray.com/cgi/amray/addurl.cgi AMRAY

42. http://www.go4.it/listing.asp Go4.it

43. http://www.cipinet.com/addurl.html Cipinet

44. http://www.hedir.com/submit-help.html Hedir

45. http://www.walhello.com/addlinkgl.html Walhello

46. http://www.linketeria.com/submitsite.htm Linketeria

47. http://www.claymont.com/login/login.asp?img=y Claymont

48. http://www.jdgo.com/add.html JDGO

49. http://www.spheri.com/tc143as.php?sid=0 Sphericom

50. http://www.kaspie.com/web.html Kaspie

Hiç yorum yok: