Käännös: Vlad Merževitš

1. Se ei ole yksi iso asia.

Saatat kysyä: "Kuinka voin käyttää HTML5:tä, jos vanhemmat selaimet eivät tue sitä?" Itse asiassa tämä kysymys on väärä. HTML5 ei ole yksi iso asia, se on kokoelma erilaisia ​​ominaisuuksia. Et voi kirjoittaa "HTML5-tuettu", koska se ei ole intuitiivista, mutta voit määrittää tuen joillekin HTML 5 -tekniikoille, kuten piirtämiselle, videolle ja maantieteelliselle sijainnille.

Voit ajatella HTML:ää tageina ja kulmasulkeina. Tämä on tietysti tärkeä osa, mutta ei koko asia. HTML5-spesifikaatio määrittää myös, kuinka nämä kulmasulut ovat vuorovaikutuksessa JavaScriptin kanssa Document Object Model (DOM) -mallin kautta. HTML5 ei vain määritä tunnistetta, vaan se myös kertoo DOM:lle kaikista videoobjekteista. Sovellusohjelmointirajapinnalla (API) voit tukea erilaisia ​​videomuotoja, toistaa videota, pysäyttää sen, mykistää äänen, seurata tiedostojen latauksia ja paljon muuta käyttäjän ja tunnisteen välisen vuorovaikutuksen perusteella.

2. Sinun ei tarvitse heittää pois sitä, mitä sinulla on

Piditpä siitä tai et, et voi kiistää sitä, että HTML4 on menestynein merkintämuoto. HTML5 rakentuu tälle tuurille, joten sinun ei tarvitse heittää pois olemassa olevia merkintöjä ja oppia uudelleen. Jos verkkosovelluksesi toimii HTML4-kielellä tänään, se toimii myös HTML5-kielellä.

Tässä konkreettinen esimerkki: HTML5 tukee kaikkia HTML4:n lomakeelementtejä ja sisältää myös uusia elementtejä. Jotkut niistä, kuten liukusäätimet ja päivämäärän valinta, ovat olleet kauan tulossa, toiset eivät ole niin ilmeisiä. Esimerkiksi sähköpostiosoitteen syöttökenttä on tavallinen tekstikenttä, mutta nykyaikaiset selaimet tätä kenttää varten helpottavat osoitteen kirjoittamista. Vanhemmat selaimet eivät tue input type="email" , joten ne näyttävät tavallisen tekstikentän ja lomakkeet toimivat sen kanssa ilman lisätemppuja. Tämän avulla voit parantaa lomakkeitasi tänään, vaikka jotkut käyttäjät ovat edelleen jumissa IE6:ssa.

3. Helppo aloittaa

"Päivitys" HTML5:een voidaan tehdä yksinkertaisesti muuttamalla asiakirjatyyppiä. Elementti tulee aina sijoittaa minkä tahansa verkkosivun ensimmäiselle koodiriville. Edellisessä HTML-versiossa määriteltiin useita doctype-vaihtoehtoja, eikä oikean valinta ollut helppoa. HTML5:ssä on vain yksi dokumenttityyppi:

Doctypen muuttaminen ei tuhoa olemassa olevaa asettelua, koska myös HTML5 tukee kaikkia HTML4:ssä määritettyjä tunnisteita. Lisäksi voit käyttää oikein uusia semanttisia elementtejä, kuten , , ja .

4. Se toimii jo

Halusitpa sitten piirtää kuvia, toistaa videoita, parantaa lomakkeiden toimivuutta tai rakentaa offline-verkkosovellusta, huomaat, että selaimet tukevat hyvin HTML5:tä. Firefox, Safari, Chrome ja mobiiliselaimet toimivat tunnisteiden, videoiden, maantieteellisen sijainnin, paikallisen tallennustilan jne. kanssa. Google ymmärtää mikrodatan merkinnät. Jopa Microsoft, joka yleensä jää jälkeen standardeista, tukee HTML5:n ydinominaisuuksia Internet Explorer 9 -selaimessaan.

Kaikki tämän kirjan osiot sisältävät yhteensopivuustaulukon suosituille selaimille. Vielä tärkeämpää on, että keskusteluun sisältyy vanhempien selainten tukivaihtoehtoja. HTML5-teknologiat, kuten maantieteellinen sijainti ja video, toteutettiin käyttämällä laajennuksia, kuten Gears tai Flash. Muita ominaisuuksia, kuten piirtämistä, voidaan emuloida JavaScriptin kautta. Tämä kirja näyttää, kuinka voit käyttää nykyaikaisten selainten sisäänrakennettuja ominaisuuksia heittämättä pois vanhoja versioita.

5. Hän on jo täällä

Tim Berners-Lee keksi World Wide Webin 1990-luvun alussa. Myöhemmin hän perusti W3C:n ylläpitämään verkkostandardeja. Organisaatiolla on yli 15 vuoden historia. Tässä on mitä W3C ilmoitti verkkostandardien tulevaisuudesta heinäkuussa 2009:

Johto ilmoitti tänään, että kun XHTML 2 Working Groupin peruskirja päättyy vuoden 2009 lopussa, sitä ei uusita. Tämä lisää HTML-työryhmän resursseja. W3C toivoo, että tämä nopeuttaa HTML5:n etenemistä ja selventää W3C:n kantaa HTML:n tulevaisuuteen.

HTML5 on täällä. Sukellaanpa siihen.

Mitä uutta HTML5:ssä? Erot HTML5:n ja HTML 4:n välillä

HTML5-spesifikaatio tuo mukanaan monia eritasoisia ja vaihtelevan tärkeyden muutoksia. Pohjimmiltaan keskeiset muutokset voidaan jakaa 7 lohkoon:

a) Semantiikka (kieliyksiköiden semanttinen merkitys)

HTML5 esittelee useita uusia semanttisia tunnisteita, joiden avulla voit järjestellä verkkosivujen sisäistä rakennetta mielekkäämmin. Tämä sisältää sekä lohkotunnisteet, kuten otsikko-, alatunniste-, artikkeli- ja tekstimerkintätagit, kuten mark, ruby, details. Useita olemassa olevia HTML4-tageja on julistettu vanhentuneiksi, yksittäisten tunnisteiden merkitys on muuttunut ja attribuutit ovat muuttuneet.

b) Multimedia

HTML5 lisää natiivituen multimediasisällölle (äänelle ja videolle) suoraan HMTL-merkinnöissä – ja siihen liittyvän API:n hallintaa varten.

c) Grafiikka

Työskentely grafiikan kanssa asiakaspuolella on helpottunut huomattavasti. Canvas-elementti ja erityinen JavaScript-sovellusliittymä sen kanssa työskentelemistä varten on lisätty HTML5:een. Canvas on dynaaminen "pinta", jolle voit piirtää ohjelmallisesti. HTML5 sisältää virallisesti myös svg-tunnisteen, jonka avulla voit toteuttaa vastaavan verkkostandardin SVG:n (Scalable Vector Graphics) kuvaamaa vektorigrafiikkaa.

d) Verkkolomakkeet

Uudet verkkolomakeelementit: tyypit ja attribuutit, joiden avulla voit laajentaa perinteisten lomakkeiden ominaisuuksia sisäänrakennetuilla työkaluilla ilman lisäkirjastojen käyttöä - vihjeistä syöttökentässä (paikkamerkki) ja syötettyjen arvojen validoinnista erikoiselementteihin päivämäärän ja värien syöttäminen.

