Tercüme: Vlad Merzhevich

1. Bu büyük bir şey değil.

"Eski tarayıcılar HTML5'i desteklemiyorsa HTML5'i nasıl kullanabilirim?" diye sorabilirsiniz. Aslında bu soru yanlış. HTML5 büyük bir şey değil, farklı özelliklerin bir koleksiyonudur. Mantık dışı olduğu için "HTML5 destekleniyor" yazamazsınız, ancak çizim, video ve coğrafi konum gibi bazı HTML 5 teknolojileri için destek belirtebilirsiniz.

HTML'yi etiketler ve açılı ayraçlar olarak düşünebilirsiniz. Bu elbette önemli bir kısım ama tamamı değil. HTML5 spesifikasyonu ayrıca bu açılı ayraçların Belge Nesne Modeli (DOM) aracılığıyla JavaScript ile nasıl etkileşime girdiğini de belirtir. HTML5 yalnızca bir etiketi tanımlamakla kalmaz, aynı zamanda DOM'a tüm video nesneleri hakkında da bilgi verir. Kullanıcı ile etiket arasındaki etkileşime bağlı olarak farklı video formatlarını desteklemek, video oynatmak, durdurmak, sesi kapatmak, dosya indirme işlemlerini takip etmek ve çok daha fazlasını yapmak için uygulama programlama arayüzünü (API) kullanabilirsiniz.

2. Sahip olduklarınızı atmak zorunda değilsiniz

Beğenseniz de beğenmeseniz de HTML4'ün en başarılı biçimlendirme formatı olduğunu inkar edemezsiniz. HTML5 bu şansın üzerine kuruludur, dolayısıyla mevcut işaretlemeyi bir kenara atıp yeniden öğrenmenize gerek kalmaz. Web uygulamanız bugün HTML4'te çalışıyorsa, aynı zamanda HTML5'te de çalışacaktır, nokta.

İşte somut bir örnek: HTML5, HTML4'ün yaptığı tüm form öğelerini destekler ve ayrıca yeni öğeler de içerir. Kaydırıcılar ve tarih seçimi gibi bazılarının gelmesi uzun zaman aldı, diğerleri ise o kadar belirgin değil. Örneğin, e-posta adresi girme alanı sıradan bir metin alanıdır ancak bu alana yönelik modern tarayıcılar, adresin yazılmasını kolaylaştırır. Daha eski tarayıcılar input type="email" öğesini desteklemez, dolayısıyla normal bir metin alanı gösterirler ve formlar herhangi bir ek hileye gerek kalmadan onunla çalışır. Bu, bazı kullanıcılar hala IE6'ya takılıp kalsa bile formlarınızı bugün geliştirmenize olanak tanır.

3. Başlaması kolay

HTML5'e "yükseltme" yalnızca doküman tipini değiştirerek yapılabilir. Öğe her zaman herhangi bir web sayfasının ilk kod satırına yerleştirilmelidir. HTML'nin önceki sürümü çeşitli belge türü seçenekleri tanımlıyordu ve doğru olanı seçmek kolay değildi. HTML5'te yalnızca bir belge türü vardır:

Doküman tipini değiştirmek mevcut düzeni bozmaz çünkü HTML4'te tanımlanan tüm etiketler HTML5'te de desteklenir. Ayrıca , , ve gibi yeni anlamsal öğeleri doğru bir şekilde kullanabilirsiniz.

4. Zaten çalışıyor

İster resim çizmek, ister video oynatmak, formların işlevselliğini geliştirmek veya çevrimdışı bir web uygulaması oluşturmak istiyor olun, HTML5'in tarayıcılar tarafından iyi bir şekilde desteklendiğini göreceksiniz. Firefox, Safari, Chrome ve mobil tarayıcılar etiket, video, coğrafi konum, yerel depolama vb. özelliklerle çalışır. Google, mikro veri açıklamalarını anlar. Genellikle standartların gerisinde kalan Microsoft bile Internet Explorer 9 tarayıcısında temel HTML5 özelliklerini desteklemektedir.

Bu kitabın tüm bölümleri popüler tarayıcılar için bir uyumluluk tablosu içermektedir. Çok daha önemlisi, eski tarayıcıları destekleme seçeneklerine ilişkin bir tartışma da yer alıyor. Coğrafi konum ve video gibi HTML5 teknolojileri, Gears veya Flash gibi eklentiler kullanılarak uygulandı. Çizim gibi diğer özellikler JavaScript aracılığıyla taklit edilebilir. Bu kitap, modern tarayıcıların yerleşik özelliklerini, eski sürümleri atmadan nasıl kullanacağınızı gösterir.

5. O zaten burada

Tim Berners-Lee doksanlı yılların başında World Wide Web'i icat etti. Daha sonra web standartlarını sürdürmek için on beş yıldan fazla bir geçmişe sahip bir kuruluş olan W3C'yi kurdu. İşte W3C'nin Temmuz 2009'da web standartlarının geleceği hakkında duyurduğu şey:

Yönetim bugün, XHTML 2 Çalışma Grubu'nun sözleşmesinin 2009 yılı sonunda sona ermesi durumunda yenilenmeyeceğini duyurdu. Bunun amacı HTML Çalışma Grubunun kaynaklarını artırmaktır. W3C, bunun HTML5'in ilerlemesini hızlandıracağını ve W3C'nin HTML'nin geleceği konusundaki konumunu netleştireceğini umuyor.

HTML5 burada. Hadi derinlemesine inceleyelim.

HTML5'teki yenilikler neler? HTML5 ve HTML 4 arasındaki farklar

HTML5 spesifikasyonu, farklı düzeylerde ve farklı önemlerde birçok değişikliği beraberinde getirir. Temel olarak önemli değişiklikler 7 bloğa ayrılabilir:

a) Anlambilim (dil birimlerinin anlamsal anlamı)

HTML5, web sayfalarının iç yapısını daha anlamlı bir şekilde düzenlemenize olanak tanıyan bir dizi yeni anlamsal etiket sunar. Bu, hem üst bilgi, alt bilgi, makale gibi blok etiketlerini hem de işaret, yakut, ayrıntılar gibi metin işaretleme etiketlerini içerir. Mevcut HTML4 etiketlerinin bir kısmının eski olduğu ilan edildi, tek tek etiketlerin anlamları değişti ve nitelikler belirli değişikliklere uğradı.

b) Multimedya

HTML5, yönetim için ilgili API ile birlikte multimedya içeriği (ses ve video) için doğrudan HMTL işaretlemesinde yerel destek ekler.

c) Grafikler

İstemci tarafında grafiklerle çalışmak fark edilir derecede kolaylaştı. Tuval öğesi ve onunla çalışmak için özel bir JavaScript API'si HTML5'e eklendi. Tuval, üzerine programlı olarak çizim yapabileceğiniz dinamik bir "yüzeydir". HTML5 ayrıca resmi olarak ilgili web standardı SVG (Ölçeklenebilir Vektör Grafikleri) tarafından tanımlanan vektör grafiklerini uygulamanıza olanak tanıyan svg etiketini de içerir.

d) Web formları

Yeni web formu öğeleri: giriş alanındaki ipuçlarından (yer tutucu) ve girilen değerlerin doğrulanmasından özel öğelere kadar, ek kitaplıklar kullanmadan yerleşik araçlarla geleneksel formların yeteneklerini genişletmenize olanak tanıyan türler ve nitelikler. tarih ve renklerin girilmesi.

e) JavaScript API'leri.

HTML5, nesneleri taşımak (Sürükle ve Bırak), geçiş geçmişiyle çalışmak (Geçmiş API'si) için yeni yeteneklerin yanı sıra, İçerik Düzenlenebilir niteliklerini kullanarak içeriği geçerli konumda düzenlenebilir hale getirme yeteneği gibi bir dizi küçük şey içerir. .

f) Yeni DOKÜP

