Co to jest HTML5?
Transkrypt
Co to jest HTML5?
Co to jest HTML5? HTML5 będzie nowym standardem dla HTML. Poprzednia wersja HTML, HTML 4.01, pochodzi z 1999. Sieć od tego czasu zmieniła się znacznie. HTML5 jest ciągle w stadium tworzenia i konkretyzacji. Jednakże główne przeglądarki zapewniają rozpoznanie wielu z nowych elementów znajdujących się w specyfikacji HTML5 i APIs. Jak rozpocząć pracę z HTML5 ? HTML5 jest efektem kooperacji pomiędzy World Wide Web Consortium (W3C) i Web Hypertext Application Technology Working Group (WHATWG). WHATWG pracował nad formularzami I aplikacjami, podczas gdy W3C pracował nad XHTML 2.0. W roku 2006, obie te organizacje zdecydowały sie współpracować, czego efektem jest nowa wersja f HTML. Na początku ustalono pewne reguły, według których opracowano nową wersje, czyli HTML5: • • • • • • Nowe właściwości powinny bazować na HTML, CSS, DOM, i JavaScript Zredukowanie potrzeby stosowania zewnętrznych wtyczek (jak np.Flash) Lepsza obsługa błędów Więcej znaczników w celu zastąpienia potrzeby pisania skryptów HTML5 powinien być niezależny od sprzętu Proces opracowywania tego języka powinien być ”transparentny” dla społeczności informatycznej. Deklaracja typu HTML5 <!DOCTYPE> W HTML5 istnieje tylko jedna deklaracja typu <!doctype> I jest ona bardzo prosta: <!DOCTYPE html> Minimalny HTML5 Dokument Poniżej pokazano prosty dokument HTML5, z minimalną ilością wymaganych znaczników: <!DOCTYPE html> <html> <head> <title>Tytuł dokumentu</title> 1 </head> <body> Zawartość dokumentu...... </body> </html> HTML5 – Nowe możliwości A oto niektóre z bardziej interesujących nowych właściwości w HTML5: • • • • • Element <canvas> dla rysowania na 2D Elementy <video> and <audio> dla odtwarzania plików audio i video Obsługa pamięci lokalnych Nowe element charakteryzujące zawartość dokumentów jak: <article>, <footer>, <header>, <nav>, <section> Nowe kontrolki formularzy takie jak: calendar, date, time, email, url, search Obsługa HTML5 przez przeglądarki internetowe HTML5 nie jest jeszcze oficjalnym standardem i żadna z przeglądarek nie obsługuje w pełni HTML5. Ale wszystkie główne przeglądarki internetowe (Safari, Chrome, Firefox, Opera, Internet Explorer) dodają nowe właściwości HTML5 do swoich najnowszych wersji. Nowe elementy w HTML5 Internet bardzo sie zmienił od kiedy HTML 4.01 stało sie standardem w 1999. Dzisiaj pewne elementy w HTML 4.01 są stare, nigdy nie były używane lub używane w sposób różny niż ten do czego zostały stworzone. Te elementy zostały usunięte bądź przepisane w HTML5. Dla lepszego wykorzystania Internetu w dzisiejszej dobie, HTML5 zawiera nowe element poprawiające strukturę dokumentu, lepiej obsługujące formularze, grafikę i lepiej obsługujące pliki audio i video. 2 Nowe elementy semantyki/Elementy strukturalne HTML5 oferuje nowe elementy dla lepszego odwzorowania struktury dokumentów: Znacznik <article> <aside> <bdi> <command> <details> <summary> <figure> <figcaption> <footer> <header> <hgroup> <mark> <meter> <nav> <progress> <ruby> <rt> <rp> <section> <time> <wbr> Opis Definiuje artykuł Definiuje (oddziela) zawartość aside od zawartości strony Izoluje część tekstu, która może być sformatowana w innym kierunku niż tekst poza nim Definiuje przycisk komendy (polecenia), który użytkownik może wywołać Definiuje dodatkowe szczegóły, które użytkownik może chcieć pokazać lub ukryć Definiuje widoczny nagłówek (tytuł) dla elementu <details> Specyfikuje pewne wydzielone obiekty takie jak ilustracje, diagram, fotografie, kod program itp. Definiuje podpis pod elementem <figure> Definiuje stopkę dokumentu lub sekcji dokumentu Definiuje nagłówek dokumentu lub jego sekcji Grupuje zbiór elementów od <h1> do <h6> kiedy nagłówki są wielopoziomowe Definiuje zaznaczony i/lub wyróżniony tekst Definiuje skalarną miarę wewnątrz znanego zakresu Definiuje linki nawigacyjne Przedstawia postęp zadania Definiuje ruby annotation (dla East Asian typography) Definiuje objaśnienie/wymowę znaków (dla East Asian typography) Definiuje co pokazać w przeglądarce, która nie obsługuje ruby annotations Definiuje sekcję w dokumencie Definiuje a date/time Definiuje możliwą linię podziału Nowy element <canvas> Znacznik <canvas> Opis Używany do kreślenia grafik poprzez pisanie skryptów (przeważnie JavaScript) Nowe elementy formularzy Dla polepszenia funkcjonalności, HTML5 oferuje następujące nowe elementy: 3 Znacznik <datalist> <keygen> <output> Opis Określa (specyfikuje) listę predefiniowanych opcji dla wejściowych kontrolek Definiuje pole generujące klucz (dla formularzy) Definiuje wynik obliczeń Elementy usunięte Następujące elementy (znaczniki) HTML 4.01 zostały usunięte z HTML5: • • • • • • • • • • • • <acronym> <applet> <basefont> <big> <center> <dir> <font> <frame> <frameset> <noframes> <strike> <tt> Video w Sieci Jak dotąd nie ma powszechnie akceptowanego standardu dla przedstawienia (pokazania) filmu lub video na stronach webowych. Dzisiaj, większość filmów i filmików video pokazywanych jest na stronach internetowych poprzez instalacje odpowiednich wtyczek (np. flash). Jednakże, różne przeglądarki mogą wymagać różnych wtyczek. HTML5 określa nowy element, który specyfikuje standardowy sposób umieszczania na stronach webowych plików filmowych: jest to element <video>. Browser Support Internet Explorer 9, Firefox, Opera, Chrome i Safari obsługują elementy <video>. 4 Uwaga: Internet Explorer 8 I wersje wcześniejsze nie obsługują elementów <video>. HTML5 Video – Jak to działa? Aby pokazać plik video w HTML5, wszystko co potrzebujesz jest pokazane na poniższym przykładzie: Przykład <video width="320" height="240" controls="controls"> <source src="movie.mp4" type="video/mp4" /> <source src="movie.ogg" type="video/ogg" /> Twoja przeglądarka nie obsługuje znaczników video. </video> Try it yourself » Atrybuty control dodają takie możliwości jak, play, pause, i volume. Jest dobrym zwyczajem zawsze włączać atrybuty width i height. Jeżeli wysokość I szerokość kontrolki/ek są ustalone, przestrzeń wymagana dla pliku video jest rezerwowana z chwilą ładowania strony. Natomiast gdy te atrybuty nie występują, przeglądarka nie ma informacji o rozmiarach pliku video na stronie i nie może zarezerwować odpowiedniej przestrzeni. Efekt bedzie taki, że układ strony może się zmieniać podczas ładowania strony (wtedy gdy ładowany jest plik video). Miedzy znaczniki <video> i </video> można wprowadzić odpowiedni tekst, informujący że przeglądarka nie obsługuje elementu <video>. Znacznik <video> pozwala rozpoznać wiele elementów źródłowych <source>. Znaczniki <source> mogą być powiązane (zlinkowane) do różnych plików video. Przeglądarka użyje pierwszy rozpoznany format. Formaty Video i obsługujące je przeglądarki Aktualnie mamy trzy formaty plików video obsługiwane przez popularne przeglądarki, korzystając ze znacznika <video> : MP4, WebM, i Ogg: Przeglądarka Internet Explorer 9 Firefox 4.0 Google Chrome 6 Apple Safari 5 Opera 10.6 • • MP4 TAK NIE TAK TAK NIE WebM NIE TAK TAK NIE TAK Ogg NIE TAK TAK S NIE TAK MP4 = MPEG 4 pliki z H264 codekiem video i AAC codekiem audio WebM = WebM pliki z VP8 codekiem video i Vorbis codekiem audio 5 • Ogg = Ogg pliki z Theora codekiem video i Vorbis codekiem audio Znaczniki Video HTML5 Znacznik <video> <source> <track> Opis Definiuje video lub film Definiuje źródła plików medialnych dla elementów <video> i <audio> Definiuje ścieżki tekstowe w odtwarzaczach medialnych HTML5 <video> - sterowanie z użyciem DOM (Document Object Model) Element HTML5 <video> element posiada również metody, własności i zdarzenia. Istnieją metody dla uruchamiania (play), zatrzymywania i ładowania plików video. Istnieją także własności określające takie aspekty plików video (np. czas trwania, wolumin, szukanie), które można czytać lub. Istnieją również zdarzenia typu DOM, które mogą przypominać lub ustalać kiedy element <video> rozpoczyna się, jest zatrzymywany lub jest kończony. Poniższy przykład pokazuje w prosty sposób jak adresować element <video> , czytać i ustalać właściwości, i wywoływać metody. Przykład 1 Utwórz proste kontrolki (sterowania) dla play/pause + zmiana rozmiaru (resize) dla video: <!DOCTYPE html> <html> <body> <div style="text-align:center"> <button onclick="playPause()">Play/Pause</button> <button onclick="makeBig()">Big</button> <button onclick="makeSmall()">Small</button> <button onclick="makeNormal()">Normal</button> <br /> <video id="video1" width="420"> <source src="mov_bbb.mp4" type="video/mp4" /> <source src="mov_bbb.ogg" type="video/ogg" /> Your browser does not support HTML5 video. </video> </div> <script> 6 var myVideo=document.getElementById("video1"); function playPause() { if (myVideo.paused) myVideo.play(); else myVideo.pause(); } function makeBig() { myVideo.width=560; } function makeSmall() { myVideo.width=320; } function makeNormal() { myVideo.width=420; } </script> <p>Video courtesy of <a href="http://www.bigbuckbunny.org/" target="_blank">Big Buck Bunny</a>.</p> </body> </html> 7 Powyższy przykład wywołuje dwie metody: play() and pause(). Używa on również dwóch właściwości: paused and width. HTML5 <video> - Metody, właściwości, zdarzenia Poniższa tabela wymienia metody, właściwości i zdarzenia dla plików video, które są ogsługiwane przez większość przeglądarek: Metoda play() pause() load() canPlayType Właściwośćs currentSrc currentTime videoWidth videoHeight duration ended error paused muted seeking volume height width Zdarzenies play pause progress error timeupdate ended abort empty emptied waiting loadedmetadata Uwaga: Spośród wymienionych właściwości, tylko videoWidth i videoHeight są dostępne bezpośrednio. Inne będą dostępne po załadowaniu meta danych dla plików typu video. Audio w Sieci Jak dotąd nie ma powszechnie akceptowalnego standard dla odgrywania plików audio na stronach internetowych. Obecnie większość plików audio jest odgrywana poprzez wtyczki (np. flash). Różne przeglądarki mogą wymagać różnych wtyczek, co stwarza poważny problem. HTML5 definiuje nowy element (znacznik), który określa standardowy sposób na umieszczenie plików audio na stronach internetowych: element <audio>. Przeglądarki obsługujące znaczniki <audio> Internet Explorer 9, Firefox, Opera, Chrome, i Safari obsługują element <audio>. 8 Uwaga: Internet Explorer 8 i wersje wcześniejsze nie obsługują elementu <audio> . HTML5 Audio – Jak to działa? Aby odgrywać pliki audio w HTML5, potrzeba jedynie: Przykład 2 <audio controls="controls"> <source src="horse.ogg" type="audio/ogg" /> <source src="horse.mp3" type="audio/mpeg" /> Twoja przeglądarka nie obsługuje znaczników <audio>. </audio> Try it yourself » Atrybuty takie jak play, pause i volume są dodawane poprzez atrybuty. Można również umieścić stosowny tekst między znaczniki <audio> i </audio> aby poinformować, że dana przeglądarka nie obsługuje elementu <audio> . Znacznik <audio> pozwala rozpoznać wiele elementów źródłowych <source>. Znaczniki <source> mogą być powiązane (zlinkowane) do różnych plików audio. Przeglądarka użyje pierwszy rozpoznany format. . Formaty Audio obsługiwane przez przeglądarki Aktualnie istnieją trzy formaty plików audio, które są obsługiwane przez przeglądarki korzystając ze znacznika <audio>: MP3, Wav, i Ogg: Przeglądarka Internet Explorer 9 Firefox 4.0 Google Chrome 6 Apple Safari 5 Opera 10.6 MP3 TAK NIE TAK TAK NIE Wav NIE TAK TAK TAK TAK 9 Ogg NIE TAK TAK NIE TAK HTML5 Znaczniki Audio Znacznik <audio> <source> Opis Definiuje zawartość pliku typu audio Definiuje źródła pochodzenia plików audio i video dla elementów <video> i <audio> HTML5 Canvas (tło - kanwa) HTML5 <canvas> Znacznik Znacznik <canvas> Opis Element <canvas> jest używany w celu kreślenia grafik (na bieżąco – on the fly) na stronach internetowych poprzez pisanie skryptów (przeważnie JavaScript) Element <canvas> jest używany w celu kreślenia grafik (na bieżąco – on the fly) na stronach internetowych. Zadania: narysuj czerwony prostokąt, cieniowany prostokąt, wielokolorowy prostokąt I inne wielokolorowe teksty na kanwach (canvas): Co to jest Canvas? Element <canvas> w HTML5 jest używany do wykreślania (na bieżąco) grafik poprzez wykorzystanie skryptów (przeważnie JavaScript). 10 Element <canvas> jest tylko pojemnikiem dla grafik. Aby wykreślić grafikę należy napisać stosowny skrypt. Kanwy maja szereg metod dla wykreślania linii, wielokątów, okręgów, znaków i dla dodawania obrazków. Przeglądarki obsługujące elementy <canvas> Internet Explorer 9, Firefox, Opera, Chrome, i Safari obsługują elementy <canvas> . Uwaga: Internet Explorer 8 I wersje wcześniejsze nie obsługują elementów <canvas> . Tworzenie kanw (canvas) Kanwa w HTML5 jest prostokątnym polem na stronie internetowej i jest ona definiowana przez element <canvas>. Uwaga: Domyślnie element <canvas> nie ma granic ani zawartości. Znacznik ten może wyglądać jak niżej: <canvas id="myCanvas" width="200" height="100"></canvas> Uwaga: Zawsze należy określić atrybut id kanwy (identyfikujący i dostępowany w skrypcie), jak również atrybuty width i height definiujące rozmiary kanw. Uwaga: Na stronie HTML może być wiele elementów <canvas>. Aby dodać obramowania (border) należy użyć atrybutu stylu: Przykład 3 <canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"></canvas> Try it yourself » Kreślenie w kanwie z użyciem JavaScript Cała działalność ”kreślarska” na/w kanwach musi być wykonana przy użyciu skryptów (JavaScript): Przykład 4 11 <script type="text/javascript"> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.fillStyle="#FF0000"; ctx.fillRect(0,0,150,75); </script> Try it yourself » Objaśnienia do przykładu: Najpierw należy znaleźć element <canvas>: var c=document.getElementById("myCanvas"); Następnie należy wywołać metodę getContext() (jako argument tej metody należy wpisać łańcuch "2d"): var ctx=c.getContext("2d"); W ten sposób w HTML5 tworzony jest obiekt (przy pomocy metody getContext("2d")), obiekt z wieloma właściwościami metodami umożliwiającymi wykreślanie linii, wieloboków, okręgów, tekstu, obrazów i wielu innych. Następne dwie linie kodu kreślą czerwono wypełniony prostokąt : ctx.fillStyle="#FF0000"; ctx.fillRect(0,0,150,75); Własność fillStyle może być kolorem z CSS, kolorem gradientowym, lub jakimś wzorem. Domyślnym wypełnieniem fillStyle jest #000000 (czarny). Metoda fillRect(x,y,width,height) wykreśla prostokąt z uprzednio określonym wypełnieniem. Współrzędne kanw (Canvas) Kanwa (canvas) jest dwuwymiarową siatką. Górny lewy róg kanwy ma współrzędne (0,0) Dlatego też metoda fillRect() ma parametry (0,0,150,75). To znaczy, że rozpoczyna ona kreślenie od lewego górnego rogu (0,0) i kreśli prostokąt o wymiarach 150x75 pikseli. Canvas - Linie Do wykreślenia na kanwie linii prostej używa się dwóch metod: 12 • • moveTo(x,y) definiuje punk startowy linii lineTo(x,y) definiuje punkt końcowy linii Aby wykreślić cokolwiek (tutaj linię prostą) musimy użyć metod “ink” – tusz , atrament jak np. stroke(). Przykład 5 Określ punkty początkowy (0,0) i końcowy (200,100), a następnie użyj metody stroke() w celu wykreślenia linii prostej: <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag.</canvas> <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.moveTo(0,0); ctx.lineTo(200,100); ctx.stroke(); </script> </body> </html> JavaScript: var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.moveTo(0,0); ctx.lineTo(200,100); ctx.stroke(); Try it yourself » Aby wykreślić okrąg na kanwie, należy użyć poniższej metody: • arc(x,y,r,start,stop) oraz użyć jednej z metod “ink” jak stroke() lub fill(). 13 Przykład 6 Utwórz okrąg używając metody(): <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag.</canvas> <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.beginPath(); ctx.arc(95,50,40,0,2*Math.PI); ctx.stroke(); </script> </body> </html> JavaScript: var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.beginPath(); ctx.arc(95,50,40,0,2*Math.PI); ctx.stroke(); Try it yourself » Canvas - Tekst Najważniejszymi własnościami i metodami używanymi do wykreślania teksu na kanwach są: • • • font – definiuje własności czcionki dla tekstu fillText(text,x,y) - kreśli „pełny” tekst na kanwie strokeText(text,x,y) – kreśli tekst na kanwie/ach. 14 Użycie metody fillText(): Przykład 7 Napisz tekst o wysokości 30px high, (pełny), używając czcionki "Arial": <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag.</canvas> <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.font="30px Arial"; ctx.strokeText("Hello World",10,50); </script> </body> </html> JavaScript: var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.font="30px Arial"; ctx.fillText("Hello World",10,50); Try it yourself » Używając metody strokeText(): Przykład 8 Napisz tekst o wysokości 30px (nie wypełniony) na kanwie, używając czcionki "Arial": 15 <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag.</canvas> <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.font="30px Arial"; ctx.strokeText("Hello World",10,50); </script> </body> </html> JavaScript: var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.font="30px Arial"; ctx.strokeText("Hello World",10,50); Try it yourself » Canvas – Płynne przejście koloru Płynnego przejścia kolorów można użyć aby wypełnić prostokąty, okręgi, linie i teksty. Istnieją dwa typy płynnych przejść (gradients): • • createLinearGradient(x,y,x1,y1) – tworzy liniowe przejście createRadialGradient(x,y,r,x1,y1,r1) – tworzy promieniste przejścia. Mając obiekt, dla którego tworzymy przejście koloru, musimy dodać dwa lub więcej punktów przejścia (color stops). Metoda addColorStop() określa przejścia kolorów I ich pozycje wzdłuż przejścia. Pozycje przejścia mogą być w dowolnym punkcie między 0 do 1. 16 Aby użyć płynnego przejścia, należy wstawić właściwość fillStyle lub strokeStyle do gradientu i następnie wykreślić odpowiedni kształt, linię, prostokąt, czy też okrąg. Użycie metody createLinearGradient(): Example Utwórz liniowe przejście dla prostokąta: <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag.</canvas> <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); // Create gradient var grd=ctx.createLinearGradient(0,0,200,0); grd.addColorStop(0,"red"); grd.addColorStop(1,"white"); // Fill with gradient ctx.fillStyle=grd; ctx.fillRect(10,10,150,80); </script> </body> </html> JavaScript: var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); // Create gradient var grd=ctx.createLinearGradient(0,0,200,0); 17 grd.addColorStop(0,"red"); grd.addColorStop(1,"white"); // Fill with gradient ctx.fillStyle=grd; ctx.fillRect(10,10,150,80); Try it yourself » Użycie createRadialGradient(): Przykład 9 Utwórz promieniste przejście. Wypełnij prostokąt tym gradientem: <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag.</canvas> <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); // Create gradient var grd=ctx.createRadialGradient(75,50,5,90,60,100); grd.addColorStop(0,"red"); grd.addColorStop(1,"white"); // Fill with gradient ctx.fillStyle=grd; ctx.fillRect(10,10,150,80); </script> </body> </html> JavaScript: 18 var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); // Create gradient var grd=ctx.createRadialGradient(75,50,5,90,60,100); grd.addColorStop(0,"red"); grd.addColorStop(1,"white"); // Fill with gradient ctx.fillStyle=grd; ctx.fillRect(10,10,150,80); Try it yourself » Using createRadialGradient(): Canvas - Obrazy Aby wprowadzić obraz na kanwie należy użyć następującej metody: • drawImage(image,x,y) Obraz do wstawienia: Przykład 10 Wstaw obraz na kanwę: <!DOCTYPE html> <html> <body> <p>Image to use:</p> 19 <img id="scream" src="the_scream.jpg" alt="The Scream" width="220" height="277" /> <p>Canvas:</p> <canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag.</canvas> <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var img=document.getElementById("scream"); ctx.drawImage(img,10,10); </script> </body> </html> JavaScript: var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var img=document.getElementById("scream"); ctx.drawImage(img,10,10); Try it yourself » 20