Her Yönüyle HTML5

download Her Yönüyle HTML5

of 369

Transcript of Her Yönüyle HTML5

  • 7/26/2019 Her Ynyle HTML5

    1/368

  • 7/26/2019 Her Ynyle HTML5

    2/368

    1 HTML5E GRfi 1Genel Bakfl 1

    HTML5in Yaps 2Yeni DOCTYPE Bildirimi 3

    Yeni Character Set Bildirimi 4

    HTML5 Sz Dizimi Kurallar 6

    HTML5 iin Tarayc Destei 8

    Tarayc Grntleme Motoru (Layout Engine) ve

    JavaScript Motoru (JavaScript Engine) 9

    Firefox 10

    Opera 10

    Internet Explorer 10Safari 11

    HTML5 ile Yeni Tanmlanan Elemanlara ve

    zelliklere Tarayclarn Verdii Destek 12

    Dier Specifications (W3C Bildirimleri) ve

    Teknolojilere Tarayclarn Verdii Destek 15

    HTML5 Dili erisindeki Tm Etiketlerin Listesi 15

    2 YEN ELEMANLAR VE ZELLKLER 21

    Standart zellikler 22accesskey 22

    class 22

    contenteditable 24

    contextmenu 26

    dir 26

    draggable 26

    dropzone 26

    id 27

    lang 28spellcheck 28

    style 29

    tabindex 30

    title 30

    hidden 30

    HTML5in Getirdii Yeni Elemanlar 30

    NDEKLER

    +HTML5-icindekiler 6/17/11 4:23 PM Page vii

  • 7/26/2019 Her Ynyle HTML5

    3/368

    Yapsal Elemanlar 30

    31

    32 32

    35

    37

    41

    44

    46

    Dier Elemanlar 50

    50

    51 53

    53

    54

    3 HTML5 VE JAVASCRIPT 55querySelector() 57

    querySelectorAll() 64

    getElementsByClassName() 71

    Seici Metotlarn Desteklemeyen

    Tarayc Srmleri iin zm 75Sonu 82

    4 HTML5 ve CSS3 87CSS3 Selectors 87

    Structural Pseudo-Classesn

    (Yapsal Szde Snflar) ncelenmesi 97

    :nth-child() 97

    :nth-of-type() 101

    :nth-last-child() 104

    :nth-last-of-type() 106

    :first-child ve :last-child 108

    :first-of-type ve :last-of-type 110

    :only-child, :only-of-type, :root ve :empty 111

    Yapsal Szde Snflar in Tarayc Destei 113

    HER YNYLE HTML5viii

    +HTML5-icindekiler 6/17/11 4:23 PM Page viii

  • 7/26/2019 Her Ynyle HTML5

    4/368

    5 HTML5 VE WEB FORMLARI 115Form Nesnesi 116

    Input Eleman zellikleri ve Type Tanmlamalar 118Input Eleman 18

    autocomplete 119

    list 119pattern 122

    placeholder 125

    required 125Form Elemanna Ait zellikleri Tekrar Tanmlayan zellikler 126

    Type Tanmlamalar 128

    button 128checkbox 128

    password 128radio 128

    image 128

    submit 129text 129

    reset 129

    file 129hidden 129

    email 129search, url ve tel 131

    number 132

    range 133color 134

    date, month, week, time, datetime-local, datetime [HTML5] 140

    6 CANVAS 143getContext() 144

    toDataUrl() 145Canvas RenderingContext2D (2 Boyutlu izim Alan) Nesnesi

    zellik ve Metotlar (izim Oluflturmak) 147

    Canvas Koordinat Sistemi 147

    context2D Nesnesi zellikleri 149

    canvas 149

    strokeStyle ve fillStyle 150

    NDEKLER ix

    +HTML5-icindekiler 6/17/11 4:23 PM Page ix

  • 7/26/2019 Her Ynyle HTML5

    5/368

    globalAlpha 153

    globalCompositeOperation 156

    shadowColor, shadowOffsetX, shadowOffsetY,shadowBlur 160

    lineWidth, lineCap, lineJoin ve miterLimit 162

    context2D Nesnesi Metotlar 167

    save() ve restore() 167

    Dikdrtgen izim Metotlar 170

    fillRect() 170

    strokeRect() 172

    clearRect() 174

    Path Metotlar (Karmaflk fiekiller izmek) 175beginPath() 175

    moveTo() 175

    lineTo() 178

    quadraticCurveTo() 179

    bezierCurveTo() 180

    closePath() 182

    arc () 184

    rect () 190

    fill() ve stroke() 192clip() Metodu 193

    Gradient ve Pattern Metotlar 194

    addColorStop() 194

    createLinearGradient() 195

    createRadialGradient() 198

    createPattern() 204

    Transformation Metotlar 206

    scale() 207

    rotate() 209translate() 211

    transform() ve setTransform() 212

    Canvas zerinde Metin fllemleri 215

    font, textAlign, textBaseline zellikleri 215

    fillText() ve strokeText() 218

    measureText() 220

    HER YNYLE HTML5x

    +HTML5-icindekiler 6/17/11 4:23 PM Page x

  • 7/26/2019 Her Ynyle HTML5

    6/368

    Resimlerle alflmak 221

    drawImage() Metodu 221

    Pixel Manipulation 227createImageData() 227

    getImageData () 229

    putImageData() 231

    Canvas ile Animasyon Temelleri 249

    Nesnelerin Yatay ya da Dikeyde Dz

    Bir izgi zerinde Hareket Ettirilmesi 249

    Nesnelerin Yatay ve Dikeyde Beraber Hareket Ettirilmesi 255

    Nesnelerin Dairesel Olarak Hareket Ettirilmesi 266

    Tarayc Destei 2777 HTML5 VE SVG 281

    SVG ve HTML5 Kullanm 281

    Dikdrtgen izimi 283

    Daire izimi 285

    Elips izimi 285

    izgi izimi 286

    oklu izgi izimi 287

    okgen izimi 287

    Yol izimi 288

    8 HTML5 AUDIO VE VIDEO ELEMANLARI 291 291

    src 292

    controls 292

    autoplay 293

    preload 293

    loop 293

    294

    poster 294

    295

    HTMLMediaElement Arayz ile Tanmlanan zellikler ve Metotlar 298

    zellikler (Properties) 298

    Metotlar 301

    canPlayType() 301

    NDEKLER xi

    +HTML5-icindekiler 6/17/11 4:23 PM Page xi

  • 7/26/2019 Her Ynyle HTML5

    7/368

    load() 303

    play() 303

    pause() 303Medya eriini Kontrol Etmek iin Kullanlabilecek Olaylar 307

    HTML Event Handlers (HTML Olay Ynlendiricileri) 308

    DOM Level 0 Event Handlers 308

    DOM Level 2,3 Event Listener 309

    9 SRKLE-BIRAK fiLEMLER ARAYZ (DRAG and DROP API) 321dataTransfer Nesnesi 321

    dataTransfer Nesnesi zellikleri 321

    dataTransfer Nesnesi Metotlar 322

    DragEvent (Srkleme Olaylar) 323

    10 GEOLOCATION API 331geolocation Nesnesi 331

    getCurrentPosition() 332

    watchPosition() 333

    clearWatch() 334

    position Nesnesi 334

    coords Nesnesi 334

    positionError Nesnesi 335

    positionOptions Nesnesi 337

    Online Harita Servislerini Kullanmak 338

    Tarayc Destei 344

    11 WEB STORAGE 345sessionStorage (Oturum Depolama) 345

    localStorage (Yerel Depolama) 346

    Storage Nesnesi (sessionStorage, localStorage) zellik ve Metotlar 346

    setItem() 346

    getItem() 346removeItem() 347

    clear() 347

    key() 347

    length zellii 348

    Tarayc Destei 356

    HER YNYLE HTML5xii

    +HTML5-icindekiler 6/17/11 4:23 PM Page xii

  • 7/26/2019 Her Ynyle HTML5

    8/368

    Yayn Datm Yazlm ve Eitim

    Hizmetleri San. ve Tic. Ltd. fiti.

    brahimelikbilek

    HER YNYLEHTML5

    +HTML5-kunye 6/17/11 4:21 PM Page i

  • 7/26/2019 Her Ynyle HTML5

    9/368

    KODLAB 53

    HER YNYLE HTML5

    BRAHM ELKBLEK

    ISBN 978-605-4205-48-6

    Yaynclk Sertifika No: 13206

    1. Bask: Haziran 2011

    Yayn Ynetmeni: Uur Geliflken

    Sayfa Dzeni: Mehmet ztrk

    Satfl: Hseyin stnel

    Bask: fiefik Basm ve Yaynclk San. Tic. Ltd. fiti. Tel: (212) 549 62 62

    Bu kitabn btn yayn haklar Kodlab Yayn Datm Yazlm ve Eitim Hizmetleri

    San. ve Tic. Ltd. fiti.ne aittir. Yaynevimizin yazl izni olmakszn ksmen veya ta-

    mamen alnt yaplamaz, kopya ekilemez, oaltlamaz ve yaynlanamaz.

    KODLAB Yayn Datm Yazlm ve Eitim Hizmetleri San. ve Tic. Ltd. fiti.

    Alemdar Mah. Salkm St Sok. Aa fl Han

    No: 20 Kat:1 D: 3 Sultanahmet / STANBUL

    tel: (212) 514 55 66 fax: (212) 514 66 61

    e-posta: [email protected] web: www.kodlab.com

    +HTML5-kunye 6/17/11 4:21 PM Page ii

  • 7/26/2019 Her Ynyle HTML5

    10/368

    brahim elikbilek

    1980 Kars doumludur. 2002 ylnda Frat niversitesi T.E.Fni bitirdi. eflitli eitim

    kurulufllarnda yazlm uzmanl ile ilgili dersler verdi. 2005 ylnda Suflehri AtatrkEndstri Meslek Lisesine Bilgisayar retmeni olarak atand. 2009 Ylndan itibarenbu grevini Kocaelide srdrmektedir. JavaScript, CSS, DHTML, AJAX, ASP.NETve C# konularnda seminerler verdi ve makaleler yazd. Web programlama alanndabirok uygulama gelifltirdi. Ayrca yazarmzn daha nce KODLABtan JavaScript veXHTML ve CSS kitaplar kmfltr.

    Yazarmz hakknda daha detayl bilgi almak iin;http://www.ibrahimcelikbilek.comadresini ziyaret edebilirsiniz.

    +HTML5-kunye 6/17/11 4:21 PM Page iii

  • 7/26/2019 Her Ynyle HTML5

    11/368

    nszKitabn siz okurlarm iin faydal olmas dileiyle szlerime bafllamak istiyorum.

    Kitap ierisinde HTML5 yaps ile birlikte bu yap ierisinde bulunan yeni eleman-lar, zellikler ve HTML5in duyurulmas ile beraber nemi artan ek teknolojilerhakknda genifl bilgiler bulabilirsiniz.

    Konular iyice kavrayabilmek iin; kitap iinde verilen rnekleri dikkatlice incele-yip uygulamal ve bu rnekleri referans alarak yeni uygulamalar gelifltirmeye alfl-malsnz.

    HTML5; html dili iin yeni stratejiler ve hedefler ortaya koyan ve farkl web taray-clar iin standardizasyonu amalayan yeni nesil bir srm olarak karflmza kmak-tadr. Olaya bu adan yaklaflrsak; bu dilin nmzdeki srete hzl bir flekilde ge-lifleceini ve poplaritesini daha da arttracan grebiliriz. Aslnda dilin sadece ken-disi deil kulland ek teknolojilerde geliflime ak olmakla beraber bu dile bykg katmaktadr.

    Kitap ierisindeki konularn daha iyi anlafllmas bakmndan az da olsa JavaScriptve CSS bilgilerine sahip olmanz gerekmektedir. nk HTML5 yapsnn kullan-d programlama dili JavaScripttir. Bu adan HTML5 ile beraber JavaScript dili-nin hak ettii konuma geldiini dflnmekteyim.

    HTML5 ya da dier programlama konular ile ilgili sorularnz www.kodlab.comsitesinde bulunan yazara sor ksmndan ya da www.ibrahimcelikbilek.comadresin-den bana iletebilirsiniz.

    brahim elikbilek

    Gerekli ProgramlarKitabn siz okurlarm iin faydal olmas dileiyle szlerime bafllamak istiyorum.

    Kitap ierisindeki konular anlatlrken temelde kod mantn kavramanz hedeflen-mifltir. Kodlar rendikten sonra uygulamalar istediiniz herhangi bir programda,hatta bir metin editrnde bile gelifltirebilirsiniz. Profesyonel uygulamalar oluflturur-ken; gerek tasarm ekran, gerek sunduu yardmc aralar ve dier zellikleri ile ge-

    liflmifl web sayfas editrlerini kullanmak iflinizi kolaylafltracaktr.Kitab verimli bir flekilde takip etmek iin kullanabileceiniz programlar flunlardr:

    Aptana Studio 3:www.aptana.com adresinden indirebilirsiniz.

    Expression Web 4: Deneme srmn www.microsoft.com/expression/ adresindenindirebilirsiniz.

    Dreamweaver CS5.5: Deneme srmn www.adobe.com adresinden indirebilirsiniz.

    iv

    +HTML5-kunye 6/17/11 4:21 PM Page iv

  • 7/26/2019 Her Ynyle HTML5

    12/368

    Merhum Babam Ali Osman ELKBLEKin ansna...

    v

    +HTML5-kunye 6/17/11 4:21 PM Page v

  • 7/26/2019 Her Ynyle HTML5

    13/368

    vi

    +HTML5-kunye 6/17/11 4:21 PM Page vi

  • 7/26/2019 Her Ynyle HTML5

    14/368

    Genel BakflHTML5, html dilinin en son srmdr. Modern web uygulamalar gelifltirmekiin yeni eklentiler ve zellikler sunar. HTML5; html dili iin yeni stratejiler ve he-defler ortaya koyan ve farkl web tarayclar iin standardizasyonu amalayan ye-ni nesil bir srm olarak karflmza kmaktadr. HTML5 ile html dilinin ifllevselli-i, programlama ve sunum gc artmfltr. HTML5e yeni eklenen yapsal eleman-

    lar sayesinde fazla kod yazmadan sitenizin grsel tasarmn yapabilir, JavaScriptve CSS3 teknolojilerini daha etkili bir flekilde kullanabilirsiniz. HTML5 tasarmc-larn web sayfalarnda zengin medya ierikleri kullanmalarna ve interaktif web uy-gulamalar gelifltirebilmelerine olanak salayan yeni elemanlar, zellikler ve tekno-lojiler barndrr.

    HTML5 iinde bulunan tm teknolojiler aslnda HTML5 ile beraber yeni oluflturulanve duyurulan teknolojiler deildir. W3C tarafndan nceden oluflturulmufl ve modernweb tarayclar tarafndan ksmen desteklenen bir takm teknolojilerde (rnein;SVG-Scalable Vector Graphics) HTML5 ierisine dahil edilmifltir. W3C HTML5 di-

    lini gelifltirmeye devam etmektedir bu adan ilerleyen zaman dilimlerinde dile yenieklentilerin olmas muhtemeldir. Ayrca HTML5 dilinin dier bir avantaj da,HTML5 dili iinde bulunmayan fakat HTML5in duyurulmas (kullanlmas) ile be-raber etkinlii (nemi) artan (artacak olan) dier teknolojilerin de modern web tara-yclar tarafndan desteklenmeye bafllanmasdr. (rnein; WebGL, FileReader,Faster JavaScript, Geolocation APIgibi.)

    HTML5E GRfi 1

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 1

  • 7/26/2019 Her Ynyle HTML5

    15/368

    Ksaca HTML5 dilini flyle zetleyebiliriz:

    Sadelefltirilmifl, dzeltilmifl HTML4 ve XHTML dillerinin son srmdr.

    Daha fazla yapsal elemana, form elemanlarna ve yeni zelliklere sahiptir.

    Geliflmifl multimedia destei sunmaktadr.

    erisinde yeni teknolojiler barndrr ya da nceden var olan teknolojilerin kul-lanmn salar.

    JavaScript ve CSS3 teknolojilerini daha etkili bir flekilde kullanmamz salar.

    HTML5in nasl ortaya kt ile ilgili ksa bir bilgi verelim...

    1999 ylnda W3C (Word Wide Web Consortium) tarafndan HTML 4.01 duyurul-

    mufltur. HTMLin bu srmnden ksa bir sre sonra XML 1.0 yaps yaynland.W3C HTML dilini XML tabanl yapmak iin bu iki yapy birlefltirdi ve 2001 yln-da XHTML 1.0 olarak duyurdu. 2003 ylnda W3C tarafndan XForms 1.0(XHTML Extended Forms) yaynlanarak var olan XHTML yaps glendirilmekistendi. W3C yazarlarnn dflncesi XHTML yapsnn gelifltirilmesi ve ek tekno-lojilerle desteklenmesi fleklindeydi (XHTML2+XForms+SVG+MathMl+RDFa).Bu yap tarayc reticileri tarafndan kabul grmedii iin 2004 ylnda Apple, Mo-zilla Foundation (Firefox) ve Opera tarayc reticileri bir araya gelerekWHATWG (Web Hypertext Application Technology Working Group) isimli bir

    alflma gurubu oluflturdular. Aslnda HTML5in doufl hikayesi burada bafllamfltr.

    2006 ylnda W3C konsorsiyumu XHTML dilini gelifltirmekten vazgeipHTML5in geliflimine katlacan duyurdu. 2008 ylnda W3C tarafndanHTML5in (First Public Working Draft) ilk alflma tasla duyuruldu. W3C kon-sorsiyumu 2009 ylnda XHTML 2.0 alflmalarn durduracan aklamfltr.

    HTML5in YapsHTML5in temel elemanlar iin getirdii yeniliklere bakalm;

    HTML5

    HER YNYLE HTML52

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 2

  • 7/26/2019 Her Ynyle HTML5

    16/368

    Yeni DOCTYPE Bildirimi

    Belge trn ayarlamak iin kullandmz bu etiket, HTML5 ile daha ksa ve kulla-nfll bir hale getirilmifltir. rnein; XHTML 1.0da belge tr flekilde ayarlana-biliyordu ve tanmlama olduka uzundu. HTML5, bu karmaflay ortadan kaldrmflve geriye doru uyumluluu (eski HTML srmleri ile) korumufltur. Bu etiketinHTML5 aa yaps iinde belgenin en baflnda tanmlanmas zorunludur.

    fiimdi nceki HTML srmlerinde yaplan DOCTYPE tanmlamalarna bakalm.XHTML 1.0 DOCTYPE (Transitional) tanmlamas:

    XHTML 1.0 DOCTYPE (Strict) tanmlamas:

    HTML 4.01 DOCTYPE (Strict) tanmlamas:

    Dikkat ederseniz tanmlamalar olduka uzun ve aslnda Strict olan yaplar geriye do-ru uyumluluu desteklemiyor. rnein; sayfanzda XHTML 1.0 DOCTYPE (Strict)tanmlamasn kullanrsanz. Belge ierisinde sadece XHTML 1.0 srmnde varolan (desteklenen) etiketleri ya da zellikleri kullanmanza izin verilir. Strict tanm-lamas yaparsanz nceki HTML srmlerinde var olan fakat XHTML 1.0 tarafndan

    desteklenmeyen etiket ya da zellikleri kullanmanza izin verilmez. flte bu durum,Strcit yapsnn geriye doru uyumlu olmad anlamna gelir.

    Belge ierisinde DOCTYPE tanmlamasn yapmazsak, tarayc sayfay QuirksModda alfltracaktr. Tam da burada tarayc modlar ile ilgili bilgi vermek istiyo-rum. Tarayc modlar taraycnn web sayfasn nasl yorumladn/yorumlayaca-n gsterir. IE5/MAC srm ile beraber tarayclarda gsterilecek web sayfalarnn

    HTML5E GRfi 3

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 3

  • 7/26/2019 Her Ynyle HTML5

    17/368

    standartlara uymas beklenmifltir. Standartlara bal kalnmadan yazlan eski websayfalarnn tarayclar tarafndan gsterilebilmesi iin IE5 ile beraber Microsoft

    DOCTYPE kavramn ortaya atmfltr. Buna gre web belgesinin en baflnda DOCTYPEtanmlamas olan sayfalar standart modda, DOCTYPE tanmlamas olmayan (eskisayfalar) tuhaf modda alflr. Dier tarayc firmalarnn da benimsemesi ile Tara-yc Modlar kavram ortaya kmfltr.

    Standard olarak tane tarayc modu bulunmaktadr. fiimdi bunlar inceleyelim.

    Quirks Mode: DOCTYPE tanmlamasn yapmazsak taraycnn sayfay QuirksModda alfltracan sylemifltik. Bu durumda sayfanz oluflturulurken taray-c W3C standartlarna bal kalmaz. Sayfa grnm ya da elemanlarn yerle-

    flimi kullanlan taraycya bal olarak deifliklik gsterebilir. DOCTYPE tanmla-mas yapmamfl iseniz; web sayfanz taraycnn var olan eski kurallarna gredeerlendirilecek ve taraycda oluflturulacaktr. Tarayc, Quirks modda alfl-tnda farkl tarayclarda CSS zelliklerinin doru olarak sayfa elemanlarnauygulanmasnda farkl problemler kabilmektedir. Ayrca tarayc QuirksModda kurallara bamllk asndan daha esnek davranacaktr. rnein;DOCTYPE tanmlamas yapmazsanz IE6 ve alt srmleri W3C kutu modeli ye-rine kendi kutu modelini kullanr.

    Standart Mode: DOCTYPE tanmlamas yaparak sayfamzn tarayc tarafndan

    standart modda gsterileceini belirtmifl oluruz. Standart modda tarayclarstandartlara dayal sayfamz yorumlayacaktr. Standart modda tarayc sk birdenetim yapar ve sayfa grnts oluflturur. HTML5 bildiriminde no quirksmode olarak adlandrlmfltr.

    Almost Standart Mode: Standart mod ile hemen hemen ayn olan bu mod;Opera, Safari, Chrome, Firefox ve IE8 tarafndan desteklenmektedir. HTML5bildiriminde limited quirks mode olarak adlandrlmfltr.

    Yeni Character Set Bildirimi

    Meta etiketi etiketleri arasnda bildirilir ve sayfa hakknda tarayclara yada arama motorlarna bir takm bilgiler sunar. charset zellii belge ierisindekullanlacak karakter seti (kmesi) tanmlamas iin kullanlr.

    nceki HTML srmlerinde charset tanmlamasnn nasl yapldna bakalm.

    HER YNYLE HTML54

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 4

  • 7/26/2019 Her Ynyle HTML5

    18/368

    meta etiketinin zelliklerine ksaca bakalm. (Standart zellikler 2. Blmde an-

    latlacaktr.)

    name: Meta etiketi ierisinde deer atanacak nceden tanml alt zellik isimle-rini tanmlamak iin kullanlr. Bu zellikle tanmlanan alt zellie deer ata-mak iin content zellii kullanlr.

    name zelliine atanabilecek alt zellikler aflada listelenmifltir.

    application-name: Uygulama adn tanmlamak iin kullanlr.

    author: Web sayfasn oluflturan kifli hakknda bilgi tanmlamak iin kullanlr.

    description: Sayfa ierii ile ilgili tanmlayc bir bilgi (aklama) tanmla-mak iin kullanlr.

    generator: Sayfann oluflturulduu program (yazlm) ile ilgili bilgi tanmla-mak iin kullanlr.

    keywords: Arama motorlar iin virglle ayrlmfl anahtar kelimeler tanmla-mak iin kullanlr.

    rnek:

    Yukardaki bildirim web sitesi ile ilgili arama motorlar iin anahtar kelimelertanmlar. Ayrca WHATWG MetaExtensions ile tanmlanan afladaki altzellikleri de kullanabilirsiniz.

    creator, googlebot, publisher, robots, slurp, viewport

    http-equiv: default-style, refresh alt zelliklerini deer atamak iin ta-nmlar. Belirtilen alt zelliklere content zellii ile deerler atanr.

    default-style: Alternatif stil tanmlamas yapmak iin kullanlr.

    refresh: Belirtilen sre sonunda sayfay tekrar yklemek ya da kullancybaflka bir URL adresine ynlendirmek iin bu alt zellii kullanabilirsiniz.

    rnek:

    Mevcut sayfa yklendikten 5 sn sonra kullanc url ile belirtilen adrese ynlen-dirilecektir.

    HTML5E GRfi 5

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 5

  • 7/26/2019 Her Ynyle HTML5

    19/368

    content: http-equiv ya da name zelliklerinde tanmlanan alt zelliklere de-er atamak iin kullanlr.

    charset (HTML5): Sayfada kullanlan karakter seti (kmesi)ni tanmlamakiin kullanlr. HTML5 ile yeni tanmlanan bir zelliktir. Aslnda UTF8 kul-lanmak ou zaman yeterli olacaktr. Sayfanz iin bir charset tanmlamasyapmazsanz sayfanzdaki karakter ya da sembollerin gsteriminde problem ya-flayabilirsiniz. charset ile karakter setini tanmlamak aslnda tarayclarn ka-rakter ya da sembolleri dzgn bir flekilde gstermeleri iin kullanlan algorit-mann bir parasdr.

    HTML5 bildiriminde; meta etiketinin scheme zellii ve http-equiv zellii-nin content-type, content-language, set-cookie alt zelliklerinin kullanl-

    mas nerilmemektedir.

    HTML5 Sz Dizimi KurallarHTML5, XHTML gibi XML temelli olmad iin programclara ok gevflek birsz dizimi yaps sunar. rnein; bir HTML5 sayfas olufltururken html, head,body etiketlerini belirli flartlar altnda kullanmayabilirsiniz. Bu durumda sizin yaz-madnz html, head, body etiketleri tarayc tarafndan sayfaya dahil edilecektir.Ancak bu durum kullanfll deildir. nk bu durumda IEde problemler yaflabili-riz. Afladaki uygulamamz HTML5in ne kadar esnek bir sz dizimi olduunu

    gstermek iin yapyorum. Biz uygulamalarmzda html, head, body elemanlarnHTML5 temel aa yaps ierisinde her zaman kullanacaz. Afladaki rneifarkl tarayclarda alfltrp sonuca bakalm.

    Her Ynyle HTML5

    HTML5in Getirdikleri

    HER YNYLE HTML56

    Firefox (Firebug)

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 6

  • 7/26/2019 Her Ynyle HTML5

    20/368

    Dikkat ederseniz Firefox ve Opera sayfay gsterirken; html, head, body eleman-larn sayfaya dahil etti. Bunun yannda IE8 yazlmayan html, head, body etiketle-rinin sadece alfl taglarn oluflturulur.

    HTML5in sz dizimi kurallarna bakalm...

    1. Alan tm etiketler kapatlmaldr. Baz etiketler bir ierik barndrmaz, sakla-dklar ierikler etiketin bir zellii ile tanmlanr. Bu durumda etiket alfl ta-gnda/ karakteri ile kapatlr. Burada flunu belirtmek isterim. Eer elemanmzvoid elements (alfl kapanfl taglar arasnda bir text (metin) ya da baflka bireleman bulunmayan, yani sadece alfl tag (etiketi) bulunan elemanlar; r-

    nein; area, base, br, col, command, embed, hr, img, input, keygen, link,me-ta, param, source) ise bu durumda / karakterinin, bu elemanlar zerinde bir et-kisi olmayacaktr. Yani bu karakteri kullanmayabilirsiniz. Fakat elemanmz fo-reign elements (namespace-isim alan ieren elemanlar) ise bu durumda alfltag / karakteri ile kapatlmaldr.

    rnek kullanmlar:

    Link (Yanlfl, kapanfl etiketi yok.)

    Aklama

    (Yanlfl, kapanfl etiketi yok.)

    Div eleman ierii (Doru.) (Doru.)

    ya da (kisi de doru.)

    HTML5E GRfi 7

    NOT Tavsiye: Sadece alfl etiketi bulunan tm elemanlar kapatmadan nce / karakte-rini kullannz. rnein;

    Opera (Dragonfly)

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 7

  • 7/26/2019 Her Ynyle HTML5

    21/368

    2. ie girmifl, bir biri ierisine yuvalanmfl elemanlarda elemanlarn kapanfl s-rasna dikkat edilmelidir. lk nce alan etiket, en sonda kapatlmaldr.

    Div eleman ierii (Doru)Div eleman ierii (Yanlfl)

    3. Etiket ierisinde kullanlan zellik isimleri byk ya da kk harfle yazlabilir.zelliin deeri kendisi ile ayn ismi taflyorsa sadece zellik ad yazlabilir.zellik deerleri eer bir boflluk iermiyorsa trnak ierisine alnmayabilir. Ya daisterseniz zellik isimlerini tek trnak ya da ift trnak ierisine alabilirsiniz.

    rnek kullanmlar:

    checked zelliinin deeri checked olduundan yazlmad. Sadece zellikad yazld.

    alt zelliine atanan metin tek trnak ierisine alnarak yazld.

    class zelliine atanan deer trnak ierisine alnmadan yazld.

    Yukardaki kullanmlar HTML5 iin doru olarak kabul edilir.

    Temiz (okunabilir), tutarl (az hatal) kodlar oluflturmak iin tavsiyelere uymanzneririm.

    HTML5 iin Tarayc DesteiPeki, HTML5i tarayclar, ne kadar destekliyor?

    Aflada ayrntl bir flekilde anlatacam ama flunu bilmenizi isterim. Yeni nesil ta-rayclar (Modern web tarayclarnn son srmleri), HTML5in yeni getirdii tek-nolojileri, elemanlar ve zellikleri destekleme konusunda hzl admlar atmaktadr-lar. Bu admlar sonucunda tarayclarn son srmleri (IE9, Firefox 4, Safari 5,Opera 11.11) HTML5i byk lde destekler duruma gelmifllerdir. HTML5e ta-rayclar tarafndan verilen destei sadece yeni elemanlar ya da zelliklere verilendestek olarak dflnmemek gerekir. Bu destek; CSS3, JavaScript eklentileri, DOM

    HER YNYLE HTML58

    NOT Tavsiye: Etiket ismi, etiket iinde kullanlan zellik ismi ya da zellie atanan de-erleri kk harfle yaznz. Deerleri ift trnak ierisine alarak zelliklere ataynz.

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 8

  • 7/26/2019 Her Ynyle HTML5

    22/368

    (Document Object Model) ve HTML5in duyurulmas (kullanlmas) ile beraber et-kinlii (nemi) artan (artacak olan) yeni ya da var olan teknolojileri de bir paket

    olarak iermektedir. Bu nedenle aflada HTML5 teknolojisinin getirdii ya daHTML5 ile beraber kullanm artan/kullanm giren tm teknolojilerin tarayclartarafndan ne lde desteklendiine bakmfl olacaz.

    Tarayc Grntleme Motoru(Layout Engne) ve JavaScrpt Motoru(JavaScrpt Engne)Tarayc grntleme motoru, web sayfasnn ieriini tarayc ekrannda olufltur-mak/gstermekle sorumludur. Tarayclar modler sistemi benimsemifllerdir. Bu

    flu anlama gelir tarayc yaps genel olarak kullanc arayz ve ifl yapan arabirim-ler olmak zere ikiye ayrlabilir. Web taraycs gelifltiricileri aslnda grntlememotoru temelli tarayc olufltururlar. Tarayclar kendi oluflturduklar grntlememotorlarn kullanrlar ve bunlar gncellerler (Aslnda grntleme motorlarngncellediklerinde belirtilen tarayc iin yeni bir srm ortaya kmfl olur). Bugrntleme motorlarna dayal uygulamalar gelifltirirler. Bir taraycnn yeni tek-nolojileri desteklemesi; grntleme motorunun belirtilen teknolojileri destekle-mesi anlamna gelir. Tarayclarda kullanc arayzleri sadece grntleme moto-runun iflledii verileri kullancya gsteren ve kullanc ile iletiflimde bulunan bir

    yap olarak tanmlanabilir.

    Tarayclar, web belgesi ierisindeki JavaScript kodlarn yorumlamak ve ifllevleri-ni yerine getirmek (derlemek) iin kendi oluflturduklar JavaScript motorlarn (Ja-vaScript Engine) kullanlrlar (Bu JavaScript motorlarnn bir ksm ak kaynakkodludur). JavaScript yorumlayclar kullandklar bellek miktar ya da dier zel-likleri ile tarayc hzn etkileyen en nemli faktrlerin baflnda gelir.

    Tarayclarn kullandklar grntleme motorlar, JavaScript yorumlayclar afla-da listelenmifltir.

    HTML5E GRfi 9

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 9

  • 7/26/2019 Her Ynyle HTML5

    23/368

    FrefoxLayout Engine Ad: Gecko

    OperaLayout Engine Ad: Presto

    Internet ExplorerLayout Engine Ad: Trident

    HER YNYLE HTML510

    Gecko Versiyonu Tarayc Srm

    Gecko 1.7 Firefox 1.0

    Gecko 1.8 Firefox 1.5

    Gecko 1.8.1 Firefox 2

    Gecko 1.9 Firefox 3

    Gecko 1.9.2 Firefox 3.6

    Gecko 2 Firefox 4

    (JS Yorumlaycs JgerMonkey)

    Presto Versiyonu Tarayc Srm

    1.0 Opera 7.0

    2.0 Opera 9.0

    2.1 Opera 9.52.1.1 Opera 9.6

    2.2.15 Opera 10.0, Opera 10.1

    2.5.24 Opera 10.5

    2.6.30 Opera 10.6

    2.7.62 Opera 11 (JS Yorumlaycs Carakan)

    Trident Versiyonu Tarayc Srm

    4.0 IE8

    IE9 (JS Yorumlaycs Chakra)

    5.0 Dier alt srmleri iinmodler bir isim belirtilmemifltir.

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 10

  • 7/26/2019 Her Ynyle HTML5

    24/368

    SafarLayout Engine Ad: WebKit

    Yukardaki liste de Windows iflletim sistemi iin retilen Safari srmleri ve Web-Kit versiyonlar yazlmfltr.

    Afladaki tablolarda tarayclarn tm versiyonlarnn; HTML5 etiket, zellik ve

    teknolojilerini destek durumlarn daha iyi gstermek iin tarayclarn Layout En-gine versiyon numaralar kullanlmfltr.

    Tablolardaki yeni eleman, zellik ya da teknolojinin karflsnda bulunan LayoutEngine srm ve daha sonra kan srmleri ilgili eleman, zellik ya da teknolo-jiyi destekler. Ayrca afladaki tarayc destek durumlar bu kitap yazld tarih iti-bariyle var olan durumdur.

    HTML5E GRfi 11

    WebKit Versiyonu Tarayc Srm

    526.12.2 , 528.1.1 , Safari 4.0528.16 , 528.17

    530.17 Safari 4.1

    530.19.1 Safari 4.0.2

    531.9.1 Safari 4.0.3

    531.21.10 Safari 4.0.4

    531.22.7 Safari 4.0.5

    533.16 Safari 5.0

    533.18.5 Safari 5.0.2

    533.19.4 Safari 5.0.3 (JS Yorumlaycs Nitro)

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 11

  • 7/26/2019 Her Ynyle HTML5

    25/368

    HTML5 ile Yeni Tanmlanan Elemanlara vezelliklere Tarayclarn Verdii Destek

    Yeni Yapsal Elemanlar

    Yeni Media Elemanlar

    HER YNYLE HTML512

    Eleman Ad Internet Explorer Firefox Opera Safari

    Trident 5.0 Gecko2 WebKit 533

    Presto 2.7

    Nightly Build* eklentisi le

    Yok Yok

    Yok Yok Yok Yok

    Yok Yok Presto 2.7 Destei var

    Yok Yok Yok Yok

    Yok Yok Yok Ksmen

    Yok Yok Yok Ksmen

    , , Destei Var Yok Yok WebKit 533

    Eleman Ad Internet Explorer Firefox Opera Safari

    Trident 5.0 Gecko1.9.1 Presto 2.5 WebKit 525(Firefox 3.5) (Safari 3.0)

    IE 3.0 Gecko 1.7 Presto 1.0 Destei var

    Win7 iin yok

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 12

  • 7/26/2019 Her Ynyle HTML5

    26/368

    Canvas Eleman

    Belirtilen tarayclarn canvas elemann hangi zellik ve yntemlerini desteklediiBlm 6da ayrntl bir flekilde anlatlacaktr.

    Yeni Form Elemanlar

    Input Etiketinin Type zelliine Atanabilecek Yeni Deerler

    HTML5E GRfi 13

    Eleman Ad Internet Explorer Firefox Opera Safari

    Trident 5.0 Gecko1.9.2 Presto 2.0 Destei var

    Eleman Ad Internet Explorer Firefox Opera Safari

    Yok

    Destei var Presto 1.0 Destei var

    YokNightly Build*eklentisi ile

    Gecko 2.0 Presto 2.0

    Deer Ad Internet Explorer Firefox Opera Safari

    search Destei var

    tel

    urlemail

    datetime

    date

    month Yok Presto 2.0

    week

    Time Yok

    datetime-local

    Number

    range Destei var

    color Presto 2.7 Win7 iin yok

    Presto 2.7

    WebKit 528

    Gecko 2.0

    Win7 iin yok

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 13

  • 7/26/2019 Her Ynyle HTML5

    27/368

    Input Etiketi iin Yeni zellikler

    HER YNYLE HTML514

    zellik Ad Internet Explorer Firefox Opera Safari

    autocomplete Destei var (IE 8.0)

    autofocus

    form

    height and Destei var (IE 8.0) Yok Presto 2.5.24width

    list Gecko 2.0 Presto 2.0 Yok

    min, max, step Yok Presto 2.0

    multiple Presto 2.7

    novalidate Presto 2.7

    pattern Gecko 2.0 Gecko 2.0 Presto 2.0

    placeholder Presto 2.7

    required Presto 2.0 WebKit 528

    formtarget

    formaction

    formmethod Presto 2.7

    formenctype

    formnovalidate WebKit 528

    Gecko1.9.1(Firefox 3.5)

    Yok Gecko 2.0

    Presto 2.0

    Destei var(Safari 4.0)

    Nightly Build*eklentisi ile

    Destei var(Safari 4.0)

    min,maxNightly Build*eklentisi lestepWebKit 528

    Gecko1.9.1(Firefox 3.5)Sadecetype=filein

    Destei var(Safari 4.0)

    Nightly Build*eklentisi ile

    Yok

    WebKit 528

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 14

  • 7/26/2019 Her Ynyle HTML5

    28/368

    Dier Specfcatons (W3C Bildirimleri) veTeknolojilere Tarayclarn Verdii Destek

    HTML5 ile beraber gelen Standart (Ortak) zellikler ve elemanlar iin tanmlanandier yeni zellikler 2. Blmde anlatlacaktr.

    HTML5 Dili erisindekiTm Etiketlerin Listesi

    HTML5E GRfi 15

    zellik Ad Internet Explorer Firefox Opera Safari

    Selectors API Level1 Opera 10

    Web Storage Opera 10.5

    Web SQL Database Yok Yok Opera 10.5 Safari 3.2

    WebSockets Yok Firefox 4 Opera 11 Safari 5

    Web Workers Yok

    Geolocation API Yok Firefox 3.5 Opera 10.6

    Offline Web Applications Yok Safari 4

    WebGl Yok Firefox 4 Yok Nightly Build*eklentisi ile

    Drag-And-Drop Ksmen Firefox 3.5 Yok Destei var

    IE8 Firefox 3.5

    Safari 5

    Safari 3

    Etiket Durum

    HTML5 tarafndan desteklenmiyor.

    HTML5 tarafndan desteklenmiyor.

    Yeni (HTML5)

    Yeni (HTML5)

    Yeni (HTML5)

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 15

  • 7/26/2019 Her Ynyle HTML5

    29/368

    HER YNYLE HTML516

    HTML5 tarafndan desteklenmiyor.

    HTML5 tarafndan desteklenmiyor.


    Yeni (HTML5)

    HTML5 tarafndan desteklenmiyor.

    Yeni (HTML5)

    Yeni (HTML5)

    Yeni (HTML5)

    HTML5 tarafndan desteklenmiyor.

    Yeni (HTML5)

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 16

  • 7/26/2019 Her Ynyle HTML5

    30/368

    HTML5E GRfi 17

    Yeni (HTML5)

    Yeni (HTML5)

    HTML5 tarafndan desteklenmiyor.

    Yeni (HTML5)

    , HTML5 tarafndan desteklenmiyor.

    ..

    Yeni (HTML5)

    Yeni (HTML5)

    Yeni (HTML5)

    Yeni (HTML5)

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 17

  • 7/26/2019 Her Ynyle HTML5

    31/368

    HER YNYLE HTML518

    Yeni (HTML5)

    HTML5 tarafndan desteklenmiyor.

    Yeni (HTML5)

    Yeni (HTML5)

    Yeni (HTML5)

    Yeni (HTML5)

    Yeni (HTML5)

    Yeni (HTML5)

    Yeni (HTML5)

    HTML5 tarafndan desteklenmiyor.

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 18

  • 7/26/2019 Her Ynyle HTML5

    32/368

    HTML5E GRfi 19

    Yeni (HTML5)

    Yeni (HTML5)

    HTML5 tarafndan desteklenmiyor.

    HTML5 tarafndan desteklenmiyor.

    Yeni (HTML5)

    Yeni (HTML5)

    NOT HTML5 dili ierisine eklenen yeni etiketler ilerleyen blmlerde uygu-lamal olarak anlatlacaktr. Fakat HTML diline yeni bafllyorsanz,HTML5 yapsnda bulunan ve nceki HTML srmlerinden gelen eskietiketlerle ilgili bilgi almak iin; KODLABtan kan XHTML veCSS isimli kitabmdan faydalanabilirsiniz.

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 19

  • 7/26/2019 Her Ynyle HTML5

    33/368

    HER YNYLE HTML520

    +HTML5-BOLUM1 6/17/11 4:37 PM Page 20

  • 7/26/2019 Her Ynyle HTML5

    34/368

    Bu blmde HTML5 ile beraber yeni tanmlanan elemanlar ve zelliklere bakacaz.Fakat daha nce ierik modeli ve tm elemanlarn sahip olduklar ortak zellikleri in-celeyelim.

    HTML5 dilinde elemanlarn saklayabilecekleri ierikler guruplandrlmfl ve erikModeli (Content Models) olarak adlandrlmfltr. erik modeli elemanlarn ne e-flit bir ierie sahip olabileceklerini tanmlamak iin kullanlr. Bir eleman birden

    fazla ierik trn destekleyebilir.HTML5 tarafndan tanmlanan ierik trleri flyledir:

    YEN ELEMANLARve ZELLKLER 2

    Content Type Aklama

    Embedded Dfl kaynakl ve ya baflka bir etiketleme dili ile ya da programatikolarak (rnein; JavaScript ile Canvas eleman kullanm)tanmlanan ierikler. Bu ierik trn kullanan elemanlara rnek;, , , , , ,, ,

    Flow Metin, baflka bir eleman ya da gml olarak tanmlanan ierikler.Bu ierik trn kullanan elemanlara rnek; , ,, , , , , ,,
    , , , , ,, , , , , ,

    Heading Bir blmn baflln tanmlayan ierikler. Bu ierik trn kullananelemanlara rnek; , , , , , ,

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 21

  • 7/26/2019 Her Ynyle HTML5

    35/368

    Standart zelliklerHTML5de her eleman afladaki ortak zelliklere sahiptir. fiimdi bu zelliklerinneler olduuna bakalm.

    accesskey id

    class lang

    contenteditable [HTML5] spellcheck [HTML5]

    contextmenu [HTML5] style

    dir tabindex

    draggable [HTML5] title

    dropzone [HTML5] hidden [HTML5]

    accesskey

    Alabilecei Deer: {Karakter}

    HTML elemanna klavye ksayolu tanmlamak iin kullanlr.

    class

    Ald Deerler: {SnfSeiciAd [*Birdenfazlasnf seiciad yazlabilir]}

    Oluflturulmufl bir snf seiciyi HTML elemanna atamak (uygulanmasn salamak)iin kullanlr.

    HER YNYLE HTML522

    Sectioning , , , elemanlarnn ierik trdr.

    Metadata , , , , , ,

    , elemanlarnn ierik trdr. Sayfalarn grselliinive davranfllarn deifltirebilen ieriklerdir.

    Phrasing Paragraflar oluflturan metin ya da baflka bir eleman olaraktanmlanan ierikler. Bu ierik trn kullanan elemanlara rnek;, , , , , , ,, , , , , , ,,

    Interactive Kullanc ile etkileflim iin tanmlanmfl interaktif ierikler. Bu ieriktrn kullanan elemanlara rnek; , , ,, , , , ,

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 22

  • 7/26/2019 Her Ynyle HTML5

    36/368

    rnek:

    class zellii

    /*Bu Kitap boyunca uygulamalarda CSS ve JavaScript dilleri ile ilgili ksa ve uygulamayaynelik bilgiler verilecektir.*/

    /*box-shadow zell ii; html eleman iin tanml olan kutuya glge efekti vermek iin kullanl rve CSS3 ile tanmlanan bir zelliktir.

    Sz Dizimi:

    box-shadow:inset ;

    inset,blur-radius,spread-radius,color ; istee bal

    :gerekli*/

    .shadow{

    margin-top:20px;

    width:230px;

    height:100px;

    background-color:khaki;

    /*Firefox 3.5 ve 3.6 iin*/

    -moz-box-shadow:20px -10px crimson;

    /*IE9 , Opera 10.5 , Firefox 4.0 iin CSS3 zell ii*/

    box-shadow:20px -10px crimson;/*Safari iin*/

    -webkit-box-shadow:20px -10px crimson;

    /*IE9 alt srmleri iin*/filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=20,OffY=-10, Color=crimson, Positive=true);

    }

    .renk{

    font-family:calibri;

    color:blue;

    }

    Birinci div eleman

    kinci div eleman

    YEN ELEMANLAR VE ZELLKLER 23

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 23

  • 7/26/2019 Her Ynyle HTML5

    37/368

    Eer class zelliine birden fazla snf seici ad yazlmfl ise, son yazlan snf se-ici en ncelikli olur.

    Sayfamzn grnts:

    contentedtable [HTML5]

    Alabilecei Deerler: {true, false}

    Eleman ieriinin dzenlenebilir olup olmadn ayarlamak iin kullanlr.

    true deeri atanmflsa eleman ierii kullanc tarafndan dzenlenebilir/deifl-tirilebilir.

    false deeri atanmflsa eleman ierii kullanc tarafndan dzenlenemez.

    Eer bu zellik bir elemana atanmflsa kaltsal olarak elemann iinde bulunan alt

    elemanlara geer. Bu zellii deeri ile beraber kullanmak flarttr.rnein;

    fleklindeki bir kullanm yanlfl olacaktr.

    Dorusu;

    fleklinde olmaldr.

    HER YNYLE HTML524

    Firefox 3.6 ekran grnts

    IE8 ekran grnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 24

  • 7/26/2019 Her Ynyle HTML5

    38/368

    rnek:

    contenteditable zellii

    Dzenlenebilir erik

    Dikkat ederseniz sayfada bulunan div elemanlar iin contenteditable zellii truedeeri ile tanmlanmfltr. Bu durumda iki div elemannn da ierikleri kullanc tara-fndan deifltirilebilir. Burada fluna dikkatinizi ekmek istiyorum. kinci div eleman-

    nn ierisinde bulunan img eleman, bu zellii kaltsal olarak almaktadr. Tm tara-yclar img elemannn kullanc tarafndan silinmesine izin verir, fakat sadece IE veFirefox img elemannn sayfa zerindeki boyutlarn deifltirmemize izin verecektir.

    YEN ELEMANLAR VE ZELLKLER 25

    Sayfann normal (varsaylan) ekran grnts

    Firefox 3.6 ekran grnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 25

  • 7/26/2019 Her Ynyle HTML5

    39/368

    Tarayc Destei: Internet Explorer 5.5 +, Firefox3+, Opera 9.0+, Safari (Destei var.)

    contextmenu [HTML5]

    Alabilecei Deer: {menu eleman id deeri}

    Bir eleman menu eleman ile iliflkilendirmek iin kullanlr.

    Tarayc Destei: Internet Explorer (Yok), Firefox (Yok), Opera (Yok), Safari (Yok)

    dr

    Alabilecei Deerler: {ltr, rtl}

    HTML elemannn ierdii metnin yazlfl ynn ayarlamak iin kullanlr. ltr ilertl deerlerinden birini alr.

    draggable [HTML5]

    Alabilecei Deerler: {true, false, auto}

    Bir HTML elemannn srklenebilir olup olmayacan ayarlamak iin kullanlr.

    true deeri atanmflsa kullanc mouse ile elemannn konumunu deifltirebilir.

    (Eleman srklenebilir) false deeri atanmflsa eleman srklenemez.

    auto deeri atanmflsa ve yukardaki deerler kullanlmamfl ise tarayc kendivarsaylan deerini kullanlr.

    Tarayc Destei: Internet Explorer (Yok), Firefox 3.5+, Opera (Yok), Safari 5.0+

    dropzone

    Alabilecei Deerler: {copy, move, link }

    Srkle-brak ifllemlerinde brakma anndaki tarayc davranfln tanmlamak iinkullanlr.

    HER YNYLE HTML526

    NOT + karakteri belirtilen srm ve daha sonra kan srmler anlamna gelmektedir.

    NOT Bu zellik, Drag and Drop isimli blmde ayrntl bir flekilde anlatlacaktr.

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 26

  • 7/26/2019 Her Ynyle HTML5

    40/368

    copy deeri atanrsa srkleme iflleminin bittii yerde srklenen datann kop-yas oluflturulur.

    move deeri atanrsa srklenen datay srkleme iflleminin bittii yere taflr. link deeri atanrsa srkleme iflleminin bittii yerde srklenen dataya bir

    link oluflturur.

    Tarayc Destei: Yok.

    d

    Alabilecei Deer: {Bir HTML elemann id zelliine atanan deer}

    HTML elemanlarna benzersiz bir isim vermek iin kullanlr. Aslnda id zellii

    ile HTML elemanlarna bir kimlik numaras verilir. JavaScript ile id zelliine de-er atanmfl yani bir kimlii olan elemanlara ulaflabilir ve alflma annda bu elema-nn stil ve yapsal zelliklerini deifltirebiliriz.

    rnek:

    id zellii

    var goster = function (){

    var yeni_text = document.createTextNode(id zellii);

    /* Yeni bir text (metin) dm oluflturmak iin createTextNode() metodunukullandk.

    *Kullanm:

    *createTextNode(String):String (Bu gsterim Metodun hangi tip deeraldn ve metodun geri dndrd deer trn tanmlar.)

    *Dom Level 1,2

    */

    var div = document.getElementById(icerik);/* id zelliine icerik deerini almfl div elemannn referansn

    aldk. getElementById() metodu belirtilen id deerini almfl elemanobje(Nesne) olarak dndrr.

    *Kullanm:

    *getElementById(String):HTMLElement

    *Dom Level 1,2

    */

    YEN ELEMANLAR VE ZELLKLER 27

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 27

  • 7/26/2019 Her Ynyle HTML5

    41/368

    div.appendChild(yeni_text);

    /* yeni_text isimli metin dmn appendChild() metodu ile div elemanierisine ekledik.

    *Kullanm:*appendChild(Node):Node

    *Dom Level 1,2

    */

    }

    #icerik

    {

    height: 50px;

    width: 200px;

    background-color: lightblue;

    overflow:hidden;

    }

    id zelliine icerik deeri almfl elemannMouse ile zerine gelindiinde yandaki ekran g-rnts oluflur.

    lang

    Alabilecei Deer: {Dil Kodu}

    HTML elemanlarnn ierdikleri metinlerin ya da zelliklerine aldklar deerlerindilini ayarlamak iin kullanlr. rnein; Trke: tr, Almanca: de, ngilizce: en

    spellcheck [HTML5]

    Alabilecei Deerler: {true, false}

    Eer true deeri atanmflsa eleman iindeki metinde dilbilgisi ve yazm hatalarkontrol edilir. false deeri atanmflsa kontrol edilmez. Bu zellii dzenlenebilir

    HER YNYLE HTML528

    Firefox 3.6 ekran grnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 28

  • 7/26/2019 Her Ynyle HTML5

    42/368

    ierie sahip elemanlarda kullanabilirsiniz. rnein; textarea, input ya dacontenteditable=true deerini almfl dier elemanlar.

    Tarayc Destei: Internet Explorer (Yok), Firefox 2+, Opera (Yok), Safari (Yok)

    style

    Alabilecei Deerler: {CSS tanmlamalar(zellik:Deer)}

    Bu zellii kullanarak HTML elemanlarna satr ii CSS kodlar yazabilirsiniz. BuCSS kodlar style zellii ile yazldklar HTML elemanna uygulanr. Stylezelliine yazlan CSS kodlar bir eleman hedef alan CSS kodlar iinde en nce-likli tanmlamalar olacaktr.

    rnek:

    style zellii

    p

    {

    color: Maroon; /*color tanmlamas, p elemanna uygulanmaz.

    nk ncelikli olan color tanmlamas style zelliine yazlan tanmlamadr.*/

    width: 100px;

    }

    Her Ynyle HTML5

    p elemanna atanan CSS zelliklerine grsel olarak inceleyelim.

    YEN ELEMANLAR VE ZELLKLER 29

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 29

  • 7/26/2019 Her Ynyle HTML5

    43/368

    Ekran grntsne bakalm.

    tabndex

    Alabilecei Deer: {Say}

    HTML eleman iin sekme srasn ayarlar.

    ttle

    Alabilecei Deer: {Metin}

    HTML etiketine bilgi ve aklama ekleyebilirsiniz.

    hdden [HTML5]Alabilecei Deer: {hidden}

    HTML elemann gizlemek iin kullanlr.

    Tarayc Destei: Internet Explorer (Yok), Firefox 4.0, Opera (Presto/2.7.7), Safari(Nightly Build* ile)

    HTML5in GetirdiiYeni ElemanlarHTML5 yapsnda bulunan yeni elemanlara bakalm.

    Yapsal Elemanlar

    Bir web sayfas tasarlarken muhtemelen sayfanz kabaca bir st bafllk alan (sitenin ta-ntm iin), bir ierik alan ve yine ierik alan ierisinde deiflik alt bafllklar (blm-ler), bir alt bafllk ve bir ya da daha fazla navigasyon (ynlendirme) alanlarndan olu-flacaktr (Deiflik site tasarmlar olabilir. Burada genel yaklaflmdan sz edilmektedir).Sitenizin yapsn tasarlarken HTML5 ile yeni gelen yapsal elemanlar kullanabilirsi-niz. Bu elemanlarn kullanlmas; kod okunabilirliini arttrr, anlaml eleman gurup-lar oluflturulmasn salar ve CSSi daha etkili bir flekilde kullanmanza yardmc olur.

    HER YNYLE HTML530

    Firefox 3.6 ekran grntsp elemanna atanan CSS zellikleri

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 30

  • 7/26/2019 Her Ynyle HTML5

    44/368

    Bafllk eleman, bu eleman kullanarak sayfa bafllk alan (sayfa hakknda bilgiler ie-

    ren blm), blm veya alt blm bafll ya da ynlendirme alanlar iin bafllk olufl-turabilirsiniz. Genelde h1, h2, h3 .. h6 elemanlarn ya da hgroup elemann ierir.

    zellikleri: [Standart zellikler]

    rnek:

    Header Eleman

    header

    {

    width: 600px;

    height: 85px;

    background-color: #e8ff8c;

    margin: 0px auto;

    padding: 5px;

    }

    header h1{

    font-family: calibri;

    color: #ad3f23;

    margin: 0px;

    }

    header img

    {

    float: right;

    }

    header span

    {

    font-style: italic;

    }

    YEN ELEMANLAR VE ZELLKLER 31

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 31

  • 7/26/2019 Her Ynyle HTML5

    45/368

    Her Ynyle HTML5

    Yeni Nesil ve Zenginletirilmi HTML srm

  • 7/26/2019 Her Ynyle HTML5

    46/368

    rnein;

    Birinci Link

    kinci Link

    nc Link

    Drdnc Link

    ...fleklindeki bir kullanm yerine afladaki kullanm tercih edebilirsiniz.

    Birinci Link

    kinci Link

    nc Link

    Drdnc Link

    rnek:

    nav Eleman

    nav

    {

    width: 145px;

    height: 260px;

    background-color: #ae364c;

    padding: 5px;

    font-family: calibri;

    /*CSS3 border-radius zell ii yuvarlak kenarl kutular oluflturmamz salar.*/

    /* IE9,Firefox 4.0, Opera 10.5+, Safari 4.0,5.0 iin [CSS3 Standard]*/

    border-radius: 5px 30px;

    /*safari 3.0*/

    -webkit-border-radius: 5px 30px;

    YEN ELEMANLAR VE ZELLKLER 33

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 33

  • 7/26/2019 Her Ynyle HTML5

    47/368

    /*Firefox 3.6 ve alt srmleri iin*/

    -moz-border-radius: 5px 30px;

    }

    nav h4

    {

    color: white;

    margin-left: 8px;

    margin: 0px;

    }

    nav > ul

    {

    margin: 5px 0px;

    padding-left: 20px;

    list-style-type: none;

    }

    nav > ul a

    {

    text-decoration: none;

    color: #ffff00;

    }

    Yapsal Elemanlar

    Header

    Footer

    Section

    Aside

    Hgroup

    Ekran grntsne bakalm.

    HER YNYLE HTML534

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 34

  • 7/26/2019 Her Ynyle HTML5

    48/368

    Sayfann ana ierik alannda anlamsal bir btnl olan (farkl konu bafllklarna yada davranfllara gre ayrlmfl) alt blmler (ierikler) oluflturmak iin kullanlr. r-nein; bir blog sayfasnda ana ierik blm iindeki farkl blog yaz alanlarn buelemanla oluflturabilirsiniz. Ya da gazete, dergi makaleleri ieren alanlar, kullanc

    girifli, kullanc yorumlar gibi alanlar bu elemanla oluflturmanz mmkndr. ar-ticle elemann kullanarak biimlendirdiiniz alanlar sayfann deiflik blgelerin-de kullanabilirsiniz.

    zellikleri: [Standart zellikler]

    rnek:

    article Eleman

    p,h3

    {

    margin: 0px;

    }

    YEN ELEMANLAR VE ZELLKLER 35

    Firefox 4.0Beta11 ekrangrnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 35

  • 7/26/2019 Her Ynyle HTML5

    49/368

    article p

    {

    font-family: calibri;

    font-style: italic;}

    footer

    {

    text-align: right;

    }

    footer a

    {

    background-color: hsl(306, 83%, 36.9%); /*HSL hue (renk) -saturation (doygunluk) lightness (parlaklk, aydnlk) hsl (H,S,L)

    CSS3 ile beraber gelen renk deeri tanmlama metodudur.hue deeri 0-360 arasnda bir say alabilir. rnein; 240 mavi,

    360 krmz gibi.

    saturation ve lightness tanmlamalar yzde olarak yaplr.

    [IE9 alt srmleri bu tanmlama metodunu desteklemez]

    */

    color: white;

    font-family: verdana;

    font-size: 11px;

    text-decoration: none;

    }article

    {

    width: 437px;

    height: 110px;

    background-color: hsl(0, 100%, 91.4%);

    padding: 15px;

    /*IE9(Alt srmleri desteklemiyor), Firefox 4.0, Opera 10.5+,

    Safari 4.0,5.0 iin [CSS3 Standard]

    */

    border-radius: 30px;/*safari 3.0 */

    -webkit-border-radius: 30px;

    /*Firefox 3.6 ve alt srmleri iin */

    -moz-border-radius: 30px;

    }

    HER YNYLE HTML536

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 36

  • 7/26/2019 Her Ynyle HTML5

    50/368

    JavaScript ve Kaltsallk

    JavaScript Nesne Tabanl Programlamaya olanak salar.

    rnein Oluturduunuz bir yapc Fonksiyonun(Constructor

    Function) ierisindeki zellik ve yntemleri kaltsal

    olarak (prototype zelliini kullanarak) baka bir yapc

    fonksiyona aktarabilirsiniz.

    Yaznn Devam iin Tklayn

    Ekran grntsne bakalm.

    Sayfa ierisinde genel blmler (ana ierik blm, dier blmler vb.) oluflturmak

    iin kullanlr. HTML5 bu eleman mantksal, tematik alanlar (rnein; eer flylederseniz birinci eleman ierisinde bulunan etiketler sayfann ana icerikblmn oluflturuyor. Bu durumda section elemannn oluflturduu alan mantksalbir alan olarak ifade edilebilir) oluflturmak iin tanmlasa da biz section elemannsadece mantksal alanlar oluflturmak iin deil, ayn zamanda div elemannn yerinebiimlendirilmifl ana blmler oluflturmak iinde kullanabiliriz.

    YEN ELEMANLAR VE ZELLKLER 37

    Firefox 4.0ekrangrnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 37

  • 7/26/2019 Her Ynyle HTML5

    51/368

    zellikleri: [Standart zellikler]

    rnek:

    section Eleman

    div#content

    {

    margin: 0px auto;

    width: 642px;

    height: 280px;background-color:lightblue;

    }

    section

    {

    float: left;

    margin: 5px;

    }

    p, h3

    {

    margin: 0px;}

    article p

    {

    font-family: calibri;

    font-style: italic;

    }

    footer

    {

    text-align: right;

    }

    footer a

    {

    background-color: hsl(306, 83%, 36.9%);

    color: white;

    font-family: verdana;

    font-size: 11px;

    text-decoration: none;

    HER YNYLE HTML538

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 38

  • 7/26/2019 Her Ynyle HTML5

    52/368

    }

    article

    {

    width: 437px;height: 110px;

    background-color: hsl(0, 100%, 91.4%);

    padding: 15px;

    /*IE9(Alt srmleri desteklemiyor), Firefox 4.0, Opera 10.5+,

    Safari 4.0,5.0 iin [CSS3 Standard] */

    border-radius: 30px;

    /*safari 3.0 */

    -webkit-border-radius: 30px;

    /*Firefox 3.6 ve alt srmleri iin */

    -moz-border-radius: 30px;}

    nav

    {

    width: 145px;

    height: 260px;

    background-color: #ae364c;

    padding: 5px;

    font-family: calibri;

    border-radius: 5px 30px;-webkit-border-radius: 5px 30px;

    -moz-border-radius: 5px 30px;

    }

    nav h4

    {

    color: white;

    margin-left: 8px;

    margin: 0px;

    }

    nav > ul{

    margin: 5px 0px;

    padding-left: 20px;

    list-style-type: none;

    }

    nav > ul a

    {

    YEN ELEMANLAR VE ZELLKLER 39

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 39

  • 7/26/2019 Her Ynyle HTML5

    53/368

    text-decoration: none;

    color: #ffff00;

    }

    Yapsal Elemanlar

    Header

    Footer

    SectionAside

    Hgroup

    JavaScript ve Kaltsallk

    JavaScript Nesne Tabanl Programlamaya olanak

    salar. rnein Oluturduunuz bir yapc

    Fonksiyonun(Constructor Function) ierisindeki

    zellik ve yntemleri kaltsal olarak(prototype

    zelliini kullanarak) baka bir yapc

    fonksiyona aktarabilirsiniz.

    Yaznn Devam iin Tklayn

    HER YNYLE HTML540

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 40

  • 7/26/2019 Her Ynyle HTML5

    54/368

    Sayfamzn ekran grntsne bakalm.

    Elemanlarn yerleflimine grsel olarak bakalm.

    erik blmleri ile alakal ek bilgi alanlar oluflturmak iin kullanlrlar. Bu durum-da ierik blmnn yanna konumlandrlrlar. Ya da sayfann ana blmlerinindflnda sayfa kenarlarnda reklam alanlar, yan aklama ve ek bilgi alanlar tanm-lamak iin kullanlrlar.

    YEN ELEMANLAR VE ZELLKLER 41

    Firefox 4.0 ekran grnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 41

  • 7/26/2019 Her Ynyle HTML5

    55/368

    zellikleri: [Standart zellikler]

    rnek:

    aside Eleman

    p,h3

    {

    margin: 0px;

    }

    article p, article pre, aside

    {

    font-family: calibri;

    font-style: italic;

    font-size: 12px;

    }

    article

    {

    width: 437px;

    height: 250px;

    background-color:#F9DAAE;

    padding: 15px;

    position: relative;

    border-radius: 30px;

    -webkit-border-radius: 30px;

    -moz-border-radius: 30px;

    }

    aside

    {

    position: absolute;

    top: 50px;

    right: -120px;

    background-color: #DEE17C;

    width: 120px;

    height: 170px;

    text-indent: 5px;

    }

    HER YNYLE HTML542

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 42

  • 7/26/2019 Her Ynyle HTML5

    56/368

    JavaScript ve Kaltsallk

    JavaScript Nesne Tabanl Programlamaya olanak salar.

    rnein Oluturduunuz bir yapc Fonksiyonun(Constructor

    Function) ierisindeki zellik ve yntemleri kaltsal

    olarak(prototype zelliini kullanarak) baka bir

    yapc fonksiyona aktarabilirsiniz.

    var ana_constructor = function (ad) {

    if (ad == undefined) {

    this.ad = Her Ynyle html5

    } else {

    this.ad = ad;

    }

    };

    var child_const = function (ad) { };

    child_const.prototype = new ana_constructor();

    // child_const isimli yapc metodtan reti len nesneler// ad zell iine sahip olacaklar.

    Daha Fazla Bilgi in

    YEN ELEMANLAR VE ZELLKLER 43

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 43

  • 7/26/2019 Her Ynyle HTML5

    57/368

    Ekran grntsne bakalm:

    Bu eleman kullanarak sayfa, blm ya da alt blmler iin alt bilgi alanlar olufl-turabilirsiniz. Alt bilgi alanlar genelde ierik yazar hakknda bilgi, ieriin olufl-turulma tarihi ya da sayfa sahibi ile ilgili iletiflim bilgilerini ierir.

    zellikleri: [Standart zellikler]

    rnek:

    aside Eleman

    footer {

    /*IE9 ,firefox 4.0 ,Safari 5.0 alt srmleri iin

    display:block tanmlamas yaplmfltr*/display:block;

    width:600px;

    height:70px;

    font-family:consolas;

    font-size:12px;

    padding-top:10px;

    HER YNYLE HTML544

    Firefox 4.0ekrangrnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 44

  • 7/26/2019 Her Ynyle HTML5

    58/368

    /*Arkaplan rengi olarak bir gradient tanmlama (renk geifli)*/

    /*Mozi lla Firefox 3.6+*/

    background:-moz-linear-gradient(left top,#F5F3F0,#2CDEDE);

    /*Safari 4.0+*/

    background:-webkit-gradient(linear, 46% 0%, 100% 100%,

    from(#F5F3F0), to(#2CDEDE));

    /*IE 5.5+*/

    filter:Progid:DXImageTransform.Microsoft.gradient(startColorstr=#F5F3F0,

    endColorstr=#2CDEDE,gradientType=1);

    }

    footer p {

    width:300px;

    font-family:consolas;

    font-size:12px;

    padding-left:10px;

    }

    Kitap Sat Dnyas Copyright 2005 - 2011

    Her Hakk Sakldr Tel:xxx.xxx.xx.

    YEN ELEMANLAR VE ZELLKLER 45

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 45

  • 7/26/2019 Her Ynyle HTML5

    59/368

    Ekran grntlerimize bakalm:

    Resim, fotoraf alanlar (ya da media alanlar) tanmlamak iin kullanlr. Bu flekilalanlarna bir metin ilifltirmek iin eleman kullanlr.

    zellikleri: [Standart zellikler]

    rnein;

    ya da resme tanmlayc bir metin ekleyebilirsiniz.

    irketimizin Arge Blm

    HER YNYLE HTML546

    Firefox 4.0 ekran grnts

    IE8 ekrangrnts

    NOT HATIRLATMA

    Yukarda anlatlan elemanlarn blok seviyesinden elemanlar olduklarn fark etmifl-sinizdir. HTML elemanlar sayfadaki yerleflim dzeylerine gre ikiye ayrlr. Bunlar;satr ii (inline element), blok seviyesi eleman (block level element)dr. Taraycblok seviyesi elemanndan nce ve sonra bir satr sonu oluflturur.

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 46

  • 7/26/2019 Her Ynyle HTML5

    60/368

    rnek:

    Hatrlatma

    body> * {

    background-color: crimson;

    }

    header

    footer

    article

    aside

    hgroup

    section

    nav

    figure

    YEN ELEMANLAR VE ZELLKLER 47

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 47

  • 7/26/2019 Her Ynyle HTML5

    61/368

    Ekran grnts:

    Yukarda anlatlan elemanlar IE9, Firefox 4, Opera (Presto 2.7.70), Safari 5.0 tara-yclarnn alt srmleri tarafndan desteklenmemektedir. Peki, ya bu alt srmlerbu eleman sayfaya nasl yerlefltirecekler? Hemen aklayalm.

    Internet Explorer alt srmleri bu elemanlar hi tanmayacaktr. Bu elemanlarhedef alan CSS kodlarn uygulamazlar. Bu durumun zm iin JavaScript yar-dmyla belirtilen elemanlar programatik olarak oluflturmak yeterli olacaktr.IE9un tanmad dier yeni elemanlar da bu flekilde oluflturup sayfa ierisindekullanabilirsiniz.

    HER YNYLE HTML548

    Firefox 4.0Beta11 ekran grnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 48

  • 7/26/2019 Her Ynyle HTML5

    62/368

    Yukardaki Script blou sadece IE9 alt srmlerinde alflacaktr.

    Belirtilen elemanlar IE9 alt srmlerinde blok seviyesin den bir eleman olarak kul-

    lanmak iin afladaki CSS tanmlamasn yapalm.

    header, hgroup, nav, article, section, aside, footer, figure {

    display:block;

    }

    Artk IE9 alt srmlerinde bu elemanlar kullanabiliriz.

    rnek:

    IE9 alt srmleri

    header, hgroup, nav, article, section, aside, footer, figure {

    display:block;

    }

    header {

    background-color:lightblue;

    }

    header Eleman

    YEN ELEMANLAR VE ZELLKLER 49

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 49

  • 7/26/2019 Her Ynyle HTML5

    63/368

    Ekran grntsne bakalm:

    Firefox 4.0 ve Opera (Presto 2.7.70) gibi dier tarayclarn alt srmleri bu eleman-lar satr ii bir eleman olarak olufltururlar oysa ki bu elemanlar sayfa blmleri ve alt

    blmler oluflturmak iin kullanlrlar (Blok seviyesinden elemanlar olmalar gerekir).Bu problemin zm iin afladaki CSS tanmlamas yeterli olacaktr.

    header, hgroup, nav, article, section, aside, footer, figure {

    display:block;

    }

    Dier Elemanlar

    Yukarda anlatlan yapsal elemanlar dflnda HTML5 yaps ierisinde duyurulan

    dier ifllevsel elemanlara bakalm.

    Metni iflaretlemek iin kullanlr. Bu eleman kullanarak okuyucunun dikkatini e-kecek vurgulu metinler oluflturabilir ya da metnin referans olarak tanmlanmasnsalayabilirsiniz. Satr ii bir elemandr.

    zellikleri: [Standart zellikler]

    rnein;

    Metni

    iaretlemek

    iin kullanlr.

    HER YNYLE HTML550

    IE8 ekran grnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 50

  • 7/26/2019 Her Ynyle HTML5

    64/368

    CSS kodlar ile mark eleman ierisindeki metne stil vererek okuyucunun dikkatinibu kelimeye ekebilirsiniz.

    rnek:

    Bu durumun zm iin JavaScript yardmyla belirtilen

    elemanlar programatik olarak oluturmamz yeterli olacaktr.

    IE9un tanmad dier yeni elemanlar da bu

    ekilde oluturup IE9 alt srmlerinde

    ortaya kan bu problemi zebilirsiniz.

    Sayfada yaplacak aramalarda bulunacak ayn metin paralarnn hepsini bu etiketierisine alp, nceden bir stil tanmlamas yapabilirsiniz.

    Belirlediiniz bir aralk iinde bir deeri (lm) kullancya grsel olarak gster-mek iin kullanlr. Bu eleman bir ilerleme ubuu (progress bar) olarak kullanl-mamaldr.

    zellikleri: [Standart zellikler] ile form, high, low, max, min, optimum, value

    form: meter elemannn bir form eleman ile iliflkili olup olmadn tanmla-

    mak iin kullanlr. Bu zellie elemann iliflkili olduu form elemannn idzelliine atanan deer yazlr. Aralarnda boflluk brakmak kaydyla birdenfazla form id deeri yazlabilir.

    high: min, max zellikleri ile tanmlanan aralkta yksek olarak kabul edilecekdeeri tanmlar. Belirtilmezse ya da high zelliine atanan deer max zelliineatanan deerden yksek ise max zelliine atanan deer yksek deer olarak ka-bul edilir. lowve optimal zellikleri ile beraber kullanlr.

    low: min, max zellikleri ile tanmlanan aralkta dflk olarak kabul edilecek

    deeri tanmlar. Belirtilmezse ya da lowzelliine atanan deer min zelliineatanan deerden dflkse, min zelliine atanan deer, dflk deer olarak ka-bul edilir. high ve optimal zellikleri ile beraber kullanlr.

    max, min: Araln en dflk ve en yksek deerlerini tanmlamak iin kullan-lrlar. lm, (sonuta kullancya grsel olarak sunulacak deer) bu deerlerarasndadr. Eer bu zellikler tanmlanmazsa varsaylan olarak max=1.0,min=0 deerlerini alr.

    YEN ELEMANLAR VE ZELLKLER 51

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 51

  • 7/26/2019 Her Ynyle HTML5

    65/368

    optimum: min, max deerleri arasnda en uygun deer tanmlamas yapmak iinkullanlr. Bu deer high deerinden byk ise yksek deerler, lowdeerinden

    kk ise kk deerler uygun deerler olarak kabul edilebilir. Belirtilmezsemin, max deerleri arasndaki orta nokta optimum deer olarak kabul edilir.

    value(Gerekli): lm deerini (sonuta kullancya grsel olarak sunulacakdeer) tanmlamak iin kullanlr. Bu deer min, max deerleri arasnda olmaldr.Bu zellie deer atanmazsa varsaylan deer 0 olur. min deerden daha dflkolursa value=min, max deerden daha byk olursa value=max olur.

    Afladaki rnekte value deeri low(aralkta dflk olarak kabul edilen deer) de-erinden daha kktr.

    llen A:

    Ekran grnts:

    fiimdi de value deerine high (aralkta yksek olarak kabul edilen deer) deerin-den daha byk bir deer verelim.

    llen A:

    Ekran grnts:

    HER YNYLE HTML552

    Opera 11.ekran grnts

    Opera 11 ekran grnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 52

  • 7/26/2019 Her Ynyle HTML5

    66/368

    Dikkat ederseniz her iki durumda da ilerleme ubuunun dolgu rengi ayn olacak-tr. nk deerlerden birincisi dflk olarak kabul edilen deerden (low) daha k-

    k dieri ise byk olarak kabul edilen deerden (high) daha byktr.value zelliine low, high deerlerinin arasnda bir deer atanrsa, ilerleme ubu-unun dolgu rengi yukardaki durumlardan farkl olacaktr (yeflil olur).

    llen A:

    Ekran grnts:

    Sayfada grntlenen (rnein; menu eleman ierisinde) ya da grntlenmeyen birkomut dmesi tanmlamak iin kullanlr. Type zelliini kullanarak bu eleman

    checkbox ya da radio elemanlarna dnfltrebilirsiniz. Bu elemana flu an iin tara-yc destei bulunmamaktadr.

    zellikleri: [Standart zellikler] ve checked, disabled, icon, label, radiogroup,type

    Bir grevin, ifllemin tamamlanma/ilerleme srecini kullancya gstermek iin ya-ni ilerleme ubuu oluflturmak iin kullanlr.

    zellikleri: [Standart zellikler] ve max,value max: Grevin ya da ifllemin bitirilme durumunu tanmlayan deer.

    value: Grevin ya da ifllemin flu andaki durumunu gsteren deer.

    YEN ELEMANLAR VE ZELLKLER 53

    Opera 11.01 grnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 53

  • 7/26/2019 Her Ynyle HTML5

    67/368

    rnek:

    lemin Durumu:

    Ekran grnts:

    Zaman ya da tarih ya da her ikisini birden ieren tanmlamalar yapmak iin kullanlr.

    zellikleri: [Standart zellikler] ve datetime, pubdate

    datetime zellii tarih ya da zaman tanmlamak iin kullanlr. Afladaki formatagre tarih ya da zaman deerlerini girebilirsiniz.

    Yl-Ay-Gn Saat:Dakika:Saniye TZD (Time Zone Designator, Saat dilimi

    Tanmlaycs)

    Yukardaki tanmlamada kullanlan argmanlar istee baldr.

    rnek:

    e Balama Tarihi: Ocak 10.

    HER YNYLE HTML554

    Opera 11 ekran grnts

    +HTML5-BOLUM2 6/17/11 4:25 PM Page 54

  • 7/26/2019 Her Ynyle HTML5

    68/368

    HTML5 yaps kendinden nceki HTML srmleri gibi JavaScript programlamadilini kullanr. JavaScript, tarayc da alflan ve Nesne Tabanl Programlama imka-n sunan bir dildir. Browser, JavaScript komutlarn yorumlayarak ifllevlerini yeri-ne getirir. JavaScript ECMAScript-262 (5. srm) standardn kullanr. Bilinme-si gereken dier bir konuda DOM (Document Object Model)dir. DOM, HTML veXML belgeleri iin oluflturulmufl bir programlama arayzdr (API).

    DOM (Dokman Nesne Modeli), sayfadaki tm elemanlar birer nesne olarak ta-nmlar. JavaScript yardmyla DOMun tanmlad bu nesnelere (nesnelerin zel-lik ya da metotlarna) ulaflabilir ve kod yazabiliriz. DOM bildirimleri sayfa eleman-larnn dflnda sayfann iflleyifli, olay akfl ve dier durumlar iin zel nesneler ta-nmlar ve kullanma sunar.

    Aflada DOM bildirimleri verilmifltir.

    Document Object Model Level 1

    Document Object Model Level 1 (W3C Recommendation)

    Document Object Model Level 1 (Second Edition) (W3C Working Draft)

    Document Object Model Level 2

    Document Object Model Level 2 Core (W3C Recommendation)

    Document Object Model Level 2 Views (W3C Recommendation)

    Document Object Model Level 2 Events (W3C Recommendation)

    HTML5 veJAVASCRIPT 3

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 55

  • 7/26/2019 Her Ynyle HTML5

    69/368

    Document Object Model Level 2 Style (W3C Recommendation)

    Document Object Model Level 2 Traversal and Range (W3C Recommendation)

    Document Object Model Level 2 HTML (W3C Recommendation)

    Document Object Model Level 3

    Document Object Model Level 3 Core (W3C Recommendation)

    Document Object Model Level 3 Load and Save (W3C Recommendation)

    Document Object Model Level 3 Validation (W3C Recommendation)

    Dier Bildirimler (Sadece Selector Apiler listelenmifltir)

    Selectors API Level 1 Selectors API Level 2 (W3C Working Draft)

    Dikkat ederseniz; DOM bildirimleri para para yaplmfl olup, core bildirimleri il-gili srmn ekirdek yapsn oluflturmaktadr. Tarayclar asndan olaya bakar-sak; modern web tarayclarnn yeni modelleri DOM Level 2 bildirimlerine bykbir lde destek vermekle beraber, DOM Level 3 bildirimlerine desteklerini hzlaaklamaktadrlar. DOM bildirimlerinde tanmlanan nesnelere, nesnelerin zellikya da metotlarna tarayclarn eski srmleri ya ksmen destek verirler ya da hivermezler. Bu durum bizi farkl tarayclar iin farkl kodlar yazmaya yneltir.

    rnein; Document Object Model Level 2 Events bildirimi ile tanmlanan olay akfl evreden oluflur. Bunlar; capturing, target, bublingdir. Peki, bu modeli tarayc-lar destekliyor mu? Yani Document Object Model Level 2 Events bildirimine taray-c destei nedir?

    IE9 alt srmleri olay akfln sadece bubling evresinden ibaret grr. Yani dierevreleri desteklemez ve bu bildirim iinde bulunan olay dinleyicilerini de destekle-mediinden, biz de uygulama olufltururken farkl tarayc kodlar yazarz. Syle-

    mek istediim fley; tarayclarn bu bildirimleri farkl oranda destekledikleridir.Peki, HTML5 ile bunun ne alakas var?

    HTML5 tarayclarn DOM bildirimlerine verdikleri destei hzlandrmalarna nedenolmufltur. Tarayclar HTML5 verdikleri destekleri akladklar sayfalarda DOM,JavaScript ve dier ek teknolojilere verdikleri destekleri de aklamaktadrlar.HTML5, JavaScript, DOM i ie gemifl yaplardr.

    HER YNYLE HTML556

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 56

  • 7/26/2019 Her Ynyle HTML5

    70/368

    Tarayclar, DOM nesnelerini ve nesneler iin tanmlanan zellik ve metotlar deste-ledike istemci tarafl web uygulamalar gelifltirmek daha konforlu bir hal alacaktr.

    JavaScript dilinin etkinlii (gc) artacak ve HTML5 dilini daha etkili bir flekilde kul-lanabileceiz. fiimdi aflada HTML5 yaps ile beraber tarayclarn destek verdik-lerini akladklar ve W3C Selectors API Level 1 bildiriminde bulunan yeni me-totlara bakalm.

    querySelector()

    W3C Selectors API Level 1 bildiriminde bulunan bu metot ile CSS seicilerinikullanarak belgedeki bir elemann referansn alabilirsiniz.

    Kullanm: elemanReferans=document.querySelector(selectors)

    lk durumda; belge ierisinde seici tarafndan hedef alnan ilk elemann referansngeriye dndrr.

    elemanReferans=temelEleman.querySelector(selectors)

    kinci durumda; belirtilen temel eleman iinde seici tarafndan hedef alnan ilkelemann referansn geriye dndrr.

    Eer seici tarafndan hedef alnan eleman bulunamazsa (seici ile eflleflen elemanolmazsa) geriye null deeri dner.

    Seici tarafndan hedef alnmak ne demektir?

    CSS seicileri, HTML eleman isimleri ve birok zel karakterler ierebilir. Olufl-turduunuz seiciler en kaba tabiriyle iinde barndrdklar CSS kodlarnn uygu-lanmas iin eleman ya da elemanlar seer (bu adan seiciler birer sorgu deyimigibidirler). Seici tanmlamalar yaparak CSS kodlarnn uygulanaca elemanlarseilir, yani hedef alnr.

    rnek:

    Yeil

    HTML5 VE JAVASCRIPT 57

    NOT Tarayclarn DOM ve CSS bildirimlerine verdikleri destekleri grmek iin tarayc

    destek sayfalarna ya da http://www.quirksmode.org/sitesine bakabilirsiniz.

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 57

  • 7/26/2019 Her Ynyle HTML5

    71/368

    Beyaz

    Krmz

    Sar

    Mavi

    Seicilerimize bakalm...

    nav ol li {

    /*Bu seici srasyla nav ve ol elemanlarnn soyundan

    gelen li elemanlarn hedef alr (seer).*/

    color:blue;

    }

    nav ol> li#acil+ li {

    /*Bu seici srasyla nav ve ol elemanlarnn soyundan

    gelen li#acil elemannn kardefli olan li elemann hedef alr (seer).*/

    color:red;

    }

    Ekran grnts:

    rnek:

    HER YNYLE HTML558

    Firefox 4.0 Beta11 ekran grnts

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 58

  • 7/26/2019 Her Ynyle HTML5

    72/368

    Selector

    /*

    * Direk script etiketleri arasnda(sayfa yklenmeden nce) bir

    * elemann referansn alamayz.

    * nk tarayc bu satrlar body elemann yorumlamadan (sayfaya

    * yklemeden) nce okuyacandan belirtilen eleman bulamaz ve

    * null deerini dndrr.

    */

    var init= function() {

    /* ilk nce id zel liine html5 deeri atanmfl elemanaulaflalm (referansn alalm, nesne olarak elde edelim)*/

    var elemanHtml5=document.querySelector(#html5);

    /*element.textContent:String (geriye String deer dndrr)

    Dm ierisindeki metni verir.

    Bildirim: DOM Level 3 Core */

    console.log(elemanHtml5.textContent);

    /* div#content eleman ier isindeki en son div elemanna ulaflalm.*/

    var elemanJs=document.querySelector(div#content>div#css+div);

    console.log(elemanJs.textContent);

    /* div#html5 eleman ierisindeki span elemannn referansn alal m.*/var elemanSpan=elemanHtml5.querySelector(span);

    console.log(elemanSpan.textContent);

    /* Srasyla div#html5 ve span elemanlarnn iinde olan b elemannn

    referansn alalm.*/

    var elemanB=elemanHtml5.querySelector(span>b);

    console.log(elemanB.textContent);

    }

    Her YnyleHTML5

    Xhtml ve CSS

    javascript

    HTML5 VE JAVASCRIPT 59

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 59

  • 7/26/2019 Her Ynyle HTML5

    73/368

    Firebug; Firefox tarafndan desteklenen, hata ayklama iin kullanabileceimiz, CSSzelliklerinin eleman zerindeki etkisini grsel olarak grebileceimiz, elemanlarn

    DOM zellik ve yntemlerini ayrntl bir flekilde gsteren ve dier birok zellii ba-rndran web sayfas tasarmclar iin bulunmaz bir aratr. alflma annda firebugkonsoluna deiflken, nesne ya da bir deer yazdrmak iin console.log() metodukullanlr.

    fiimdi ekran grntsne bakalm.

    rnek:

    querySelector

    var init= function() {

    var elemanDiv=document.querySelector(div#content div)

    /*Oluflturduumuz seici ile aslnda div#content eleman iindeki

    tm div elemanlar seilmifl yani hedef alnmfltr.

    Fakat querySelector() metodu seici tarafndan hedef alnan belge

    aacndaki ilk elemann referansn dndrr.*/

    HER YNYLE HTML560

    Firefox 3.6 ve Firebug 1.6.2 ekran grnts

    NOT Firebug aracn http://getfirebug.com/sitesinden indirebilirsiniz.

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 60

  • 7/26/2019 Her Ynyle HTML5

    74/368

    console.log(elemanDiv.id);

    }

    Ekran grnts:

    Elemanlarn yapsal olarak grnts:

    HTML5 VE JAVASCRIPT 61

    Firefox 3.6 ve Firebug 1.6.2 ekran grnts

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 61

  • 7/26/2019 Her Ynyle HTML5

    75/368

    rnek:

    querySelector

    var init= function() {

    var elemanDiv=document.querySelector(div#content>div)

    /*Oluflturduumuz seici ile div#content elemannn ocuu olan

    ilk div elemanna ulaflmak istedik. Fakat byle bir eleman yoktur (seici ile

    eflleflen eleman yok).Dolaysyla geriye null deeri dner.*/

    console.log(elemanDiv);

    }

    Html5

    Ekran grnts:

    HER YNYLE HTML562

    Firefox 3.6 ve Firebug 1.6.2 ekran grnts

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 62

  • 7/26/2019 Her Ynyle HTML5

    76/368

    rnek:

    querySelector

    var init= function() {

    /*querySelector() metoduna arada virgl koymak kaydyla bir ya da daha fazla seici yazlabilir.

    Bu durumda; eer belge zerinde birinci seicinin hedef ald eleman bulunamazsa ikinci

    seicinin hedef ald eleman aranr.*/

    var elemanDiv=document.querySelector(#div1,#div2);var elemanP=document.querySelector(.p1,.p2);

    alert(elemanDiv.id + \n + elemanP.className);

    }

    Aptana Studio 3

    Dom Level 2

    HTML5 VE JAVASCRIPT 63

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 63

  • 7/26/2019 Her Ynyle HTML5

    77/368

    Ekran grnts:

    Tarayc destei: Internet Explorer 8+, Firefox 3.5+, Opera 10+, Safari 3.2+

    querySelectorAll()W3C Selectors API Level 1 bildirimi ile tanmlanan bu metot CSS seicilerini kul-lanarak belgedeki eleman ya da elemanlar nesne olarak elde etmek iin kullanlr.

    Kullanm: elemanlistesi=document.querySelectorAll(selectors)

    lk durumda; belge ierisinde seici ile eflleflen elemanlarn listesini (StaticNode-List) dndrr.

    elemanlistesi=temelEleman.querySelector(selectors)

    kinci durumda; Belirtilen temel eleman iinde seici ile eflleflen elemanlarn liste-sini (StaticNodeList) dndrr.

    Eer seici tarafndan hedef alnan eleman ya da elemanlar bulunamazsa (seici ile

    eflleflen eleman olmazsa) geriye null deeri dner.StaticNodeList (static dm listesi); querySelectorAll() metodu ile Static-NodeList nesnesi elde edildikten sonra, DOM metotlar ile belge aa yapsndaprogramatik olarak yaplan deifliklikler olduunda (eleman ekleme, karma)StaticNodeList iindeki eleman listesi gncellenmez.

    StaticNodeList nesnesinin (querySelectorAll() metodunu atadmz deiflken)

    HER YNYLE HTML564

    Firefox 3.6 ekran grnts

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 64

  • 7/26/2019 Her Ynyle HTML5

    78/368

    iindeki eleman referanslarna ulaflmak iin; StaticNodeList[index numaras]ya da StaticNodeList.item(index numaras)yntemlerinden birini kullanabilir-

    siniz. index numaras 0dan bafllayacaktr.lk rneimizi NodeList ve StaticNodeList arasndaki fark anlatmak iin yapalm;

    rnek:

    querySelectorAll

    var init= function() {

    var elemanlar1=document.querySelectorAll(div#div1>*);

    /*div#div1 eleman ierisindeki tm elemanlarn static bir

    listesi(StaticNodeList) alnd(elemanlar1 iinde)*/

    var elemanlar2=document.getElementsByTagName(p);

    /*Belge ierisindeki tm p elemanlarnn canl b ir listesi

    (NodeList) alnd (elemanlar2 iinde)*/

    /*StaticNodeList iindeki eleman saysn yazdral m*/

    console.log(StaticNodeList(querySelectorAll) eleman says+:+elemanlar1.length);

    /*StaticNodeList iindeki elemanlar konsola yazdral m*/

    for(var i=0;i

  • 7/26/2019 Her Ynyle HTML5

    79/368

    yeni_eleman.textContent=yeni bir div eleman;

    var elemanDiv=document.querySelector(#div1);

    elemanDiv.appendChild(yeni_eleman);

    /*StaticNodeList iindeki eleman saysn tekrar yazdral m*/console.log(StaticNodeList(querySelectorAll) eleman says+

    :+elemanlar1.length);

    /*StaticNodeList iindeki elemanlar konsola yazdral m*/

    for(var i=0;i

  • 7/26/2019 Her Ynyle HTML5

    80/368

    Ekran grnts:

    rnekten de anlafllaca zere NodeList, canl (gncellenen) bir eleman dmlistesi iken, StaticNodeList gncellenmeyen statik dm listesidir.

    rnek:

    querySelectorAll

    var init= function() {

    var staticlistDiv=document.querySelector(div#div1>div);

    /*div#div1 elemannn ocuu olan herhangi bir div eleman

    olmadndan geriye null deeri dner*/

    console.log(staticlistDiv);

    // sonu: nul l

    }

    HTML5 VE JAVASCRIPT 67

    Firefox 3.6 ve

    Firebug 1.6.2

    ekran grnts

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 67

  • 7/26/2019 Her Ynyle HTML5

    81/368

    Aptana Studio 3

    Dom Level 2

    rnek:

    querySelectorAll

    var init= function() {

    var staticlistP=document.querySelectorAll(div#div1>p);

    /*div#div1 elemannn ocuu olan p elemanlar nn

    listesi geriye dner*/

    for(var i=0;i

  • 7/26/2019 Her Ynyle HTML5

    82/368

    Aptana Studio 3

    Dom Level 2

    Dom Level 3

    Ekran grnts:

    rnek:

    querySelectorAll

    var init= function() {

    var staticlistDiv=document.querySelectorAll(body>div);

    /*belge ierisinde seici ile eflleflen(seici tarafndan sei len) sadece

    bir div eleman var. Bu durumda StaticNodeList(StaticElemanListesi)

    ierisinde sadece bir div eleman olacaktr*/

    HTML5 VE JAVASCRIPT 69

    Firefox 3.6 ve Firebug 1.6.2 ekran grnts

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 69

  • 7/26/2019 Her Ynyle HTML5

    83/368

    console.log(staticlistDiv.length);

    console.log(staticlistDiv[0]);

    var staticlistP=document.querySelectorAll(p);

    /*belge ierisindeki tm p elemanlarnn listesi staticlistP nesnesine aktarld.

    Aslnda liste trn(NodeList,StaticNodeList) gz ard ederseniz

    getElementsByTagName() metodu ile ayn ifllemi yapt*/

    console.log(staticlistP.length);

    console.log(staticlistP[0]+\n +staticlistP[1]);

    }

    div ierii

    birinci paragraf

    ikinci Paragraf

    Ekran grnts:

    HER YNYLE HTML570

    Firefox 3.6 ve

    Firebug 1.6.2 ekran grnts

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 70

  • 7/26/2019 Her Ynyle HTML5

    84/368

    Tarayc destei: Internet Explorer 8+, Firefox 3.5+, Opera 10+, Safari 3.2 +

    getElementsByClassName()HTML5 bildirimi iinde bulunur. Bu metot, belirtilen snf seiciyi kullanan elemanya da elemanlarn canl (dinamik) bir listesini dndrr (bu metot, geriye NodeListnesnesi dndrr).

    Kullanm: elemanlistesi = document.getElementsByClassName(classNames)

    lk durumda; belge ierisinde belirtilen snf seici adn kullanan (yani belirtilen s-nf seicinin atand) elemanlarn listesini (NodeList) dndrr.

    elemanlistesi = temelEleman.getElementsByClassName(classNames)

    kinci durumda; belirtilen temel eleman (referans alnan eleman) ierisinde bulu-nan ve belirtilen snf seici adn kullanan elemanlarn listesini (NodeList) dn-drr.

    NodeList nesnesinin iindeki eleman referanslarna ulaflmak iin;

    NodeList[index numaras] ya da NodeList.item(index numaras) yntemle-rinden birini kullanabilirsiniz (index numaras 0dan bafllayacaktr).

    rnek:

    getElementsByClassName

    var init=function(){

    /*class zel liine onem snf seici deeri atanmfl belge ierisindeki tm

    elemanlarn Dinamik bir listesine ulaflalm ve bu listeyi bir deiflkene atayalm(Listenin atand deiflken artk bir NodeList nesnesi olacaktr)*/

    var elemanlarOnem=document.getElementsByClassName(onem);

    /*NodeList nesnesi (elemanlarOnem) iindeki elemanlarn referansna

    ulaflalm ve bu elemanlara bir color tanmlamas yapalm*/

    for(var i=0;i

  • 7/26/2019 Her Ynyle HTML5

    85/368

    }

    }

    Context2DRendering

    Context3DRendering

    CanvasUygulamalar

    Ekran grnts:

    rnek:

    getElementsByClassName

    var init=function(){

    /*class zelli ine onem sn f seici deeri atanmfl belge ier isindeki tm

    elemanlarn Dinamik bir listesine ulaflalm ve bu listeyi bir deiflkene atayalm

    (Listenin atand deiflken artk bir NodeList nesnesi olacaktr)*/

    var elemanlarOnem=document.getElementsByClassName(onem);

    /*NodeList nesnesi(elemanlarOnem) iindeki elemanlarn referansna ulaflalm ve

    bu elemanlara bir color tanmlamas yapalm*/

    HER YNYLE HTML572

    Firefox 3.6 ekran grnts

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 72

  • 7/26/2019 Her Ynyle HTML5

    86/368

    for(var i=0;i

  • 7/26/2019 Her Ynyle HTML5

    87/368

    Ekran grnts:

    rnek:

    getElementsByClassName

    var init=function(){

    /*class zelli ine onem baslik(iki tane sn f seici ad) snf seiciisim listesi atanmfl belge ierisindeki tm elemanlarn dinamik bir

    listesine ulaflalm ve bu listeyi bir deiflkene atayalm(Listenin atand

    deiflken artk bir NodeList nesnesi olacaktr)*/

    var elemanlarOnem=document.getElementsByClassName(onem baslik);

    /*NodeList nesnesi(elemanlarOnem) iindeki elemanlarn referansna

    ulaflalm ve bu elemanlarn ieriklerini firebug konsoluna yazdralm*/

    for(var i=0;i

  • 7/26/2019 Her Ynyle HTML5

    88/368

    Ekran grnts:

    Tarayc destei: Internet Explorer 9, Firefox 3+, Opera 9.5+, Safari 3.1+

    Seici Metotlarn DesteklemeyenTarayc Srmleri iin zmYukarda anlatlan metotlarn hangi tarayclar tarafndan ne lde desteklendii-

    ni nceki konuda anlatmfltk. Ne yazk ki tarayclar W3C bildirimlerini ya da di-er bal teknolojileri ayn oranda desteklememektedirler. Bu durum programcyaek bir yk getirir. Dflnn sayfa tasarlarken bir eleman (nesne) ya da zel bir nes-ne kullanacaksanz ilk nce tarayc desteine bakp, daha sonra desteklemeyen ta-rayclar iin ek kod yazmanz gerekecektir. Yani farkl tarayclar iin farkl kod-lar yazmanz gerekebilir. Afladaki rnee bakp konumuza devam edelim.

    rnee gemeden nce...

    firstElementChild (Bir elemann iindeki ilk eleman dmne ulaflmak iin),

    lastElementChild (Bir elemann iinde bulunan son eleman dmne ulaflmak iin),

    nextElementSibling (HTML aa yapsnda referans alnan elemandan sonra ge-len elemann (kardefl eleman) referansn almak iin),

    previousElementSibling (HTML aa yapsnda referans alnan elemandan ncegelen elemann (kardefl eleman) referansn almak iin) kullanlrlar ve bu zellik-ler element dmleri (elemanlar) iin tanmldrlar.

    HTML5 VE JAVASCRIPT 75

    Firefox 3.6 ve Firebug 1.6.2

    ekran grnts

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 75

  • 7/26/2019 Her Ynyle HTML5

    89/368

    Bu zellikler Document Object Model Level 2 Traversal and Range bildirimiile tanmlanmfllardr. Bu zelliklere tarayclar tarafndan verilen destee bakalm.

    Tarayc destei: Internet Explorer 9, Firefox 3.5+, Opera 10.10+, Safari 4+

    fiimdi tarayclarn desteklemeyen srmleri iin bu zellikleri kullanlabilir halegetirelim. Kodlarmz yazmaya bafllayalm.

    Document Object Model Level 2 Traversal and Range

    var jsharp = {

    /*jsharp javascript Framework 1.0

    * (Document Object Model Level 2 Traversal and Range

    partial support)

    * brahim elikbilek*/

    _firstElementChild:function(e_ref/*e_ref:elemanReferans*/){

    /*Bir elemann iindeki i lk eleman dmne ulaflmak iin

    *_firstElementChild() metodunu tanmladk.Eer eleman baflka

    bir eleman iermiyorsa _firstElementChild() metodu geriye

    null deerini dndrr.*/if (e_ref.firstElementChild == undefined) {

    //Eer firstElementChild zellii desteklenmiyorsa;

    //firstChild zel lii kullanlr .

    //bu zel lik elemann iindeki i lk dm(Node)

    //geriye dndrr.

    var child = e_ref.firstChild;

    //e_ref ile tanml elemannn ilk ocuk dmne ulafltk.

    while (child) {

    if (child.nodeType == 1) {/*Bir dmn trne bakarak bu dmn ne dm

    olduunu anlayabiliriz.(Element, Text...)

    * Bir dmn trne ulaflmak iin nodeType zellii

    kullanlr.

    * var type = node.nodeType;

    * Aflada dm trleri ve nodeType deerleri

    verilmifltir;

    HER YNYLE HTML576

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 76

  • 7/26/2019 Her Ynyle HTML5

    90/368

    * ELEMENT_NODE = 1(Eer dmn nodeType zelliinin

    deeri 1 ise bu dm element dmdr.)

    * ATTRIBUTE_NODE = 2

    * TEXT_NODE = 3* .......*/

    return child;

    /*e_ref ile tanml elemannn ocuk dm eer

    element dm ise bu elemenin referans geriye

    dndrlecek ve dngden klacak.*/

    }

    else {

    child = child.nextSibling;

    /* e_ref i le tanml elemannn ilk ocukdm eer element dm deil ise bu

    durumda bu dmn kardefli olan dier

    dmn referansn nextSibling zellii ile aldk.

    *Eer eleman ierisinde kardefl dm yoksa

    nextSibling zellii geriye null deerini dndrr.

    Bu deerde while(null){} tanmlamasna

    neden olacandan dngden klr.*/

    }

    }

    }else {

    /* Eer tarayc firstChildElement zel liini destekliyorsa;

    Kullanm:

    childNode=elNodeReference.firstElementChild;

    elemann iindeki ilk elemannn referansn dndrr.*/

    return e_ref.firstElementChild;

    }

    return null;

    /*Eer eleman ierisinde bir element yoksa ya da

    element dm yoksa geriye null deerini dndreceiz*/},

    _lastElementChild: function(e_ref/*e_ref:elemanReferans*/){

    /*Bir elemann iinde bulunan son eleman dmne

    ulaflmak iin_lastElementChild() metodunu tanmladk*/

    if (e_ref.lastElementChild == undefined) {

    HTML5 VE JAVASCRIPT 77

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 77

  • 7/26/2019 Her Ynyle HTML5

    91/368

    /* e_ref tanml elemann iindeki en son dme ulafltk..*/

    var child = e_ref.childNodes[e_ref.childNodes.length - 1];

    /* e_ref referansna sahip elemann iindeki en son

    elemana ulaflmak iin childNodes zellii kullanld.

    Bu zellik eleman iindeki tm dmlerin

    bir listesini oluflturur.(NodeList)*/

    while (child) {

    if (child.nodeType == 1) {

    return child;

    /* e_ref ile tanml elemann iindeki en son

    dm eer element dm ise bu

    elementin referans geriye dndrld.*/

    }

    else {

    child = child.previousSibling;

    /* e_ref tanml elemann iindeki en son

    dm eer element dm deilse, en

    son dmden bir nceki dme gemek

    (bir nceki dmn referansn) almak

    iin previousSibling zelliini kullandk. */

    }

    }

    }

    else {

    /* Eer lastElementChild zel liini destekliyorsa;

    Kullanm:

    childNode = elNodeReference.lastElementChild;

    elemann iindeki son elemannn referansn dndrr.*/

    return e_ref.lastElementChild;

    }

    return null;

    /*Eer eleman iererisinde bir element yoksa ya da element

    dm yoksa geriye null deerini dndreceiz */

    },

    _nextElementSibling: function(e_ref/*e_ref:elemanReferans*/){

    /*

    HTML aa yapsnda referans alnan elemandan sonra

    gelen elemann(Kardefl eleman) referansn almak iin

    _nextElementSibling()metodunu tanmladk*/

    if (e_ref.nextElementSibling == undefined) {

    HER YNYLE HTML578

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 78

  • 7/26/2019 Her Ynyle HTML5

    92/368

    // nextElementSibling zel lii desteklenmiyorsa...

    var child = e_ref.nextSibling;

    while (child) {

    if (child.nodeType == 1) {

    return child;

    }

    else {

    child = child.nextSibling;

    }

    }

    }

    else {

    return e_ref.nextElementSibling;

    }

    return null;

    },

    _previousElementSibling: function(e_ref/*e_ref:elemanReferans*/){

    /* HTML aa yapsnda referans alnan elemandan nce

    gelen elemann (kardefl eleman) referansn almak iin

    _previousElementSibling metodunu tanmladk*/

    if (e_ref.previousElementSibling == undefined) {

    //previousElementSibling zellii desteklenmiyorsa. ..

    var child = e_ref.previousSibling;

    while (child) {

    if (child.nodeType == 1) {

    return child;

    }

    else {

    child = child.previousSibling;

    }

    }

    }

    else {return e_ref.previousElementSibling;

    }

    return null;

    }

    }

    var init = function(){

    HTML5 VE JAVASCRIPT 79

    +HTML5-BOLUM3 6/17/11 4:25 PM Page 79

  • 7/26/2019 Her Ynyle HTML5

    93/368

    var eleman = document.getElementById(bir);

    var child_element_first = jsharp._firstElementChild(eleman);

    var child_element_last = jsharp._lastElementChild(eleman);

    var nextSiblingElement = jsharp._nextElementSibling(eleman);

    var previousSiblingElement = jsharp._previousElementSibling(eleman);

    alert(child_element_first.id + \n+

    child_element_last.id+\n +nextSiblingEl