DOCTYPE etiketi, standartlara uygun olduğunu iddia eden web sayfalarının önemli bir bileşenidir: bu etiket olmadan kod doğrulayıcıyı geçemez. DOCTYPE ayrıca sayfanın standartlara uygun tarayıcılarda düzgün görüntülenmesi ve çalışması açısından da önemlidir.

HTML 4'te 3 tür öğe vardı:

  • 1. Katı
  • 2. Geçiş
  • 3. Çerçeveli (Çerçeve Seti)

Genellikle bir veya daha fazla DOCTYPE öğesini seçmek oldukça zordu. HTML5 DOCTYPE'ta yalnızca bir tane vardır, şu şekilde yazılır:

Bu kısa giriş eski, daha uzun formun yerini alır:

g) Sözdizimi

HTML 5'in iki sözdizimi olacaktır: "özel" HTML ve XML. HTML sözdizimi ayrıntılı ayrıştırma kurallarını ("hata işleme" dahil) tanımlar.

XML sözdizimi XHTML1 belgeleri ve uygulamalarıyla uyumludur. Bu söz dizimini kullanmak için MIME (Çok Amaçlı İnternet Posta Uzantıları) türünün XML türü olarak bildirilmesi ve öğelerin XML belirtimine göre oluşturulması gerekir.

Şekil 2 - Temel HTML5 Özellikleri

HTML5 - yeni nesil. HTML 4.01 önerisinin (1999) yayımlanmasından bu yana 10 yıldan fazla zaman geçti ve bu nedenle pek çok değişiklik ve ekleme beklenmelidir. HTML5 spesifikasyonu şu anda hala geliştirilme aşamasındadır. World Wide Web Konsorsiyumu standart geliştirmez, yalnızca öneriler yayınlar. Her şey çalışma tartışmalarıyla başlar, ardından bir çalışma taslağı başlatılır, ardından tavsiye rolü için bir aday yayınlanır ve ancak o zaman spesifikasyon nihayet tavsiye statüsünü alır. Şu anda HTML5 üzerindeki çalışmalar hâlâ taslak aşamasındadır. Buna rağmen, en popüler İnternet tarayıcılarının çoğu halihazırda HTML5 yeniliklerini kısmen desteklemektedir. Bunlara kısa bir genel bakış yapmadan önce, tüm tarayıcıların bu işlevi uygulamadığını ve henüz tam olarak uygulanmadığını tekrarlayacağım. Bugün Opera, Chrome, Firefox, Safari ve Internet Explorer'ın HTML5'i değişen derecelerde desteklediğine güvenebiliriz.

HTML5'teki yenilikler

Ve gerçekten yeni olan pek çok şey var. Artık web geliştiricileri, web tuvali üzerinde geometrik şekiller çizme, yerleşik sürükle ve bırak özellikleri ve video ve ses dosyalarını oynatma gibi bir dizi ek özelliğe sahip olacak (daha önce bu yalnızca aşağıdaki eklenti bileşenleri kullanılarak yapılabilirdi: Adobe Flash Player gibi) ve çok daha fazlası, biraz sonra tartışılacak. Başlangıç ​​olarak HTML'nin gelişimindeki genel eğilimler hakkında birkaç söz söylemek istiyorum.

HTML5 spesifikasyonunun yeni etiketler şeklinde öne çıkan kısmı buzdağının sadece görünen kısmıdır. HTML5'in gelişmiş özelliklerinin çoğu yalnızca istemci tarafı web programlamanın temeli olan komut dosyası programlama dili kullanılarak kullanılabilir. Etiket kullanılarak uygulanan çizim işlevinin aynısını alırsak, sanılabileceği gibi geometrik şekil etiketlerini kullanan "çizim işaretlemesinden" bahsetmiyoruz. Kanvas düzeni, tuval öğesinin sayfaya yerleştirilmesiyle sona erer ve bu kadar. Çizimin kendisi, tuvale erişildiğinde, normal Windows uygulamalarının grafikleri GDI (Grafik Aygıt Arayüzü) arayüzleri aracılığıyla pencerelere görüntülemesine benzer şekilde, tuval üzerine şekiller çizecek bir JavaScript işlevidir. Bu nedenle, HTML5 spesifikasyonu, belge nesne modeliyle (DOM) çalışmak için program arayüzünü () büyük ölçüde düzenleyen JavaScript ile çalışmanın uygulanması açısından İnternet tarayıcılarına oldukça ciddi gereksinimler getirir. Bu iyi bir haber, çünkü birçok kişi farklı tarayıcıların, birbirinden farklı program arayüzleri aracılığıyla nesne modeliyle çalışmayı organize edebildiğini biliyor. Kısmen, yazılım arayüzünün spesifikasyonu organizasyonun esasıdır Web Köprü Metni Uygulama Teknolojisi Çalışma Grubu (WHATWG) Yalnızca işaretleme dilinin değil, JavaScript gibi betik dillerinde yazılan uygulamalarda kullanılan API'lerin de standartlaştırılması için çaba gösteren . WHATWG ayrıca W3C ile birlikte geliştirme çalışmalarına da katılmaktadır.

Ayrıca HTML5 yazarlarının bazı popüler ve aranan web programlama görevlerinin uygulanmasını İnternet tarayıcılarının sorumluluğuna devretmeye çalıştıkları sonucuna da varabiliriz. Örneğin, HTML5'i kullanarak, çevrimiçi mağazaların kullanıcı arayüzlerinde çok popüler hale gelen öğeleri sürükleyip bırakma işlevini (sepete ürün seçme) oldukça kolay bir şekilde uygulayabilirsiniz. Önceden, bunu yapmak için çeşitli destekleyici kitaplıkları kullanarak JavaScript'te bir komut dosyası yazmanız gerekiyordu. Bir dizi ek özellik tanımlayarak ve ihtiyacınız olan etiketler için birkaç olay işleyicisi ekleyerek sürükle ve bırak özelliğini uygulamak artık çok daha kolay. JQuery kullanarak "sürükle ve bırak" işlemini düzenlemek de özellikle karmaşık değildir, ancak HTML5 durumunda, tüm İnternet yazılımı istemcileri için tek bir öneriyle ilgileneceğiz ve bu, tamamen farklı bir destek düzeyi ve tarayıcılar arası uyumluluk garantisidir. HTML5 önerilerini destekleyen tarayıcıların artık oturum ayarlarını web oturumu bağlamında kaydetme ve geri yükleme olanağı sağlayacağı ortaya çıktı. Örneğin, sayfa yeniden yüklendiğinde, daha önce girilen bilgiler kaybolmaz, ancak mevcut oturumun ortamından geri yüklenir. Bu zaten sunucu tarafı web programlamanın "bölgesine girmektir", çünkü daha önce bu yalnızca HTML ve JavaScript kullanılarak yapılamıyordu.

Şimdi HTML5'teki en dikkate değer yeniliklerin bir listesi:

Web tuvali üzerinde çizim yapmak veya tuval öğesini kullanmak