e) JavaScript-sovellusliittymät.

HTML5 sisältää uusia ominaisuuksia objektien siirtämiseen (Drag & Drop), siirtymien historian käsittelyyn (History API) sekä useita pieniä asioita, kuten mahdollisuuden tehdä sisällöstä muokattavaa suoraan nykyisessä sijainnissa käyttämällä Content Editable -attribuutteja. .

f) Uusi DOCTYPE

DOCTYPE-tunniste on avainkomponentti verkkosivuilla, jotka väittävät noudattavansa standardeja: ilman sitä koodi ei läpäise vahvistusta. DOCTYPE on myös tärkeä, jotta sivu näkyy ja toimii oikein standardien mukaisissa selaimissa.

HTML 4:ssä oli kolmenlaisia ​​elementtejä:

  • 1. Tiukka
  • 2. Siirtymävaihe
  • 3. Kehyksillä (Frameset)

Usein yhden tai toisen DOCTYPE-elementin valitseminen oli melko vaikeaa. HTML5 DOCTYPE:ssä on vain yksi, se on kirjoitettu näin:

Tämä lyhyt merkintä korvaa vanhemman, pidemmän lomakkeen:

g) Syntaksi

HTML 5:llä on kaksi syntaksia - "mukautettu" HTML ja XML. HTML-syntaksi määrittelee yksityiskohtaiset jäsennyssäännöt (mukaan lukien "virheiden käsittely").

XML-syntaksi on yhteensopiva XHTML1-dokumenttien ja sen toteutusten kanssa. Tämän syntaksin käyttämiseksi MIME (Multipurpose Internet Mail Extensions) -tyyppi on ilmoitettava XML-tyypiksi ja elementit on rakennettava XML-määrityksen mukaisesti.

Kuva 2 - HTML5:n perusominaisuudet

HTML5 - uusi sukupolvi. Yli 10 vuotta on kulunut HTML 4.01 -suosituksen (1999) julkaisemisesta, ja siksi muutoksia ja lisäyksiä on odotettavissa paljon. HTML5-spesifikaatio on tällä hetkellä vielä kehitteillä. World Wide Web Consortium ei kehitä standardeja, vaan antaa vain suosituksia. Kaikki alkaa työkeskusteluista, sitten aloitetaan työluonnos, sitten vapautetaan ehdokas suosittelijan rooliin ja vasta sitten spesifikaatio saa lopulta suosituksen tilan. Tällä hetkellä HTML5-työ on vielä luonnosvaiheessa. Tästä huolimatta useimmat suosituimmat Internet-selaimet tukevat jo osittain HTML5-innovaatioita. Ennen kuin teen niistä lyhyen yleiskatsauksen, toistan, että kaikki selaimet eivät toteuta tätä toimintoa eivätkä vielä täysin. Nykyään voimme luottaa siihen, että Opera, Chrome, Firefox, Safari ja Internet Explorer tukevat HTML5:tä vaihtelevissa määrin.

Mitä uutta HTML5:ssä

Ja siellä on todella paljon uutta. Nyt verkkokehittäjillä on useita lisäominaisuuksia, kuten geometristen muotojen piirtäminen verkkokankaalle, sisäänrakennetut vedä ja pudota -ominaisuudet sekä video- ja äänitiedostojen toistaminen (aiemmin tämä onnistui vain laajennuskomponenteilla, kuten esim. Adobe Flash Playerina) ja paljon muuta, joista keskustellaan hieman myöhemmin. Aluksi haluaisin sanoa muutaman sanan HTML:n kehityksen yleisistä suuntauksista.

Uusien tunnisteiden muodossa esiin jäävä HTML5-määrityksen osa on vain jäävuoren huippu. Suurin osa HTML5:n edistyneistä ominaisuuksista on saatavilla vain komentosarjaohjelmointikielellä, joka on asiakaspuolen web-ohjelmoinnin perusta. Jos otamme saman piirustustoiminnon toteutettuna tagilla, emme puhu "piirtomerkinnöistä" geometristen muototunnisteiden avulla, kuten voisi olettaa. Kanvasasettelu päättyy kanvas-elementin sijoittamiseen sivulle ja se on siinä. Piirustus itsessään on JavaScript-toiminto, joka, kun se on päässyt kankaalle, piirtää siihen muotoja samalla tavalla kuin tavalliset Windows-sovellukset näyttävät grafiikkaa ikkunoihin GDI (Graphics Device Interface) -rajapintojen kautta. Siten HTML5-spesifikaatio asettaa Internet-selaimille melko vakavia vaatimuksia JavaScript-työn toteuttamisessa, mikä suurelta osin säätelee ohjelmarajapintaa () dokumenttiobjektimallin (DOM) kanssa työskentelyyn. Tämä on hyvä uutinen, sillä monet tietävät, että eri selaimet voivat järjestää työskentelyn objektimallin kanssa toisistaan ​​poikkeavien ohjelmarajapintojen kautta. Osittain ohjelmistorajapinnan määrittely on organisaation ansio Web Hypertext Application Technology Working Group (WHATWG), joka pyrkii standardoimaan merkintäkielen lisäksi myös sovellusliittymiä, joita käytetään komentosarjakielillä, kuten JavaScriptillä, kirjoitetuissa sovelluksissa. WHATWG on myös mukana kehitystyössä W3C:n kanssa.

Voidaan myös todeta, että HTML5:n kirjoittajat yrittivät siirtää joidenkin suosittujen ja haluttujen web-ohjelmointitehtävien toteuttamisen Internet-selaimien itsensä vastuulle. Esimerkiksi HTML5:n avulla voidaan varsin helposti toteuttaa verkkokauppojen käyttöliittymissä niin suosituksi tullut elementtien vetäminen ja pudottaminen (tuotteiden valinta ostoskoriin). Aiemmin tätä varten piti kirjoittaa JavaScript-skripti käyttämällä erilaisia ​​​​tukikirjastoja, kuten . Vedä ja pudota -toiminto on nyt paljon helpompi toteuttaa määrittämällä useita lisämääritteitä ja lisäämällä muutama tapahtumakäsittelijä tarvitsemillesi tunnisteille. "Drag&drop" -toiminnon järjestäminen jQuerylla ei myöskään ole erityisen monimutkaista, mutta HTML5:n tapauksessa käsittelemme yhtä suositusta kaikille Internet-ohjelmistoasiakkaille, ja tämä on täysin eri tasoinen tuki ja selainyhteensopivuuden takuu. Osoittautuu, että HTML5-suosituksia tukevat selaimet tarjoavat nyt mahdollisuuden tallentaa ja palauttaa istunnon asetuksia itse web-istunnon yhteydessä. Esimerkiksi kun sivu ladataan uudelleen, sille aiemmin syötetyt tiedot eivät katoa, vaan ne palautetaan nykyisen istunnon ympäristöstä. Tämä on jo "astumassa" palvelinpuolen web-ohjelmoinnin alueelle, koska aiemmin tätä ei voitu tehdä vain HTML:n ja JavaScriptin avulla.

No, nyt luettelo HTML5:n merkittävimmistä innovaatioista:

Piirrä verkkokankaalle tai käytä canvas-elementtiä