Daha önce de belirtildiği gibi, yeni unsurun kullanımına ilişkin önerilerin ana kısmı üzerinde grafik görüntülemek için kullanılan bir yazılım arayüzünün spesifikasyonudur. Başlamak için sayfaya bir etiket yerleştirirsiniz belirli bir genişlik ve yükseklik, ardından JavaScript kodunda ona erişirsiniz (örneğin, kimliğe göre) ve üzerinde çizim yapmaya başlarsınız. Çizim, vuruşStyle çizgi stilini, fillStyle dolgu stilini sırayla tanımlamak ve moveTo (kalemi hareket ettir), lineTo (çizgi çiz), arc (yay çiz) vb. gibi çizim yöntemlerini çağırmak anlamına gelir. Aşağıda bir örneğe bakın - fareyle çizim yapmanın en basit aracı. Aşağıda JavaScript ve HTML işaretlemesindeki kaynak kodu bulunmaktadır. Kalemle çizim yapmak için farenin sol tuşuna basın ve imleci tuval üzerinde hareket ettirin. "Çizgiler" veya "çokgenler" modunda, tuval üzerine sırayla tıklamanız yeterlidir, böylece sürekli çizgilerin veya alan nesnelerinin köşeleri gösterilir.

Bir tuval öğesi üzerine çizim örneği

HTML5 kullanarak bir öğe üzerinde çizim işlemlerinin uygulanmasına bir örnek.

JavaScript kaynak kodu

//Geçerli işlemin kodu var işlem=0; //İşlem durumu var aktif=yanlış; //Grafiksel bir işlem işlevi başlatın startOperation(e) ( if (operation==0) return; if (active) return; var context = getContext(); context.strokeStyle = getColor("stroke"); context.fillStyle = getColor ("fill"); context.beginPath(); var point = getPoint(e); context.moveTo(point.x, point.y); active = true; ) //Grafiksel işlem fonksiyonunun tamamlanması stopOperation() ( if (! active) return; var context = getContext(); context.closePath(); active = false; ) //Mouse olayları fonksiyonu mouseDown(e) ( var e = e || window.event; if (!active) ( startOperation( e); return; ) else ( var context = getContext(); var point = getPoint(e); context.lineTo(point.x, point.y); context.stroke(); if (operation == 3 ) context .fill(); ) return true; ) function mouseUp(e) ( var e = e || window.event; if (!active || operasyon != 1) return; stopOperation(); return true; ) function mouseMove( e) ( var e = e || window.event; if (!active || işlem != 1) return; var context = getContext(); var point = getPoint(e); context.lineTo(nokta.x, nokta.y); bağlam.stroke(); doğruyu döndür; ) function getColor(control) ( var color = document.getElementById(control).value; if (color == "") color = "#000"; return color; ) //Canvas element function getCanvas() ( return document. getElementById("canvas"); ) //Tuval öğesi işlevinde 2 boyutlu grafikleri görüntülemek için bağlam getContext() ( return getCanvas().getContext("2d"); ) //Eleman "seçili işlem" işlevi getSelected() ( return document.getElementById("selected"); ) //Fare imleci fonksiyonunun göreceli koordinatları getPoint(e) ( var x = event.pageX || event.x; var y = event.pageY || event.y; var rect = getCanvas() .getBoundingClientRect(); var point = (); point.x = x - rect.left; point.y = y - rect.top; dönüş noktası; ) //Bir işlem fonksiyonu seçin selectOperation(code) ( stopOperation(); işlem = kod; switch(işlem) ( durum 1: ( getSelected().innerText = "Seçili: kalem"; break; ) durum 2: ( getSelected().innerText = "Seçili: satırlar"; break; ) durum 3: ( getSelected().innerText = "Seçili: çokgenler"; kırmak; )) ))

Kaynak HTML kodu

kalem çizgileri çokgenler Seçilen: çizgi rengi dolgu rengi

Öğeleri sürükleyip bırakın

Bu, normal GUI uygulamalarında çok popüler olan klasik "sürükle ve bırak" modeli için tarayıcı desteğinden başka bir şey değildir. “Sürükleyeceğiniz” elemanlar için sürüklenebilir niteliğini tanımlayın ve sürüklenen elemanları “atacağınız” elemanlar için ondragenter, ondragover ve ondorp olay işleyicilerini tanımlayın. Aslında hepsi bu. Aşağıdaki örnek.

HTML5 sürükle ve bırak örneği - "Basketbol Sepeti"

HTML5 kullanarak sürükle ve bırak işlemlerinin (öğelerin sürüklenmesi) uygulanmasına bir örnek.

Kaynak HTML kodu