Kuten jo mainittiin, suurin osa suosituksista, jotka koskevat uuden elementin käyttöä on spesifikaatio ohjelmistokäyttöliittymälle grafiikan näyttämiseksi siinä. Aloita asettamalla sivulle tunniste tietyn leveyden ja korkeuden, käytät sitä JavaScript-koodissa (esimerkiksi id:llä) ja alat piirtää siihen. Piirtäminen tarkoittaa, että määritetään peräkkäin viivatyylin viivatyylinen, täyttötyylinen fillStyle ja kutsutaan piirtomenetelmiä, kuten moveTo (siirrä kynää), lineTo (piirrä viiva), kaari (piirrä kaari) jne. Katso alla esimerkki - yksinkertaisin työkalu hiirellä piirtämiseen. Alla on sen lähdekoodi JavaScript- ja HTML-merkinnöissä. Piirrä kynällä painamalla hiiren vasenta painiketta ja siirtämällä kohdistinta kankaalle. "Lines"- tai "polygons"-tilassa napsauta vain peräkkäin kankaalla, mikä osoittaa polyline- tai alueobjektien kärjet.

Esimerkki piirtämisestä kankaalle

Esimerkki piirustusoperaatioiden toteuttamisesta elementissä HTML5:n avulla.

JavaScript lähdekoodi

//Nykyisen toiminnon koodi var operation=0; //Toiminnan tila var active=false; //Käynnistä graafinen toimintofunktio startOperation(e) ( if (operation==0) return; if (aktiivinen) return; var konteksti = getContext(); context.strokeStyle = getColor("stroke"); konteksti.fillStyle = getColor ( "fill"); context.beginPath(); var point = getPoint(e); context.moveTo(point.x, point.y); active = true; ) //Graafisen toiminnon lopettaminen stopOperation() (jos (! active) return; var konteksti = getContext(); konteksti.closePath(); active = false; ) //Hiiren tapahtumat -funktio mouseDown(e) ( var e = e || window.event; if (!active) ( startOperation(e); return; ) else ( var konteksti = getContext(); var point = getPoint(e); context.lineTo(point.x, point.y); context.stroke(); if (operaatio == 3 ) konteksti .fill(); ) return true; ) function mouseUp(e) ( var e = e || window.event; if (!active || operaatio != 1) return; stopOperation(); return true; )-funktio mouseMove(e) ( var e = e || window.event; if (!aktiivinen || toiminta != 1) return; var konteksti = getContext(); var point = getPoint(e); konteksti.viivaTo(piste.x, piste.y); konteksti.stroke(); palauttaa tosi; ) funktio getColor(control) ( var color = document.getElementById(control).value; if (color == "") color = "#000"; return color; ) //Canvas-elementtifunktio getCanvas() ( palauttaa asiakirjan. getElementById("canvas"); ) //Konteksti 2D-grafiikan näyttämiseen kankaalle elementtifunktiolla getContext() ( return getCanvas().getContext("2d"); ) //Elementin "valittu toiminta" -funktio getSelected() ( return document. getElementById("selected"); ) //Hiiren kohdistinfunktion getPoint(e) suhteelliset koordinaatit ( var x = tapahtuma.sivuX || tapahtuma.x; var y = tapahtuma.sivuY || tapahtuma.y; var rect = getCanvas() .getBoundingClientRect(); var point = (); point.x = x - rect.left; point.y = y - rect.top; paluupiste; ) //Valitse toimintofunktio selectOperation(code) ( stopOperation(); operaatio = koodi; kytkin(toiminto) ( tapaus 1: ( getSelected().innerText = "Valittu: kynä"; break; ) tapaus 2: ( getSelected().innerText = "Valittu: rivit"; break; ) tapaus 3: ( getSelected().innerText = "Valittu: polygonit"; tauko; ) ) )

HTML-lähdekoodi

kynäviivat polygonit Valittu: viivan väri täyttöväri

Vedä ja pudota elementtejä

Tämä ei ole muuta kuin selaimen tuki klassiselle "vedä ja pudota" -mallille, joka on erittäin suosittu tavallisissa GUI-sovelluksissa. Määritä "vedettäville" elementeille vedettävissä oleva attribuutti ja elementeille, joille "heität" vedetyt elementit, määrität tapahtumakäsittelijät ondragenter , ondragover ja ondorp . Siinä kaikki, oikeastaan. Esimerkki alla.

HTML5-esimerkki vedä ja pudota - "Basketball Basket"

Esimerkki vedä ja pudota -toimintojen (elementtien vetäminen) toteuttamisesta HTML5:n avulla.

HTML-lähdekoodi