HTML5: Sürükle ve Bırak html, gövde ( yazı tipi ailesi: Arial yazı tipi boyutu: 11 piksel; ) .basket ( border: 1px katı #777; genişlik: 105 piksel; yükseklik: 120 piksel; dolgu: 10 piksel; kenarlık yarıçapı: 0 0 10 piksel 10px; arka plan rengi: #eee; kutu gölgesi: iç metin 0px 0px 5px #777; ) .basket .ball ( genişlik: 30 piksel; yükseklik: 30 piksel; kenarlık yarıçapı: 15 piksel; kutu gölgesi: 5px 5px 10px #777; kayan nokta: sağ; ) .top ( kenarlık: 1 piksel katı #FF7F50; genişlik: 20 piksel; yükseklik: 20 piksel; kenarlık yarıçapı: 10 piksel; arka plan rengi: #FF8C00; kutu gölgesi: 0px 0px 5px #777; kayan nokta: sol; kenar boşluğu: 1px; ) function startDrag(e) ( var e = e || window.event; e.dataTransfer.setData("Ball", e.target.id); e.dataTransfer. effectAllowed="move"; return true ; ) function endDrag(e) ( var e = e || window.event; e.dataTransfer.clearData("Ball"); return true; ) function drop(e) ( var e = e || window.event; e .target.appendChild(document.getElementById(e.dataTransfer.getData("Ball"))); e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true; yanlış döndür; ) ...

Video ve ses dosyalarını oynatma

Burada her şey oldukça basit; çoğaltılacak bir şey olacak ve nerede. Etiketleri yerleştir Ve sayfanızda, oynatma kaynağını belirten src özelliğini tanımlayın ve İnternet tarayıcılarının bu harika talimatları işlemeyi ve en yaygın formatları oynatmayı öğrenmesini bekleyin.

Yeni özel web formu öğeleri

HTML5 yeni öğe türleri vaat ediyor İnternet adresinin, e-posta adresinin, sayısal değerlerin, tarihin, saatin, rengin vb. girişini kontrol eden . Tarayıcınız tüm bu yenilikleri zaten destekliyorsa, aşağıda bunu nasıl yaptığını göreceksiniz. Tarayıcı tüm yeni öğe türlerini desteklemiyorsa, nasıl çalışılacağını henüz bilmediği öğeler normal metin giriş alanlarına benzeyecektir.

Kullanıcı Kontrolleri

Farklı tür öznitelik değerlerine sahip öğe çeşitleri:

Adres değeri formatla eşleşmiyorsa URL, ardından [onayla] öğesine tıkladıktan sonra tarayıcı bunu düzeltmeye çalışacaktır. Bunu yapamazsa bir hata mesajı görüntüler. E-posta değeri formatla eşleşmiyorsa e-posta, ardından [onayla] öğesine tıkladıktan sonra tarayıcı ya adresi düzeltecek ya da bir giriş hatası bildirecektir.

Sayısal değerlerin görselleştirilmesi

Düşük normun altındaki ve yüksek normun üzerindeki aralıkları ve optimum değer optimumunu gösterme yeteneğine sahip sayısal bir değerin ölçek biçiminde sunulması.

Öğe:

Yürütme sürecinin görselleştirilmesi. Yalnızca maksimum maksimum ve geçerli değeri belirleyebilirsiniz.

Öğe HTML Kaynak Kodu

Aralıktaki sayı:

Tamsayı:

Tarih ve saat:

Tarihi:

Zaman:

Ay:

Bir hafta:

Renk:

URL'si:

e-posta:


Tarama geçmişini yönetme

JavaScript ve nesneyi kullanarak önceden yüklenen sayfalara geçişi bağımsız olarak yönetmek mümkün olacak tarih. Örneğin, window.history.length'in çağrılması "geçmiş uzunluğunu" döndürür ve window.history.back(), window.history.forward() veya window.history.go(stepCount)'un çağrılması uygun geçişleri gerçekleştirir. Aşağıda küçük bir örnek verilmiştir:

İleri >

Oturum durumu kaydediliyor

Bu harika işlevsellik, oturum verilerini kaydetmenize ve geri yüklemenize olanak tanır. Siparişi doldurduk, ürünü görmeye gittik, siparişi tekrar doldurmak için (bağlantıyı kullanarak) geri döndük, ancak önceden girilen veriler hala oradaydı. Daha önce böyle bir sayfa özelliğinin sağlanması için web uygulamasının sunucu tarafında ek çaba sarf edilmeden yapılması mümkün değildi. Artık verileri bir web oturumu bağlamında kaydetmek mümkün olacak ( oturumDepolama) veya yerel olarak tarayıcının RAM'inde ( yerel depolama). sessionStorage'ın, başlatıldığı oturum aktif olduğu sürece verilerin saklanmasına izin vermesi gerekiyor. Saklanan verilere tarayıcı tarafından yüklenen çeşitli web sitesi sayfalarından erişilebilir. Görünüşe göre localStorage seçeneği, tarayıcı açıkken verileri kaydetmelidir. localStorage'a erişimin her zaman mevcut olması gerektiğinden, sunucuyla bağlantı olmasa bile tarayıcı tarafından açılan herhangi bir sayfa localStorage'dan veri alabilir. Her iki durumda da oturum durumu, xxxStorage.setItem(key, value) ve xxxStorage.getItem(key) çağrılarıyla erişilen bir anahtar/değer çiftleri kümesidir.

Örnek: Yeni özelliği kullanarak öğe içeriğini düzenlemeyle ilgili bölüme bakın içeriği düzenlenebilir HTML5'te tanıtılan . Aşağıya iki düğme eklendi; bunlardan biri düzenlenen bloğun içeriğini kaydeder, ikincisi ise onu geri yükler. [Kaydet]'e tıklayın, bloğun içeriğini düzenleyin ve [Geri Yükle]'ye tıklayın. Tarayıcınız HTML5 işlevini destekliyorsa oturumDepolama, ardından bloğun içeriği içeriği düzenlenebilir restore edilecek.

Eski haline getirmek

Geri Yüklemeyi Kaydet

Sayfalar arasında mesaj alışverişi yapın

Sayfanız öğeler içeriyorsa diğer sayfaların içeriğini yükleyenler: yalnızca sitenizin sayfaları değil, aynı zamanda tamamen farklı bir alandaki sayfalar, o zaman HTML5 önerilerinin uygulanmasıyla bu tür pencerelerle mesaj alışverişi yapmak mümkün olacaktır. Mesajı gönderen sayfa bunu window.postMessage(message, target) işlev çağrısını kullanarak yapar ve mesajı alan sayfanın bir "onmessage" olay işleyicisi içermesi gerekir; burada eğer gerçekten olaysa, event.data mesaj metnini zaten işlemelidir. alıcısı - event.origin değerine karşılık gelir. Bu mekanizmanın ortaya çıkmasından önce istemci tarafında çeşitli İnternet kaynaklarıyla iletişim kurmak mümkün değildi. Yeni HTML5 mesaj mekanizmasını kullanarak iki sayfa arasındaki iletişimin en basit uygulamasına bir örnek aşağıda verilmiştir. İlk bakışta örnekte özel bir şey olmuyormuş gibi görünebilir. Daha doğrusu, tüm bunlara neden ihtiyaç duyulduğu belli değil. Aslında mesajlaşma, çeşitli İnternet hizmetlerini tek bir yerde birleştiren bilgi portalları oluştururken popüler hale gelebilir. Örneğin, hizmetlerinin ancak çok sayıda elektronik başvurunun doldurulmasından sonra kullanılabildiği belirli bir İnternet hizmetinin olduğunu varsayalım. Ayrıca, bu hizmetin hizmetlerini oldukça sık kullanan, ancak istekleri her seferinde birbirinden çok az farklı olan bir müşteri olduğunu varsayalım (parametrelerin çoğu her zaman aynıdır). Böyle bir İnternet hizmeti, başvuruyu doldurmak için kullanılan elektronik formun yanı sıra, hizmetleri için otomatik sipariş vermek için bir "mesaj alıcısını" da destekliyorsa, müşterileri bu hizmetin penceresini "sürükleyebilir". sayfalarında (öğesini kullanarak), kendi (kendiniz için optimize edilmiş) başvuru formları ve bunları hedef hizmete mesaj biçiminde göndermek için işlevler oluşturun. Bu durumda parametrelerin çoğu (örneğin müşteri ayrıntıları) otomatik olarak oluşturulur. Elbette benzer iletişim, istemciden sunucuya gerekli parametrelerin aktarıldığı HTTP istekleri aracılığıyla da gerçekleştirilebilir, ancak HTML5 mesaj mekanizması durumunda geçiş sırasında sıfır trafik olduğunu belirtmekte fayda var. parametreler, çünkü her şey istemci tarafında gerçekleşir.

Mesaj alışverişinde bulunan iki sayfa örneği

HTML5 kullanarak sayfalar arasında mesaj alışverişinin uygulanmasına bir örnek.

Mesaj kaynak sayfasının kaynak kodu

function init() ( document.getElementById("form").onsubmit = sendMessage; ) function sendMessage() ( var konum = window.location; var message = document.getElementById("message").value; var hedef = belge. getElementById("target"); target.contentWindow.postMessage(message,location.protocol+"//"+location.host); return false; ) ...

message_source.html:

message_target.html yüklenemedi!

Mesaj metni


Mesaj alıcı sayfasının kaynak kodu

function init() ( if (window.addEventListener) window.addEventListener("message", getMessage, false); else window.attachEvent("onmessage", getMessage); ) function getMessage(event) ( document.getElementById("target") ).innerHTML = olay.veri; document.getElementById("origin").innerHTML = "from " + event.origin; ) ...

mesajlar_target.html:

Bir mesaj bekliyorum...'dan...

Öğe içeriğini düzenleme

Artık contenteditable özelliğini tanımlayarak, metin blokları, listeler vb. gibi bireysel işaretleme öğelerini düzenlenebilir hale getirebilirsiniz. Designmode özelliğini kullanarak sayfanın tamamını düzenlenebilir hale getirebilirsiniz. Bu işlevsellik, kaynağın sahibiyle geri bildirim düzenlemek, örneğin bir başvuruyu, siparişi veya buna benzer bir şeyi doldurup göndermek için yararlı olabilir. Formun orijinal biçiminde bir HTML sayfası oluşturur ve doldurması için kullanıcıya verirsiniz. Doldurduktan sonra kullanıcı girilen verileri onaylar ve düzenlenen belge sunucuya gönderilir. Düzenlenebilir işaretlemenin bir örneği aşağıda gösterilmiştir:

Bu bloğun içeriği düzenlenebilir çünkü nitelik onun için tanımlıdır. içeriği düzenlenebilir:

Tablo hücrelerini düzenlerken sütunların genişliği ve satırların yüksekliği otomatik olarak değişir.

Yeni bir liste öğesi girmek için tuşuna basın.

  • Liste öğesi 1
  • Liste öğesi 2
  • Liste öğesi 3