HTML5: Vedä ja pudota html, body ( font-family: Arial font-size: 11px; ) .basket (reunus: 1px kiinteä #777; leveys: 105px; korkeus: 120px; täyte: 10px; reunuksen säde:0 0 10px 10px; taustaväri: #eee; laatikkovarjo: upotettu 0px 0px 5px #777; .basket .ball (leveys: 30px; korkeus: 30px; reunuksen säde: 15px; laatikkovarjo: 5px 5px 10px #77; float: oikea; ) .ball (reunus: 1px kiinteä #FF7F50; leveys: 20px; korkeus: 20px; reunuksen säde: 10px; taustaväri: #FF8C00; laatikkovarjo: 0px 0px 5px #777; float: vasen; marginaali: 1px; ) funktio startDrag(e) ( var e = e || window.event; e.dataTransfer.setData("Ball", e.target.id); e.dataTransfer.effectAllowed="move"; return true ; ) funktio 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 = tosi; palauttaa väärä; )...

Toistaa video- ja äänitiedostoja

Kaikki on täällä melko yksinkertaista, siellä olisi jotain lisääntymistä ja missä. Aseta tunnisteet Ja Määritä sivullasi heille src-attribuutti, joka ilmaisee toistolähteen, ja odota, että Internet-selaimet oppivat käsittelemään näitä upeita ohjeita ja toistamaan yleisimpiä formaatteja.

Uusia mukautettuja verkkolomakeelementtejä

HTML5 lupaa uusia elementtityyppejä , jotka ohjaavat Internet-osoitteen, sähköpostiosoitteen, numeroarvojen, päivämäärän, kellonajan, värin jne. syöttämistä. Jos selaimesi tukee jo kaikkia näitä innovaatioita, näet alta, miten se tekee sen. Jos selain ei tue kaikkia uudentyyppisiä elementtejä, ne, joita se ei vielä osaa käsitellä, näyttävät tavallisilta tekstinsyöttökentiltä.

Käyttäjän ohjaimet

Elementtien muunnelmat, joilla on erilaiset tyyppiattribuuttiarvot:

Jos osoitearvo ei vastaa muotoa url, sen jälkeen kun olet napsauttanut [vahvista], selain yrittää korjata sen. Jos se ei voi tehdä tätä, se näyttää virheilmoituksen. Jos sähköpostin arvo ei vastaa muotoa sähköposti, klikattuasi [vahvista] selain joko korjaa osoitteen tai ilmoittaa syöttövirheestä.

Numeeristen arvojen visualisointi

Numeerisen arvon esitys asteikon muodossa, jossa on kyky osoittaa intervallit matalan normin ja korkean normin alapuolella sekä optimaalisen arvon optimi.

Elementti:

Suoritusprosessin visualisointi. Voit määrittää vain maksimi- ja nykyisen arvon.

Elementin HTML-lähdekoodi

Numero väliltä:

Kokonaisluku:

Päivämäärä ja aika:

Päivämäärä:

Aika:

Kuukausi:

Viikko:

Väri:

url:

sähköposti:


Selaushistorian hallinta

Siirtymistä aiemmin ladatuille sivuille on mahdollista hallita itsenäisesti JavaScriptin ja objektin avulla historia. Esimerkiksi kutsuminen window.history.length palauttaa "historian pituuden", ja kutsuminen window.history.back() , window.history.forward() tai window.history.go(stepCount) suorittaa asianmukaiset siirtymät. Alla pieni esimerkki:

Eteenpäin>

Tallennetaan istunnon tilaa

Tämän erinomaisen toiminnon avulla voit tallentaa ja palauttaa istuntotietoja. Täytimme tilauksen, kävimme katsomassa tuotetta, palasimme (linkin avulla) uudelleen täyttämään tilauksen, mutta aiemmin syötetyt tiedot olivat edelleen olemassa. Aikaisemmin tällaisen sivuominaisuuden tarjoaminen oli mahdotonta ilman lisäponnisteluja verkkosovelluksen palvelinpuolella. Nyt on mahdollista tallentaa tietoja verkkoistunnon yhteydessä ( sessionStorage) tai paikallisesti selaimen RAM-muistissa ( paikallinen varasto). sessionStoragen oletetaan sallivan tietojen säilyttämisen niin kauan kuin istunto, jossa se alustettiin, on aktiivinen. Tallennettuun tietoon pääsee käsiksi useilta selaimen lataamilta verkkosivuilta. LocalStorage-vaihtoehdon pitäisi ilmeisesti tallentaa tietoja, kun selain on auki. Koska pääsyn localStorageen pitäisi olla aina saatavilla, vaikka yhteyttä palvelimeen ei olisi, mikä tahansa selaimen avaama sivu voi vastaanottaa tietoja localStoragesta. Istuntotila molemmissa tapauksissa on joukko avain-arvo-pareja, joita käytetään kutsujen xxxStorage.setItem(avain, arvo) ja xxxStorage.getItem(avain) avulla.

Esimerkki: Katso osio elementin sisällön muokkaamisesta uudella attribuutilla tyytyväisiä, joka esiteltiin HTML5:ssä, on. Alle on lisätty kaksi painiketta, joista toinen tallentaa muokatun lohkon sisällön ja toinen palauttaa sen. Napsauta [Tallenna], muokkaa lohkon sisältöä ja napsauta [Palauta]. Jos selaimesi tukee HTML5-toimintoa sessionStorage, sitten lohkon sisältö tyytyväisiä palautetaan.

Palauttaa

Tallenna Palauta

Vaihda viestejä sivujen välillä

Jos sivusi sisältää elementtejä jotka lataavat muiden sivujen sisältöä: ei vain sivustosi sivuja, vaan myös täysin eri verkkotunnuksen sivuja, niin HTML5-suositusten avulla on mahdollista vaihtaa viestejä tällaisten ikkunoiden kanssa. Viestin lähettävä sivu tekee tämän funktiokutsulla window.postMessage(message, target) ja viestin vastaanottavan sivun tulee sisältää "onmessage"-tapahtumakäsittelijä, jossa sen on jo käsiteltävä viestiteksti event.data, jos se todella on sen vastaanottaja - vastaa arvoa tapahtuma.alkuperä . Ennen tämän mekanismin tuloa ei ollut mahdollista kommunikoida erilaisten Internet-resurssien kanssa asiakaspuolella. Alla on esimerkki yksinkertaisimmasta viestinnän toteutuksesta kahden sivun välillä käyttämällä uutta HTML5-viestimekanismia. Ensi silmäyksellä saattaa tuntua, että esimerkissä ei tapahdu mitään erityistä. Tarkemmin sanottuna ei ole selvää, miksi kaikkea tätä tarvitaan. Itse asiassa viestityksestä voi tulla suosittua luotaessa tietoportaaleja, jotka yhdistävät erilaisia ​​Internet-palveluita yhteen paikkaan. Oletetaan esimerkiksi, että on olemassa tietty Internet-palvelu, jonka palveluita voi käyttää vasta kun on täytetty laaja sähköinen hakemus. Oletetaan myös, että on olemassa asiakas, joka käyttää melko usein tämän palvelun palveluita, mutta hänen pyyntönsä eroavat toisistaan ​​​​vain vähän joka kerta (useimmat parametrit ovat aina samat). Jos tällainen Internet-palvelu tukisi sähköisen hakemuksen täyttölomakkeen lisäksi myös "viestivastaanottajaa" palveluidensa automaattista tilausta varten, sen asiakkaat voisivat "raahaa" tämän palvelun ikkunan sivuilleen (elementtiä käyttämällä), luo niihin omia (itsellesi optimoituja) hakulomakkeita ja toimintoja niiden lähettämiseksi kohdepalveluun viestien muodossa. Suurin osa parametreista generoituisi tässä tapauksessa automaattisesti, esimerkiksi asiakastiedot. Tietysti samanlainen kommunikaatio voidaan toteuttaa asiakkaalta palvelimelle tulevien HTTP-pyyntöjen kautta, joiden otsikossa välitetään tarvittavat parametrit, mutta kannattaa huomioida, että HTML5-sanomamekanismin tapauksessa liikennettä välittäessä on nolla. parametreja, koska kaikki tapahtuu asiakkaan puolella.

Esimerkki kahdesta sivusta, joissa vaihdetaan viestejä

Esimerkki viestienvaihdon toteuttamisesta sivujen välillä HTML5:llä.

Viestin lähdesivun lähdekoodi

function init() ( document.getElementById("form").onsubmit = sendMessage; ) function sendMessage() ( var location = window.location; var message = document.getElementById("viesti").arvo; var target = asiakirja. getElementById("target"); target.contentWindow.postMessage(message, location.protocol+"//"+location.host); return false; ) ...

message_source.html:

messages_target.html lataus epäonnistui!

Viestin teksti


Viestin vastaanottajasivun lähdekoodi

function init() ( if (window.addEventListener) window.addEventListener("viesti", ReceiveMessage, false); else window.attachEvent("onmessage", ReceiveMessage); ) function ReceiveMessage(event) ( document.getElementById("target" ).innerHTML = event.data; document.getElementById("origin").innerHTML = "from " + event.origin; ) ...

messages_target.html:

Odotan viestiä...

Elementin sisällön muokkaaminen

Nyt määrittämällä contenteditable-attribuutin voit tehdä yksittäisistä merkintäelementeistä muokattavia, esimerkiksi tekstilohkoja, luetteloita jne. Designmode-attribuutin avulla voit tehdä koko sivun muokattavaksi. Tämä toiminto voi olla hyödyllinen palautteen järjestämisessä resurssin omistajan kanssa, esimerkiksi hakemuksen, tilauksen tai muun vastaavan täyttämiseen ja lähettämiseen. Luot lomakkeesta HTML-sivun alkuperäisessä muodossaan ja annat sen käyttäjän täytettäväksi. Täytön jälkeen käyttäjä vahvistaa syöttämät tiedot ja muokattu dokumentti lähetetään palvelimelle. Alla on esimerkki muokattavista merkinnöistä:

Tämän lohkon sisältöä voidaan muokata, koska sille on määritetty attribuutti tyytyväisiä:

Taulukon soluja muokatessa sarakkeiden leveys ja rivien korkeus muuttuvat automaattisesti.

Voit syöttää uuden luettelokohteen painamalla .

  • Luettelon kohta 1
  • Luettelon kohta 2
  • Luettelon kohta 3

Kun uusi kohde on lisätty luetteloon, numerointi päivittyy automaattisesti.

  • Numeroitu luettelon kohta 1
  • Numeroitu luettelon kohta 2
  • Numeroitu luettelokohta 3
  • Vektorigrafiikka

    Tukea odotetaan SVG- vektorigrafiikan merkintäkieli perustuu . Grafiikka lisätään merkintään, mikä on loogista, tunnisteen avulla , esimerkiksi näin:

    Jos näet alla olevat geometriset muodot, se tarkoittaa, että selaimesi tukee jo svg:tä.

    Matemaattiset lausekkeet

    Myös tukea odotetaan MathML- XML-pohjaisten matemaattisten lausekkeiden merkintäkieli. Tässä on esimerkki kaavan merkitsemisestä kolmion sivun pituuden laskemiseksi kosinilauseen avulla:

    a = b 2 + c 2 - 2 b c cos α

    Jos näet kaavan neliöjuuren symbolilla, selaimesi ymmärtää jo MathML:n.

    A = b 2 + c 2 - 2 b c cos α

    Muut merkintäelementit

    Ensinnäkin haluaisin korostaa joukkoa uusia sivun merkintäelementtejä, joita ei ollut nimenomaisesti aiemmin olemassa. Näihin kuuluu tunniste - artikkeli, muistiinpano, uutiset jne.; - artikkelin otsikko tai otsikko - alatunniste tai alatunniste - artikkelin osa tai luku. Miksi tätä tarvitaan, jos sama asia voidaan tehdä elementeillä eri luokat? Tämä on välttämätöntä, jotta merkintäsi merkitys on selvä myös niille, jotka yrittävät analysoida sitä. En puhu tekstiäsi lukevasta henkilöstä (hän ​​ei näe merkintää, kaikki on hänelle selvää ilman sitä), vaan automaattisista järjestelmistä ja ennen kaikkea tämä koskee hakukoneita. Semanttinen kuormitus on erittäin tärkeä hakukoneille, kun ne laskevat sivujesi osuvuuden tietylle hakukyselylle. Tässä yhteydessä elementti ansaitsee erityistä huomiota , koska se on suunniteltu korostamaan sivusi tärkeimpien navigointilinkkien lohko. Ehkä hakukoneet kohtelevat tällaisia ​​linkkejä eri tavalla. Alla on yhteenvetotaulukko uusista HTML5-tageista, jotka lisäävät merkinnöille merkitystä.

    Tag Lyhyt kuvaus
    Artikkeli, uutinen, huomautus, kommentti tai mikä tahansa muu yksittäinen julkaisu. Tag artikla yhdistää yhteen aiheeseen tai ongelmaan liittyvät tiedot. Yksi elementti artikla voi sisältää muita elementtejä artikla(esimerkki alla).
    Huomautus, poikkeama. Tag sivuun voidaan myös käyttää korostamaan tekstin osia, jotka eivät liity sivun pääsisältöön, esimerkiksi mainosten sijoittamiseen.
    Yksityiskohtaisten tietojen lohko, jota voidaan laajentaa pyynnöstä.
    Piirustuksen allekirjoitus. Tag kuvateksti käytetään tunnisteen sisällä kuva.
    Piirustus allekirjoituksella. Tämän elementin tulee sisältää kuva img ja allekirjoitus kuvateksti.
    Alatunniste. Tag alatunniste on järkevää sijoittaa se myös tunnisteen sisään artikla ilmoittaa artikkelin tai muistiinpanon tekijän.
    Sivun otsikko tai artikkelin johdanto. Kun se on asetettu tunnisteen sisään artikla merkitä otsikko Voit liittää mukaan julkaisun otsikon, lyhyen kuvauksen ja linkkejä aiheeseen liittyviin materiaaleihin.
    Otsikkeiden ryhmittely h1 - h6 monitasoiseen otsikkoon.
    Mark. Tag merkki Sitä on järkevää käyttää, jos haluat korostaa osaa tekstistä eri tyylillä ja viitata siihen toisesta asiakirjan paikasta.
    Navigointilinkkien esto.
    Sivuosio, artikkeliluku. Kun sijoitetaan artikkelin sisään (tag artikla) voidaan tulkita omaksi erilliseksi luvukseen.

    Alla on esimerkki HTML-merkinnöistä, joissa käytetään lueteltuja tageja.

    HTML5:stä ei ole vielä tullut suositus, ja sen "semanttisten tunnisteiden" käytöstä on kiistaa, kuten esim. Ja jo aika paljon. Kukaan ei vielä oikein tiedä, kuinka ne pitäisi lisätä merkintöihin oikein, mutta uusien HTML5-rakennetunnisteiden käyttöön on olemassa useita vinkkejä, joista on vaikea kiistellä, koska niiden merkitys on ilmeinen. Tässä muutama niistä:

  • Älä käytä tagia otsikko vain sijoittaaksesi siihen yhden otsikkotunnisteen h1 - h6 aivan kuten otsikkotunnisteiden sisään ei tarvitse laittaa mitään muuta kuin itse otsikoiden tekstiä. Sinun ei pitäisi tehdä tätä: Sivuston nimi

  • Älä käytä tagia h-ryhmä luodaksesi otsikkoryhmiä yhdestä elementistä. Jokainen yksittäinen elementti h1 ennen h6 ja siis itse otsikko. Tässä on esimerkki siitä, mitä ei saa tehdä: Sivuston nimi

  • Elementtejä ei tarvitse lisätä osio muiden elementtien sisällä, jos ne sisältävät näiden elementtien kaiken pääsisällön. Yllä olevassa esimerkissä jokaisessa kommentissa ei ole erillisiä lohkoja osio korostaa itse kommenttitekstiä. Tässä on esimerkki lisäelementistä osio :

    Kommentin teksti

    Julkaistu...

  • Elementin merkitystä ei tarvitse ymmärtää artikla kirjaimellisesti. Tämä ei ole vain artikkeli, vaan myös kaikenlainen täydellisen ajatuksen esittely. Tästä syystä myös aiemmin annetussa esimerkissä artikkelin kommentit on erotettu erillisiin lohkoihin artikla.

  • Käytä HTML5-rakennetunnisteita vain, jos uskot niiden auttavan hakukoneita oppimaan lisää merkintäsi semantiikasta. Jos tunnisteella ei ole erillistä merkitystä, vaan se lisätään vain "kauneuden" vuoksi, sen lisäämisen seurauksena sivusi "ylimääräinen paino", joka, kuten tiedetään, on "haitallista terveydelle". sivusto.
  • Siinä kaikki minulle hypertekstin merkintäkielen uusista ominaisuuksista, joiden pitäisi ilmestyä HTML5-suosituksen julkaisemisen yhteydessä.

    HTML5 on uusin versio pääsivunkuvauskielestä. HTML:ssä ei ole tapahtunut suuria muutoksia viimeisen 10 vuoden aikana, mikä on hieman outoa, kun otetaan huomioon, kuinka nopeasti verkkoteknologia on kehittynyt. Ja lopuksi, HTML5 on järjestetty uudelleen meille, ja tässä artikkelissa kerrotaan, mitä uutta olemme saaneet tähän versioon.

    HTML5:llä on vähemmän tiukat säännöt verrattuna aiempaan XHTML:ään, joten nyt voit:

    • Sinun ei tarvitse käyttää sulkevia tunnisteita.
    • Älä käytä lainausmerkkejä määritteiden arvoissa.
    • Käytä isoja merkkejä elementeissä ja määritteissä.

    Uudet tunnisteet.
    Ja niin uusia tunnisteita ilmestyi HTML5:een.

    On myös poissuljettuja tageja, jotka eivät ole enää merkityksellisiä ja joita ei suositella käytettäväksi.

    Joten jos tunnet aiemmat HTML-versiot, sinulla ei ole vaikeuksia ymmärtää HTML5:tä. Ja uudet tunnisteet ja attribuutit auttavat sinua luomaan uusia ja parantamaan olemassa olevia sivustoja, ja uusien ominaisuuksien ansiosta tämä on paljon helpompaa.

    Mutta herää kysymys: näytetäänkö HTML5 oikein vanhemmissa selainversioissa?
    Tietysti tulee, paitsi uusia tunnisteita. HTML5:llä tehdyt sivut näkyvät kaikissa selaimissa, mutta uusien versioiden käyttäjät voivat saada ja nähdä paljon enemmän.

    Rakenteelliset tunnisteet.

    Katsotaanpa, kuinka voimme luoda HTML-dokumenttirakenteen HTML5:llä. HTML4:ssä käytämme yleensä tunnisteita

    ja luoda koko sivun rakenne riippumatta siitä, minkä osan kanssa työskentelemme: ylä-, alatunniste, valikko tai muut yleiset osiot. Tämä ei ole kovin hyvä tapa jäsentää sivua, minkä vuoksi HTML5 lisäsi uusia tunnisteita asiakirjan jokaiseen osaan.

    Seuraavat rakennetunnisteet ovat nyt käytettävissämme:

    Sen tarkoituksena on määritellä osia tietyn tekstisisällön sisällä, esimerkiksi jakaa koko teksti pieniin osiin.

    Sen tarkoitus on määrittää HTML-dokumentin yläosa.

    Tätä tunnistetta käytetään määrittämään asiakirjan alaosa.

    Sen tarkoitus on määritellä luettelo linkeistä muille HTML-sivuille.

    Tätä tunnistetta käytetään dokumentin testisisällön määrittämiseen.

    Tässä on esimerkki HTML-koodista uusilla tunnisteilla.

    Otsikko Otsikko 1

    Vähän tekstiä... Otsikko 2

    Jotain tekstiä... Linkki 1 Linkki 2

    Tekijänoikeus 2011 Yritykseni

    Kuten näet, olemme sijoittaneet asiakirjamme otsikon tunnisteisiin. Lisäsimme sitten osion sivullemme tunnisteen avulla ja lisäsimme 2 tunnistetta, jotka merkitsevät tekstisisältömme kaksi pääosaa. Sen jälkeen määritimme luettelon linkeistämme -tunnisteen avulla. Lopuksi loimme sivumme alatunnisteen käyttämällä .

    Joten mitä erikoista tässä on? Voisimme tehdä saman käyttämällä vanhaa hyvää tagia. Epäilemättä uusien tunnisteiden käytön etuna on HTML-dokumenttien selkeä ja ymmärrettävä rakenne. Selkeä ei vain ihmisille, vaan myös hakukoneille.

    Uudet HTML5-estotunnisteet.

    Nykyisten lohkotunnisteiden lisäksi HTML5:ssä on kolme uutta tunnistetta:

    Tunnistetta käytetään tunnistamaan jokin tekstin osa tekstissä, kuten lainaus tai alaviite.

    Pääteksti... Lainaus...

    Selain ei korosta tagin sisällä olevaa tekstiä, vaan sen avulla luodaan hyvä rakenne HTML-dokumentille. Hakukonekehittäjät arvostavat tätä.
    Seuraavaa tunnistetta käytetään käyttäjien välisten dialogien luomiseen:

    Käyttäjä 1 Viesti käyttäjältä 1 Käyttäjä 2 Viesti käyttäjältä 2

    Lisäsimme tagiin kaksi muuta tagia: - sisältää käyttäjänimen ja näyttää käyttäjän viestin.

    Kolmatta tagia käytetään kuvaamaan kuvan otsikkoa.

    Kuvan otsikko = "Joku kuva" src="/image.jpg" width="200" height="200">

    Käytimme tagia kuvaamaan kuvan nimeä, tagia lisätäksesi tietyn kuvan ja linkittääksesi ne yhteen.
    Ota huomioon, kun käytät HTML5-rakenne- ja estotageja.
    Voimme aloittaa uusien tunnisteiden käytön heti, mutta sen jälkeen, kun olemme käyttäneet joitain temppuja vanhojen selaimien epäjohdonmukaisuuksien kiertämiseksi. Uusia lohkotunnisteita käsitellään sisäisinä elementteinä vanhemmissa selaimissa, joten meidän on määritettävä uusille lohkotunnisteille CSS:ssä display:block;-ominaisuus. jotta ne näkyvät oikein. Mitä tulee Internet Explorerin vanhempiin versioihin, sinun on myös lisättävä seuraavat:

    < script>document.createElement("otsikko"); document.createElement("alatunniste"); document.createElement("osio"); document.createElement("syrjään"); document.createElement("artikkeli"); document.createElement("nav");

    Tämä on lisättävä, koska IE ei ymmärrä tuntemattomiin tunnisteisiin liitettyä CSS:ää. HTML5 olettaa, että tunnisteella on oletusarvoisesti sellainen, joten meidän ei tarvitse lisätä sitä.

    Sisäänrakennetut tunnisteet.

    HTML4:ssä on useita tageja erilaisten tekstimuotoilujen toteuttamiseen, mutta esimerkiksi kellonajan ja päivämäärän näyttämiseen ei ole tunnisteita. Siksi nyt HTML5:ssä on seuraavat tunnisteet:

    Tunnistetta käytetään osoittamaan jotakin tekstin osaa tiettyyn tarkoitukseen, esimerkiksi näyttämään tärkeä osa tekstistä.

    Joku erittäin tärkeä osa tekstiä...

    Olemme lisänneet tietyn tärkeän osan .

    Tunnistetta käytetään ilmaisemaan kellonaika ja päivämäärä jossain tekstissä, esimerkiksi:

    Tunnistetta käytetään näyttämään joitain numeroita tietyssä muodossa, esimerkiksi:

    kuukausitulot 15 000 dollaria...

    Tunnisteella on 6 hyödyllistä attribuuttia:

    • arvo - asettaa jonkin todellisen arvon;
    • min - asettaa jonkin vähimmäisarvon;
    • alhainen - määrittää rajan, jossa arvoa pidetään alhaisena;
    • korkea - määrittää rajan, jossa arvoa pidetään alhaisena;
    • max - määrittää jonkin maksimiarvon;
    • optimi - määrittää jonkin optimaalisen arvon.

    Esimerkiksi:

    Sokeripitoisuus: 8.2.

    Viimeistä uutta tunnistetta käytetään näyttämään jonkin pisteen edistymisestä, esimerkiksi jonkin asian valmistumisprosentti:

    Valmistus: 20 %

    Tunnisteella on kaksi attribuutin arvoa - nykyinen edistymisarvo ja max - edistymisen enimmäisarvo.

    Multimediatunnisteet.

    HTML5:ssä on kaksi uutta tunnistetta mediatulostusta varten ja .

    Tässä on esimerkki tagin käytöstä:

    Nyt soi...

    Tällä tunnisteella on kolme attribuuttia:

    • src - polku äänitiedostoon;
    • automaattinen toisto - määrittää, alkaako tiedoston toisto heti sen jälkeen, kun sivu on latautunut selaimeen;
    • loop - määrittää kuinka monta kertaa ääni tulee toistaa.

    Tunnisteen avulla voit sijoittaa sen sisään muita tunnisteita, jotka sisältävät jotakin tietoa.
    Tunnistetta käytetään videotiedostojen näyttämiseen sivulla.

    Leikkaa...

    Attribuutti src määrittää polun videotiedostoon.
    Multimediatunnisteiden avulla voit näyttää ääni- ja videotiedostoja suoraan HTML-dokumentissa ja helpottaa niiden indeksointia hakukoneiden toimesta.

    Interaktiiviset tunnisteet.

    HTML5:ssä on useita interaktiivisia tageja, joiden avulla voit muuttaa sisältöä lataamatta koko HTML-sivua uudelleen:

    Tunniste on varsin mielenkiintoinen, koska se oli jo olemassa HTML:n aiemmissa versioissa ja on nyt palautettu. HTML5:n tagi toimii säilönä tagille, joka puolestaan ​​luo komennon valintanapin, valintaruudun tai tavallisen painikkeen muodossa.

    Näiden tunnisteiden avulla voimme luoda erilaisia ​​interaktiivisia valikoita.
    Tunnistetta käytetään lisätietojen, kuten ohjekentän, näyttämiseen.

    Joitakin sisältöohjeita...

    Tunnisteella hahmonnetaan automaattisesti erilaisia ​​2D-muotoja ja bittikarttoja. Se määrittelee tietyt HTML-dokumentin alueet, joissa voit tehdä erilaisia ​​objekteja, näyttää kuvia ja muuttaa niitä JavaScriptin avulla.

    < script>var esimerkki = document.getElementById ("näyte" ) ; var konteksti = esimerkki.getContext("2d"); ctx.fillStyle = "#FF0000" ; ctx.fillRect(0, 0, 80, 100);< canvas id= "sample" width= "300" height= "300" >Selaimesi ei tue HTML5:tä.

    ID-attribuuttia käytetään tunnisteen tunnistamiseen DOM-objektiksi (Document Object Model). Seuraavaksi määritetään leveys- ja korkeusmääritteet. Tunnisteiden välissä oleva teksti näytetään selaimissa, jotka eivät tue HTML5:tä. Se on tarkoitettu käytettäväksi yhdessä 2D-sovellusliittymien kanssa dynaamisen grafiikan, kuten Flashin, näyttämiseen.

    Voimme alkaa käyttää HTML5:n uusia ominaisuuksia jo tänään. Jotkut yksinkertaiset temput toimivat jopa vanhemmissa selaimissa. Jos aiot rakentaa uuden verkkosivuston, sinun kannattaa harkita HTML5:n käyttöä, jotta sivustollesi tulee älykkäämpi, älykkäämpi rakenne uusilla ominaisuuksilla.

    HTML5-standardia käytetään yhä enemmän nykyaikaisessa web-suunnittelussa. Ja vaikka se on vielä kehitteillä, monet sen standardeista on jo hyväksytty ja niitä käyttävät kaikki nykyaikaiset selaimet, myös mobiiliselaimet.

    Tässä artikkelissa tarkastellaan joitain HTML5:n uusia ominaisuuksia ja esimerkkejä niiden käytöstä käytännössä.

    Uusi DOCTYPE

    Muistetaan, kuinka tyypillinen XHTML-dokumentti määritellään DOCTYPE-osiossa:

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

    Asiakirjan tyypin ilmoittaminen sivunkuvauskielellä näyttää paljon tiiviimmältä ja luettavammalta

    ‹!DOCTYPE html›

    Lisäksi voit käyttää tätä DOCTYPE:tä mitä tahansa sivua asettaessasi. Jos selain ei tunne HTML5:tä, se näyttää sivun vakiotilassa.

    Parannettu koodin semantiikka

    Parannetun koodin semantiikan avulla hakukoneet voivat erottaa selkeästi sivun sisältötyypit, erottaa tärkeät tiedot ja parantaa sivun sijoitusta hakukyselyissä.

    Ylä- ja alatunnisteelementit

    Nyt voit päästä eroon rakenteista, kuten

    ‹div id="otsikko"› … ‹/div› ‹div id="alatunniste"› … ‹/div›

    Ja alkaa käyttää sellaisia, jotka ovat ymmärrettävämpiä sekä ihmisille että koneille

    ‹otsikko› … ‹/otsikko› ‹alatunniste› … ‹/alatunniste›

    ‹div› alkuperän mukaan ei ole mitään semanttista rakennetta, ja ne voidaan upottaa useita kertoja toisiinsa ja muihin säilöihin. Harkittavamman semanttisen rakenteen käyttö antaa hakukoneelle mahdollisuuden erottaa selvästi, missä otsikko-, alatunniste- ja päätieto-osa sijaitsee.

    FIGURE-elementti

    Harkitse seuraavaa koodinpätkää:

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

    Tässä tapauksessa hakukoneiden on vaikea määrittää, onko kuvan kuvauksen sisältävä ‹p›-tunniste itse asiassa sen kuvaus. Siksi on parempi yhdistää tällaiset rakenteet yhteiseen säiliöön, joka on ‹kuva ›:

    ‹figure› ‹img src="mars.jpg" alt="About Mars" /› ‹figcaption› ‹p›This is an image of Mars‹/p› ‹/figcaption› ‹/figure› !}

    Tässä tapauksessa on lisätunniste ‹figcapture›, joka määrittää missä kuvan sisältö on ja missä sen otsikko on

    Hgroupin käyttö

    Kuvittele, että verkkosivustosi otsikko koostuu pää- ja alaotsikosta. Tavallisten tunnisteiden ‹h1› ja ‹h2› käyttö ei millään tavalla kuvasta näiden kahden kohteen välistä suhdetta. Siksi ne voidaan yhdistää semanttisesti käyttämällä tunnistetta ‹hgroup›:

    ‹header› ‹hgroup› ‹h1›Kuvagalleria‹/h1› ‹h2›Vapaa paikkamme Prahassa‹/h2› ‹/hgroup› ‹/header›

    Ei tyyppejä komentosarjojen ja tyylisivujen yhdistämiseen

    Saatat edelleen käyttää rakenteita skriptien, kirjastojen, tyylisivujen jne. yhdistämiseen. seuraavassa muodossa:

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

    Joten nyt ei enää tarvitse määrittää sisällytettävän tiedoston tyyppiä. Selain tunnistaa sen automaattisesti. Tämä tarkoittaa, että type-attribuuttia ei enää tarvita:

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

    Koodirakenne

    XHTML-standardi edellyttää, että attribuuttiarvot on määritettävä kerta- tai lainausmerkeissä. HTML5-standardi sallii lainausmerkkien käytön jättämisen pois, jos ne eivät ole tarpeellisia, ts. attribuutin arvo määritellään yhdellä sanalla ilman välilyöntejä. Lisäksi sinun ei tarvitse edes sulkea parillisia elementtejä. Tässä on esimerkki:

    ‹p class=myClass id=pId›Sisältö

    Tämä voi kuitenkin haitata koodin luettavuutta kehittäjän puolelta. Siksi koodin kirjoitustyyli on täysin sinun päätettävissäsi, koska vanhaa (aikatestattua) tyyliä tuetaan edelleen.

    Muokattava sisältö

    HTML5:n avulla voit tehdä sivustosi sisällöstä täysin muokattavan ilman, että sinun tarvitsee lisätä piilotekstikenttiä. Sinun tarvitsee vain lisätä contenteditable="true" (tai ilman lainausmerkkejä, kuten opimme edellisessä kappaleessa) attribuutti elementtiin, josta haluat tehdä muokattavan. Tämän jälkeen käyttäjä voi muokata sen sisältöä suoraan sivulta.

    Tässä tapauksessa käyttäjä voi lisätä, poistaa ja muokata kohteita järjestämättömässä luettelossa ‹ul›. Alla on esimerkki luettelosta, jonka kohteita voidaan muuttaa

    • Katso TV: tä
    • Kuunnella musiikkia
    • Pelaa videopelejä
    Uudet lomakkeen ominaisuudet

    HTML5 antaa käyttäjille ja kehittäjille enemmän joustavuutta tietojen syöttämisessä lomakkeisiin. Näitä tarkoituksia varten on lisätty monia hyödyllisiä asioita. Katsotaanpa joitain niistä.

    Sähköpostin syöttökentät

    Käytä type="email"-attribuuttia ‹input›-tunnisteeseen, jolloin syöttökentillä on ainutlaatuisia lisäominaisuuksia annetun osoitteen oikeellisuuden tarkistamiseen, ja jos osoite on syötetty väärin, selain näyttää käyttäjälle varoitusviestin.

    ‹input id="email" name="email" type="email" /›

    Tulos saattaa näyttää tältä (Google Chrome):

    On myös muita syöttökenttiä, kuten verkkosivustojen osoitteita tai puhelinnumeroita. Niiden toimintaperiaate on samanlainen kuin sähköpostikentässä.

    Vinkkejä käyttämällä

    Nyt ei tarvitse käyttää javascriptiä paikkamerkkien luomiseen tekstikenttien syöttämiseen. HTML5 tarjoaa erityisen paikkamerkkiattribuutin, joka voi näyttää taustatekstivihjeen kenttään.

    ‹input name="email" type="email" placeholder=" [sähköposti suojattu]" /›

    Tulos näkyy alla:

    Tämä esimerkki toimii vain selaimissa, jotka tukevat HTML5:tä

    Sähköposti:

    Automaattinen tarkennus

    Ilman javascriptiä voit automaattisesti keskittää elementin sivun latautumisen jälkeen. Tätä varten sinun on lisättävä attribuutti ilman parametreja kenttään, joka on syötettävä ensin.

    ‹input name="name" type="text" autofocus /›

    Nimikenttä aktivoituu automaattisesti ja on valmis tekstin kirjoittamista varten.

    Pakolliset kentät

    Jos haluat merkitä jotkin kentät pakollisiksi, sinun tarvitsee vain määrittää attribuutti. Näin ollen selain tarkistaa lomaketta lähetettäessä, onko vaaditut kentät täytetty, ja jos ei, näyttää viestin.

    ‹input name="name" type="text" placeholder="John Smith" required /› !}

    Alla on esimerkki tämän koodin tuloksesta (Google Chrome):

    Alueen syöttö

    HTML5 esittelee täysin uuden ohjausalueen syötteen, joka on liukusäädin, jonka arvoa muutetaan vetämällä erityistä merkkiä esiasetusarvojen välillä.

    ‹input type="range" name="quantity" min="0" max="100" step=".25" value="10" /›

    Min- ja max-attribuutteja käytetään liukusäätimen ääriarvojen asettamiseen, askel on vaihe, jossa arvoa muutetaan. Google Chrome -selain näyttää tämän säätimen seuraavasti:

    Tämä esimerkki toimii vain selaimissa, jotka tukevat HTML5:tä

    Paikallinen varasto

    Paikallisen tallennustilan avulla voit tallentaa käyttäjän syöttämät tiedot, jos selainsivu suljetaan tai ladataan uudelleen. Tämä on erittäin kätevää varsinkin tapauksissa, joissa lomake on melko suuri ja sivusto suljettiin vahingossa.

    Paikallinen tallennustila itsessään ei ole osa HTML5-spesifikaatiota, mutta liittyy siihen läheisesti.

    Paikallista tallennustilaa hallitaan localStorage-luokkaobjektin kautta kahdella menetelmällä setData() ja getData() . Alla on esimerkki, joka käyttää yllä kuvattua muokattavaa luetteloa, joka tallentaa viimeksi syötetyt arvot.

    ‹h1›To-Do List‹/h1› ‹ul contenteditable=true› ‹li›Katso televisiota‹/li› ‹li›Kuuntele musiikkia‹/li› ‹li›Pelaa videopelejä›››/li

    JavaScript (käyttäen jQuery-kirjastoa, mutta tämä on valinnainen):

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

    Multimedian tuki

    Nyt ei tarvitse käyttää kolmannen osapuolen laajennuksia ja kirjastoja erilaisten ääni- ja videotiedostojen yhdistämiseen. Kaikki median upotusominaisuudet sisältyvät nyt HTML5-määritykseen.

    Audio

    Jos haluat upottaa äänitiedoston sivulle, sinun on käytettävä ‹ääni›-tunnistetta, jossa on tarvittavat attribuutit. Alla oleva esimerkki näyttää sivulla ohjauslohkon äänitiedostolle, joka sisältää linkin tämän tiedoston lataamiseen. Ääni toistetaan automaattisesti.

    ‹äänen automaattisen toiston säätimet›
    ‹source src="file.ogg" /›
    ‹source src="file.mp3" /›
    ‹a href="file.mp3"›Lataa tämä tiedosto.‹/a›

    Sivulla tämä lohko voi näyttää tältä (Google Chrome -selain)

    Tällä tunnisteella on omat tukiominaisuudet selaimissa. Esimerkiksi Mozilla Firefox -selain toimii .ogg-tiedostojen kanssa, kun taas Webkit-selaimet toimivat .mp3-tiedostojen kanssa

    Video

    Viime aikoihin asti ainoa tapa lisätä videosisältöä HTML-sivulle oli integroida Flash-sisältöä. Tämän ominaisuuden tarjoavat nyt kuitenkin itse selaimet, jotka täyttävät HTML5-vaatimukset. Tämä sai erityisen suosion, kun suurin videoiden isännöintisivusto YouTube.com vaihtoi HTML5-muotoon.

    Videon integroiminen sivulle edellyttää ‹video›-tunnistetta. Valitettavasti selainvalmistajien kesken ei ole yksimielisyyttä siitä, missä muodossa video tulee esittää, joten jokainen heistä mainostaa omaa muotoaan. Vaikka IE ja Safsri tukevat H.264-videota (jota Flash-soittimet tukivat), Opera ja Firefox mainostavat avoimen lähdekoodin Vorbis- ja Theora-muotoja. Chrome puolestaan ​​voi näyttää videoita oikein kaikissa muodoissa, mukaan lukien WebM.

    ‹videon esilatausohjaimet› ‹source src="video.ogv" type="video/ogg; codecs="vorbis, theora"" /› ‹source src="video.mp4" type="video/mp4; codecs=" avc1.42E01E, mp4a.40.2"" /› ‹p›Selain on vanha. ‹a href="video.mp4"›Lataa sen sijaan tämä video.‹/a› ‹/p› ‹/video›

    Kaikki selaimet eivät pysty näyttämään HTML5-videota, joten lähdekoodin alle voit määrittää linkin videon latausta varten tai integroida Flash-soittimen.

    Preload-attribuutin avulla selain voi automaattisesti aloittaa videon lataamisen, mikä voi olla hyödyllistä, jos video on tarpeeksi suuri. Controls-attribuutin avulla voit asettaa videovirran vakiosäätimet.