Listeye yeni bir öğe eklendikten sonra numaralandırma otomatik olarak güncellenecektir.

  • Numaralandırılmış liste öğesi 1
  • Numaralı liste öğesi 2
  • Numaralı liste öğesi 3
  • Vektör grafikleri

    Destek bekleniyor SVG- vektör grafikleri işaretleme dilini temel alan . Grafikler, etiketi kullanılarak mantıksal olan işaretlemeye eklenecektir. örneğin şu şekilde:

    Aşağıdaki geometrik şekilleri görüyorsanız tarayıcınız zaten svg'yi destekliyor demektir.

    Matematiksel İfadeler

    Destek de bekleniyor MathML- XML'e dayalı matematiksel ifadeler için bir işaretleme dili. Kosinüs teoremini kullanarak bir üçgenin bir tarafının uzunluğunu hesaplamak için formülü işaretlemeye bir örnek:

    a = b 2 + c 2 - 2 b c çünkü α

    Karekök sembolüne sahip bir formül görürseniz tarayıcınız MathML'i zaten anlıyor demektir.

    A = b 2 + c 2 - 2 b c çünkü α

    Diğer işaretleme öğeleri

    Her şeyden önce, daha önce açıkça mevcut olmayan bir grup yeni sayfa işaretleme öğesini vurgulamak istiyorum. Bunlar etiketi içerir - makale, not, haber vb.; - makale başlığı veya başlığı - altbilgi veya altbilgi - makalenin bölümü veya bölümü. Aynı şey elementler kullanılarak da yapılabiliyorsa buna neden ihtiyaç duyuluyor? farklı sınıflar mı? Bu, işaretlemenizin anlamının onu analiz etmeye çalışanlar için de açık olması için gereklidir. Metninizi okuyan kişiden bahsetmiyorum (işaretlemeyi görmüyor, onsuz her şey onun için açık), ancak otomatik sistemlerden bahsediyorum ve her şeyden önce bu arama motorları için geçerli. Anlamsal yük, arama motorları için sayfalarınızın belirli bir arama sorgusuyla alaka düzeyini hesaplarken çok önemlidir. Bu bağlamda unsur özel ilgiyi hak etmektedir. , çünkü sayfanızdaki ana gezinme bağlantılarının bulunduğu bloğu vurgulamak için tasarlanmıştır. Belki arama motorları bu tür bağlantılara farklı davranacaktır. Aşağıda işaretlemeye anlam katan yeni HTML5 etiketlerinin özet tablosu bulunmaktadır.

    Etiket Kısa Açıklaması
    Makale, haber, not, yorum veya diğer herhangi bir bireysel yayın türü. Etiket madde Bir konu veya sorunla ilgili bilgileri birleştirir. Bir element madde diğer unsurları içerebilir madde(aşağıdaki örnek).
    Açıklama, konu dışı. Etiket bir kenara reklam yerleştirmek gibi amaçlarla, sayfanın ana içeriğiyle ilgili olmayan metin bölümlerini vurgulamak için de kullanılabilir.
    Talep üzerine genişletilebilecek ayrıntılı bilgi bloğu.
    Çizimin imzası. Etiket Şekil başlığı etiketin içinde kullanılır figür.
    İmzalı çizim. Bu öğe bir resim içermelidir img ve imza Şekil başlığı.
    Altbilgi. Etiket altbilgi onu bir etiketin içine yerleştirmek de mantıklıdır madde Bir makalenin veya notun yazarını belirtmek için.
    Sayfa başlığı veya makalenin girişi. Bir etiketin içine yerleştirildiğinde madde etiketlemek başlık Bir başlık, yayının kısa bir açıklaması ve ilgili materyallere bağlantılar ekleyebilirsiniz.
    Başlıkları Gruplandırma h1 - h6çok düzeyli bir başlığa dönüştürün.
    İşaret. Etiket işaret Metnin bir bölümünü farklı bir stille vurgulamanız ve ona belgenin başka bir yerinden başvurmanız gerekiyorsa kullanmak mantıklıdır.
    Gezinme bağlantılarının bloğu.
    Sayfa bölümü, makale bölümü. Bir makalenin içine yerleştirildiğinde (etiket madde) kendi ayrı bölümü olarak yorumlanabilir.

    Aşağıda listelenen etiketleri kullanan bir HTML işaretleme örneği verilmiştir.

    HTML5 henüz bir öneri haline gelmedi ve "anlamsal etiketlerin" kullanımı konusunda tartışmalar var. Ve zaten oldukça fazla. Henüz hiç kimse bunların işaretlemeye doğru bir şekilde nasıl eklenmesi gerektiğini bilmiyor, ancak yeni HTML5 yapısal etiketlerinin kullanımına ilişkin, anlamları açık olduğundan tartışılması zor olan bir dizi ipucu var. Bunlardan bazıları:

  • Etiket kullanmayın başlık sadece bir başlık etiketi yerleştirmek için h1 - h6 tıpkı başlık etiketlerinin içine başlıkların metni dışında herhangi bir şey doldurmaya gerek olmadığı gibi. Bunu yapmamalısınız: Site adı

  • Etiket kullanmayın grup tek bir öğeden başlık grupları oluşturmak için. Her bir element h1önce h6 ve böylece başlığın kendisi. İşte yapılmaması gerekenlere bir örnek: Site adı

  • Öğe eklemenize gerek yok bölüm diğer öğelerin içinde, eğer bu öğelerin tüm ana içeriklerini içeriyorlarsa. Yukarıdaki örnekte her yorumun içinde ayrı bloklar yoktur bölüm Yorum metninin kendisini vurgulamak için. İşte ekstra bir öğe örneği bölüm :

    Yorum metni

    Yayınlanan...

  • Öğenin anlamını anlamanıza gerek yok madde gerçekten. Bu sadece bir makale değil, aynı zamanda tam bir düşüncenin herhangi bir sunum şeklidir. Bu nedenle daha önce verilen örnekte makaleye yapılan yorumlar da ayrı bloklara ayrılmıştır. madde.

  • HTML5 yapı etiketlerini yalnızca arama motorlarının işaretlemenizin semantiği hakkında daha fazla bilgi edinmesine yardımcı olacağına inanıyorsanız kullanın. Etiket ayrı bir anlam taşımayıp sadece “güzellik” için eklenmişse, eklenmesinin sonucu sayfanızın “fazla kilosu” olur ki bu da bilindiği üzere “sağlığa zararlıdır”. alan.
  • HTML5 önerisinin yayınlanmasıyla birlikte ortaya çıkması gereken hiper metin işaretleme dilinin yeni özellikleriyle ilgili benim için bu kadar.

    HTML5, ana web sayfası işaretleme dilinin en son sürümüdür. HTML'de son 10 yılda büyük bir değişiklik olmadı; web teknolojisinin ne kadar hızlı geliştiği göz önüne alındığında bu biraz tuhaf. Ve son olarak HTML5 bizim için yeniden düzenlendi ve bu makale size bu sürümde ne gibi yeniliklere sahip olduğumuzu anlatacak.

    HTML5'in önceki XHTML'ye kıyasla daha az katı kuralları vardır; artık şunları yapabilirsiniz:

    • Kapanış etiketlerini kullanmanıza gerek yoktur.
    • Özellik değerlerinde tırnak işaretleri kullanmayın.
    • Öğelerde ve niteliklerde büyük harf karakterler kullanın.

    Yeni etiketler.
    Ve böylece HTML5'te yeni etiketler ortaya çıktı.

    Artık alakalı olmayan ve kullanılması tavsiye edilmeyen hariç tutulan etiketler de vardır.

    Yani eğer HTML'nin önceki versiyonlarına aşina iseniz HTML5'i anlamakta herhangi bir zorluk yaşamayacaksınız. Yeni etiketler ve özellikler, yeni siteler oluşturmanıza ve mevcut siteleri geliştirmenize yardımcı olacak ve yeni özellikler sayesinde bunu yapmak çok daha kolay hale gelecektir.

    Ancak şu soru ortaya çıkıyor: HTML5, tarayıcıların eski sürümlerinde doğru şekilde görüntülenecek mi?
    Elbette yeni etiketler dışında elbette olacak. HTML5 kullanılarak oluşturulan sayfalar tüm tarayıcılarda görüntülenecektir ancak yeni sürümleri kullananlar çok daha fazlasını alabilir ve görebilir.

    Yapısal etiketler.

    HTML5 kullanarak nasıl bir HTML belge yapısı oluşturabileceğimizi görelim. HTML4'te genellikle etiketleri kullanırız

    ve sayfanın hangi kısmıyla çalışıyor olursak olalım, sayfanın tamamının yapısını oluşturmak: üstbilgi, altbilgi, menü veya diğer genel bölümler. Bu, bir sayfayı yapılandırmanın pek iyi bir yolu değildir; bu nedenle HTML5, belgenin her bölümü için yeni etiketler getirmiştir.

    Aşağıdaki yapısal etiketler artık kullanımımıza sunulmuştur:

    Amacı, metnin tamamını küçük parçalara bölmek gibi belirli bir metin içeriği içindeki bölümleri tanımlamaktır.

    Amacı HTML belgesinin üst kısmını tanımlamaktır.

    Bu etiket belgenin alt kısmını tanımlamak için kullanılır.

    Amacı, diğer HTML sayfalarına olan bağlantıların bir listesini tanımlamaktır.

    Bu etiket belgenin bazı test içeriğini tanımlamak için kullanılır.

    İşte yeni etiketlere sahip bir HTML kodu örneği.

    Başlık Başlık 1

    Bazı metinler... Başlık 2

    Bazı metin... Bağlantı 1 Bağlantı 2

    Telif Hakkı 2011 Şirketim

    Gördüğünüz gibi belgemizin başlığını etiketlere yerleştirdik. Daha sonra etiket kullanarak sayfamıza bir bölüm ekledik ve metin içeriğimizin iki ana bölümünü işaretlemek için 2 adet etiket ekledik. Daha sonra etiketini kullanarak bağlantılarımızın bir listesini tanımladık. Son olarak sayfamızın altbilgisini .

    Peki burada özel olan ne? Aynı şeyi eski güzel etiketi kullanarak da yapabiliriz. Kuşkusuz, ancak yeni etiket kullanmanın avantajı HTML belgelerinin açık ve anlaşılır yapısıdır. Sadece insanlar için değil, arama motorları için de temizleyin.

    Yeni HTML5 blok etiketleri.

    Mevcut blok etiketlerine ek olarak HTML5'te 3 yeni etiket bulunmaktadır:

    Etiket, metnin gövdesi içindeki alıntı veya dipnot gibi bir kısmını tanımlamak için kullanılır.

    Ana metin... Alıntı...

    Web tarayıcısı etiketin içindeki metni vurgulamaz; HTML belgesi için iyi bir yapı oluşturmak için kullanılır. Arama motoru geliştiricileri bunu takdir edecektir.
    Aşağıdaki etiket, kullanıcılar arasında diyaloglar oluşturmak için kullanılır:

    Kullanıcı 1 Kullanıcı 1'den Mesaj Kullanıcı 2 Kullanıcı 2'den Mesaj

    Etikete iki etiket daha ekledik: - kullanıcı adını içeren ve kullanıcının mesajını gösteren.

    Üçüncü etiket görselin başlığını belirtmek için kullanılır.

    Resim başlığı = "Bazı resimler" src="/image.jpg" width="200" height="200">

    Görselin adını belirtmek için tag kullandık, tag belirli bir resim ve bunları birbirine bağlamak için bir etiket eklemek için.
    HTML5 yapısını ve blok etiketlerini kullanırken dikkat edilmesi gerekenler.
    Yeni etiketleri hemen kullanmaya başlayabiliriz, ancak eski tarayıcılarla bazı tutarsızlıkları gidermek için bazı hileler uyguladıktan sonra. Yeni blok etiketleri eski tarayıcılarda satır içi öğeler olarak ele alınacaktır, bu nedenle yeni blok etiketleri için CSS'mizde bir display:block; özelliği tanımlamamız gerekir. Böylece düzgün bir şekilde görüntüleniyorlar. Internet Explorer'ın eski sürümlerine gelince, aşağıdakileri de eklemeniz gerekir:

    < script>document.createElement("başlık"); document.createElement("alt bilgi"); document.createElement("bölüm"); document.createElement("kenara"); document.createElement("makale"); document.createElement("nav");

    IE, bilinmeyen etiketlere eklenen CSS'yi anlamadığından bunun eklenmesi gerekiyor. HTML5, etiketin varsayılan olarak bir taneye sahip olduğunu varsayar, dolayısıyla onu eklememiz gerekmez.

    Yerleşik etiketler.

    HTML4'te çeşitli metin biçimlendirmelerini uygulamak için birçok etiket bulunur, ancak örneğin saat ve tarihi gösterecek etiketler yoktur. Bu nedenle, artık HTML5'te bu tür etiketler mevcut:

    Etiket, metnin bir bölümünü belirli bir amaç için belirtmek, örneğin metnin önemli bir bölümünü göstermek için kullanılır.

    Metnin çok önemli bir kısmı...

    .

    etiketi bazı metinlerde saat ve tarihi belirtmek için kullanılır, örneğin:

    etiketi bazı sayıları belirli bir biçimde göstermek için kullanılır, örneğin:

    Aylık geliri 15.000$...

    Etiketin 6 faydalı özelliği vardır:

    • değer - bir şeyin gerçek değerini ayarlar;
    • min - bir şeyin minimum değerini ayarlar;
    • düşük - değerin düşük kabul edildiği sınırı tanımlar;
    • yüksek - değerin düşük kabul edildiği sınırı tanımlar;
    • max - bir şeyin maksimum değerini tanımlar;
    • optimum - bir şeyin optimum değerini tanımlar.

    Örneğin:

    Şeker konsantrasyonu: 8.2.

    Son yeni etiket, bir ilerlemenin belirli bir noktasını göstermek için kullanılır; örneğin, bir şeyin tamamlanma yüzdesi:

    Tamamlanma: %20

    Etiketin iki nitelik değeri vardır: geçerli ilerleme değeri ve maksimum, maksimum ilerleme değeri.

    Multimedya etiketleri.

    HTML5, medya çıktısı için iki yeni etikete sahiptir ve .

    İşte etiketi kullanmanın bir örneği:

    Şimdi oynuyor...

    Bu etiketin üç özelliği vardır:

    • src - ses dosyasının yolu;
    • otomatik oynat - sayfa tarayıcıya yüklendikten hemen sonra dosyanın oynatılmaya başlayıp başlamayacağını belirler;
    • döngü - sesin kaç kez çalınması gerektiğini belirler.

    Bir etiket, içine bazı bilgiler içeren diğer etiketleri yerleştirmenize olanak tanır.
    Etiket, video dosyalarını sayfada görüntülemek için kullanılır.

    Klips...

    Src niteliği video dosyasının yolunu belirtir.
    Multimedya etiketleri, ses ve video dosyalarını doğrudan bir HTML belgesinde görüntülemenize ve bunların arama motorları tarafından indekslenmesini kolaylaştırmanıza olanak tanır.

    Etkileşimli etiketler.

    HTML5'te, HTML sayfasının tamamını yeniden yüklemeden bazı içerikleri değiştirmenize olanak tanıyan çeşitli etkileşimli etiketler bulunur:

    Etiket oldukça ilginç çünkü HTML'nin önceki sürümlerinde zaten mevcuttu ve şimdi geri getirildi. HTML5'teki bir etiket, bir etiket için kapsayıcı görevi görür ve bu da radyo düğmesi, onay kutusu veya normal düğme biçiminde bir komut oluşturur.

    Bu etiketleri kullanarak çeşitli etkileşimli menüler oluşturabiliriz.
    Etiket, yardım alanı gibi bazı ek bilgileri göstermek için kullanılır.

    Bazı içerik Yardım bilgileri...

    Etiket, çeşitli 2B şekilleri ve bitmapleri otomatik olarak oluşturmak için kullanılır. Çeşitli nesneler oluşturabileceğiniz, görüntüleri görüntüleyebileceğiniz ve bunları JavaScript kullanarak dönüştürebileceğiniz bir HTML belgesinin belirli alanlarını tanımlar.

    < script>var örnek = document.getElementById ("örnek" ) ; var context = example.getContext("2d"); ctx.fillStyle = "#FF0000"; ctx.fillRect(0, 0, 80, 100);< canvas id= "sample" width= "300" height= "300" >Tarayıcınız HTML5'i desteklemiyor.

    ID özelliği, etiketi bir DOM (Belge Nesne Modeli) nesnesi olarak tanımlamak için kullanılır. Daha sonra genişlik ve yükseklik nitelikleri belirtilir. Etiketler arasına alınmış metin, HTML5'i desteklemeyen tarayıcılarda gösterilecektir. Flash gibi dinamik grafikleri görüntülemek için 2D API'lerle birlikte kullanılması amaçlanmıştır.

    Bugün HTML5'in yeni özelliklerini kullanmaya başlayabiliriz. Bazı basit hileler eski tarayıcılarda bile işe yarayacaktır. Yeni bir web sitesi oluşturmayı planlıyorsanız sitenize yeni özelliklerle daha akıllı, daha akıllı bir yapı kazandırmak için HTML5 kullanmayı düşünebilirsiniz.

    HTML5 standardı modern web tasarımında giderek daha fazla kullanılmaktadır. Hala geliştirilme aşamasında olmasına rağmen standartlarının çoğu zaten onaylanmış ve mobil olanlar da dahil olmak üzere tüm modern tarayıcılar tarafından kullanılıyor.

    Bu makalede HTML5'in bazı yeni özelliklerine, bunların pratikte nasıl kullanılacağına dair belirli örneklerle bakacağız.

    Yeni DOKÜP

    Tipik bir XHTML belgesinin DOCTYPE bölümünde nasıl tanımlandığını hatırlayalım:

    ‹!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"›

    İşaretleme dilinde bir belge türü bildirmek çok daha kısa ve okunabilir görünüyor

    ‹!DOCTYPE html›

    Üstelik bu DOCTYPE'ı herhangi bir sayfayı düzenlerken kullanabilirsiniz. Tarayıcı HTML5'e aşina değilse sayfayı standart modda görüntüler.

    Geliştirilmiş kod semantiği

    Geliştirilmiş kod semantiği, arama motorlarının bir sayfadaki içerik türleri arasında net bir şekilde ayrım yapmasına, önemli bilgileri ayırmasına ve arama sorgularında sayfanın sıralamasını yükseltmesine olanak tanır.

    Üstbilgi ve Altbilgi öğeleri

    Artık gibi yapılardan kurtulabilirsiniz.

    ‹div id=”başlık”› … ‹/div› ‹div id=”alt bilgi”› … ‹/div›

    Ve hem insanlar hem de makineler için daha anlaşılır olanları kullanmaya başlayın

    ‹başlık› … ‹/başlık› ‹altbilgi› … ‹/altbilgi›

    ‹div› kökeni itibariyle herhangi bir anlamsal yapıya sahip değildir ve birbiri içinde ve diğer kapsayıcılar içinde birden çok kez yuvalanabilir. Daha düşünceli bir anlamsal yapının kullanılması, arama motorunun üstbilgi, altbilgi ve ana bilgi bölümünün nerede bulunduğunu açıkça ayırt etmesine olanak tanır.

    ŞEKİL öğesi

    Aşağıdaki kod parçasını göz önünde bulundurun:

    ‹img src="mars.jpg" alt="Mars Hakkında" /› ‹p›This is an image of Mars‹/p› !}

    Bu durumda arama motorlarının, resmin açıklamasını içeren ‹p› etiketinin aslında resmin açıklaması olduğunu tespit etmesi zordur. Bu nedenle bu tür yapıları ortak bir kapta birleştirmek daha iyidir, bu da ‹şekil ›:

    ‹figure› ‹img src = "mars.jpg" alt = "(! LANG: Mars Hakkında" /› ‹figcaption› ‹p›This is an image of Mars‹/p› ‹/figcaption› ‹/figure› !}

    Bu durumda, şeklin içeriğinin nerede olduğunu ve başlığının nerede olduğunu belirten ek bir ‹figcapture> etiketi bulunur.

    Hgroup'u kullanma

    Web sitenizdeki başlığın bir ana başlık ve bir alt başlıktan oluştuğunu düşünün. Her zamanki ‹h1› ve ‹h2› etiketlerini kullanmak hiçbir şekilde bu iki öğe arasındaki ilişkiyi yansıtmaz. Bu nedenle ‹hgroup› etiketi kullanılarak anlamsal olarak birleştirilebilirler:

    ‹header› ‹hgroup› ‹h1›Fotoğraf Galerisi‹/h1› ‹h2›Prag'daki boş yerimiz‹/h2› ‹/hgroup› ‹/header›

    Komut dosyalarını ve stil sayfalarını bağlamak için tür yok

    Komut dosyalarını, kitaplıkları, stil sayfalarını vb. bağlamak için hâlâ yapıları kullanıyor olabilirsiniz. aşağıdaki formda:

    ‹link rel=”stylesheet” href=”stylesheet.css” type=”text/css” /› ‹script src=”script.js” type=”text/javascript”›‹/script›

    Yani artık dahil edilecek dosya türünü belirtmenize gerek yok. Tarayıcı bunu otomatik olarak algılayacaktır. Bu, type niteliğinin artık gerekli olmadığı anlamına gelir:

    ‹link rel=”stylesheet” href=”stylesheet.css” /› ‹script src=”script.js”›‹/script›

    Kod yapısı

    XHTML standardı, nitelik değerlerinin tek veya çift tırnak içinde belirtilmesini gerektiriyordu. HTML5 standardı, gerekli olmadıkça tırnak işaretlerinin kullanımını atlamanıza izin verir; nitelik değeri boşluksuz tek sözcükle belirtilir. Üstelik eşleştirilmiş öğeleri kapatmanıza bile gerek yok. İşte bir örnek:

    ‹p class=myClass id=pId›İçerik

    Ancak bu, geliştirici açısından kodun okunabilirliğine zarar verebilir. Bu nedenle, kod yazma stili tamamen size kalmış çünkü eski (zamanla test edilmiş) stil hala destekleniyor.

    Düzenlenebilir İçerik

    HTML5, gizli metin alanları eklemenize gerek kalmadan sitenizin içeriğini tamamen düzenlenebilir hale getirmenize olanak tanır. Tek yapmanız gereken, düzenlenebilir hale getirmek istediğiniz öğeye contenteditable="true" (veya önceki paragrafta öğrendiğimiz gibi tırnak işaretleri olmadan) özelliğini eklemektir. Bundan sonra kullanıcı, içeriğini doğrudan sayfadan düzenleyebilecektir.

    Bu durumda kullanıcı sırasız listeye ‹ul› öğe ekleyebilir, silebilir ve düzenleyebilir. Aşağıda öğeleri değiştirilebilen bir liste örneği verilmiştir

    • TV izle
    • Müzik dinlemek
    • Video oyunları oyna
    Yeni Form Özellikleri

    HTML5, kullanıcılara ve geliştiricilere bilgileri formlara girme konusunda daha fazla esneklik sağlar. Bu amaçlar için birçok yararlı şey eklenmiştir. Bunlardan bazılarına bakalım.

    E-posta giriş alanları

    ‹input› etiketine type="email" niteliğini kullanın; giriş alanları, girilen adresin doğruluğunu kontrol etmek için ek benzersiz yeteneklere sahip olacak ve adres yanlış girilirse tarayıcı kullanıcıya bir uyarı mesajı gösterecektir.

    ‹giriş kimliği = "e-posta" name = "e-posta" type = "e-posta" /›

    Sonuç şöyle görünebilir (Google Chrome):

    Web sitesi adresleri veya telefon numaraları gibi başka giriş alanları da vardır. Çalışma prensibi e-posta alanına benzer.

    İpuçlarını kullanma

    Artık metin alanlarına girmek için yer tutucular oluşturmak amacıyla javascript kullanmaya gerek yok. HTML5, bir alan için arka plan metni ipucunu görüntüleyebilen özel bir yer tutucu özelliği sunar.

    ‹giriş adı = "e-posta" type = "e-posta" yer tutucu = " [e-posta korumalı]" /›

    Sonuç aşağıda gösterilmiştir:

    Bu örnek yalnızca HTML5'i destekleyen tarayıcılarda çalışacaktır.

    E-posta:

    Otomatik odaklama

    Javascript kullanmadan, sayfa yüklendikten sonra otomatik olarak bir öğeye odaklanabilirsiniz. Bunun için öncelikle girilmesi gereken alana parametresiz bir nitelik eklemeniz gerekmektedir.

    ‹giriş adı="isim" type="metin" otomatik odaklama /›

    Ad alanı otomatik olarak etkinleştirilecek ve metin girmenize hazır olacaktır.

    Zorunlu Alanlar

    Bazı alanları gerektiği gibi işaretlemeniz gerekiyorsa, artık yalnızca özelliği belirtmeniz yeterlidir. Böylece, formu gönderirken tarayıcı gerekli alanların doldurulup doldurulmadığını kontrol edecek ve doldurulmamışsa bir mesaj görüntüleyecektir.

    ‹giriş adı = "isim" type = "metin" yer tutucu = "(! LANG: John Smith" required /› !}

    Aşağıda bu kodun sonucunun bir örneği bulunmaktadır (Google Chrome):

    Aralık Girişi

    HTML5, değeri önceden ayarlanmış değerler arasında özel bir işaretleyicinin sürüklenmesiyle değiştirilen bir kaydırıcı olan tamamen yeni bir kontrol aralığı girişi sunar.

    ‹giriş tipi = "aralık" name = "miktar" min = "0" maksimum = "100" adım = ".25" değer = "10" /›

    Min ve max nitelikleri kaydırıcının uç değerlerini ayarlamak için kullanılır, adım değerin değiştirildiği adımdır. Google Chrome tarayıcısı bu kontrolü şu şekilde görüntüler:

    Bu örnek yalnızca HTML5'i destekleyen tarayıcılarda çalışacaktır.

    Yerel depolama

    Yerel depolama, tarayıcı sayfasının kapatılması veya yeniden yüklenmesi durumunda kullanıcı tarafından girilen bilgileri kaydetmenize olanak tanır. Bu, özellikle formun oldukça büyük olduğu ve sitenin yanlışlıkla kapatıldığı durumlarda çok kullanışlıdır.

    Yerel Depolamanın kendisi HTML5 spesifikasyonunun bir parçası değildir ancak onunla yakından ilişkilidir.

    Yerel depolama, setData() ve getData() olmak üzere iki yöntem kullanılarak localStorage sınıfı nesnesi aracılığıyla yönetilir. Aşağıda, girilen son değerleri saklayacak, yukarıda açıklanan düzenlenebilir listeyi kullanan bir örnek bulunmaktadır.

    ‹h1›Yapılacaklar Listesi‹/h1› ‹ul contenteditable=true› ‹li›TV izleyin‹/li› ‹li›Müzik dinleyin‹/li› ‹li›Video oyunları oynayın‹/li› ‹/ul›

    JavaScript (jQuery kitaplığını kullanarak, ancak bu isteğe bağlıdır):

    $("#todo").blur(function () ( localStorage.setItem("todoData", this.html); )); if (localStorage.getItem("todoData")) ( $("#todo").html(localStorage.getItem("todoData")); )

    Multimedya desteği

    Artık çeşitli ses ve video dosyalarını bağlamak için üçüncü taraf eklentileri ve kitaplıkları kullanmanıza gerek yok. Tüm medya yerleştirme yetenekleri artık HTML5 spesifikasyonuna dahil edilmiştir.

    Ses

    Bir sayfaya ses dosyası gömmek için gerekli niteliklere sahip ‹audio› etiketini kullanmanız gerekir. Aşağıdaki örnek, sayfada bu dosyayı indirmek için bir bağlantı içeren bir ses dosyası için bir kontrol bloğu görüntüler. Ses otomatik olarak çalacaktır.

    ‹Ses otomatik oynatma kontrolleri›
    ‹source src='file.ogg' /›
    ‹kaynak src="dosya.mp3" /›
    ‹a href="file.mp3"›Bu dosyayı indirin.‹/a›

    Sayfada bu blok şu şekilde görünebilir (Google Chrome tarayıcısı)

    Bu etiketin tarayıcılarda kendi destek özellikleri vardır. Örneğin, Mozilla Firefox tarayıcısı .ogg dosyalarıyla çalışırken Webkit tarayıcıları .mp3 dosyalarıyla çalışır.

    Video

    Yakın zamana kadar bir HTML sayfasına video içeriği eklemenin tek yolu Flash içeriğini entegre etmekti. Ancak bu özellik artık HTML5 özelliklerini karşılayan tarayıcıların kendileri tarafından sağlanmaktadır. Bu, en büyük video barındırma sitesi YouTube.com'un HTML5 biçimine geçmesiyle özellikle popülerlik kazandı.

    Bir videoyu bir sayfaya başarılı bir şekilde entegre etmek için ‹video› etiketini kullanmanız gerekir. Ne yazık ki, tarayıcı üreticileri arasında videonun hangi formatta sunulması gerektiği konusunda bir fikir birliği yok, bu nedenle her biri kendi formatını tanıtıyor. IE ve Safsri H.264 videoyu (Flash oynatıcılar tarafından desteklenir) desteklerken, Opera ve Firefox açık kaynaklı Vorbis ve Theora formatlarını destekler. Chrome ise WebM dahil tüm formatlardaki videoları doğru şekilde görüntüleyebilir.

    ‹video ön yüklemesini kontrol eder› ‹source src='video.ogv' type='video/ogg; codecs='vorbis, theora''' / ‹source src='video.mp4' type''video/mp4; codecs'' avc1.42E01E, mp4a.40.2"" /› ‹p›Tarayıcınız eski. ‹a href="video.mp4"›Bunun yerine bu videoyu indirin.‹/a› ‹/p› ‹/video›

    Tüm tarayıcılar HTML5 videosunu görüntüleyemez; bu nedenle ‹source› etiketi altında videoyu indirmek için bir bağlantı belirtebilir veya bir Flash oynatıcı entegre edebilirsiniz.

    Preload özelliği, tarayıcının videoyu otomatik olarak yüklemeye başlamasını sağlar; bu, video yeterince büyükse yararlı olabilir. Kontroller özelliği, standart video akışı kontrollerini ayarlamanıza olanak tanır.