HTML5 – rewolucja czy ewolucja? cz. 1 - lukasz
Transkrypt
HTML5 – rewolucja czy ewolucja? cz. 1 - lukasz
Plik pobrano z www.lukasz-socha.pl Tytuł: HTML5 – rewolucja czy ewolucja? cz. 1 Ostatnia aktualizacja: 3.09.2011 HTML5 – rewolucja czy ewolucja? cz. 1 Wstęp Od kilku lat trwają intensywne prace nad nową wersją HTML. Najnowsze przeglądarki już teraz pozwalają wykorzystywać niektóre możliwości HTML5. Mimo że nowy standard jest dopiero w fazie opracowywania sądzę, że warto zapoznać się z nowościami. Usprawnienia Nowa wersja HTML upraszcza użycie niektórych znaczników. Poniżej prezentuję kilka z nich. Na początku każdego dokumentu HTML4 wstawiamy DOCTYPE w stylu: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> Długie i trudne do zapamiętania, prawda? W dokumencie w wersji 5 wystarczy tylko: <!DOCTYPE HTML> Podobnie sprawa ma się z ustawieniem kodowania strony. W HTML4 piszemy: <meta http-equiv="Content-Type" content="text/html; charset=UTF8"> Natomiast od wersji 5 znacznik będzie wyglądać następująco: <meta charset="UTF-8"/> Obecnie gdy chcemy dołączyć plik CSS piszemy: <link rel="stylesheet" type="text/css" href="style.css"> W nowej wersji nie musimy już dodawać atrybutu type: <link rel="stylesheet" href="style.css" /> Podobne usprawnienie występuje przy dołączaniu plików JavaScript: <script type="text/javascript" src="file.js"></script> //HTML4 <script src="file.js"></script> //HTML5 Może są to tylko kosmetyczne zmiany, ale z pewnością ułatwią życie każdemu twórcy stron www. Warstwa semantyczna HTML w wersji 5 dostarcza grupę nowych znaczników, które pozwolą usystematyzować treść dokumentu. Jest to niewątpliwie duży krok w kierunku stworzenia semantycznej sieci. Umożliwi to lepsze indeksowanie stron przez roboty wyszukiwarek, a więc wyniki wyszukiwań staną się trafniejsze. Materiał przeznaczony tylko do własnego użytku. Publikacja na innych stronach wyłącznie za zgodą autora. [email protected] 1/6 Plik pobrano z www.lukasz-socha.pl Tytuł: HTML5 – rewolucja czy ewolucja? cz. 1 Ostatnia aktualizacja: 3.09.2011 Lista nowych znaczników: • <header> - kontener na informacje wprowadzające (np. tytuł, logo, wyszukiwarka, nawigacja) • <footer> - kontener na informacje o kontenerze nadrzędnym (np. autor, prawa autorskie) • <nav> - zawiera linki nawigacyjne (menu) • <section> - grupuje tematycznie powiązaną zawartość • <article> - zawiera główną treść przeznaczoną do syndykacji (np. przez kanał RSS). Treścią mogą być na przykład: artykuły, posty na blogu lub forum • <aside> - kontener na mniej znaczące treści (np. panel boczny – ang. sidebar). Przykładem mogą być reklamy, widgety • <dialog> - służy do wyróżnienia rozmowy: <dialog> <dt>Hej, co tam?</dt> <dd>Hej, a piszę artykuł na bloga. A u ciebie co tam?</dd> <dt>Aa czytam sobie</dt> <dd>A to super :)</dd> </dialog> • <figure> - służy do powiązania podpisu z obiektem: <figure> <img src="obrazek.jpg" alt="" /> <legend>podpis</legend> </figure> • <hsgroup> - kontener dla kilku nagłówków, np dla tytułu i podtytułu Znacznik <section> służy do ogólnego grupowania treści, <article> zawiera już ściśle określone elementy, które są główną zawartością strony. Natomiast <header>, <footer>, <aside>, <nav> są kontenerami dla specyficznych treści, takich jak: wprowadzenie, nawigacja, stopka. Warto mieć na uwadze to, że nowe znaczniki semantyczne nie formatują wyglądu – do tego służy CSS. Tak może wyglądać przykładowy wpis na blogu w HTML5: <!DOCTYPE HTML> <html> <head> <title>Przykład strony w HTML5</title> </head> <body> <header> <h1><a href="#">Jakiś tam blog :)</a></h1> <nav> <ul> <li><a href="#">Kategoria 1</a></li> Materiał przeznaczony tylko do własnego użytku. Publikacja na innych stronach wyłącznie za zgodą autora. [email protected] 2/6 Plik pobrano z www.lukasz-socha.pl Tytuł: HTML5 – rewolucja czy ewolucja? cz. 1 Ostatnia aktualizacja: 3.09.2011 <li><a href="#">Kategoria 2</a></li> </ul> </nav> </header> <section> <h1><a href="#">HTML5 - rewolucja czy ewolucja?</a></h1> <article> <p>HTML5 ułatwi życie twórcom stron, zgadzacie się? </p> <figure> <img src="ilustracja.jpg" alt="" /> <legend>Fajny obrazek</legend> </figure> </article> <dialog> <dt>zgadzam się!</dt> <dd>A ja nie</dd> </dialog> <nav><a href="">poprzedni wpis</a> <a href="">następny wpis</a></nav> </section> <footer> <p>Copyright all resrved.</p> </foter> </body> </html> Powyżej omówiłem znaczniki służące jako kontenery. HTML5 wprowadza również kilka innych znaczników, np: • <marks> - podświetlenie, np. wyszukiwanej frazy w tekście • <time> - oznaczenie czasu: <time datetime="2010-09-01">1 września 2010</time> • <meter> - wartość numeryczna: <meter min="0" max="100" value="55">55</meter> • <progress> - pasek postępu: <progress min="0" max="100" value="55%">55%</progress> HTML w wersji 5 wprowadza wiele nowych znaczników. W tym wpisie przedstawiłem tylko te, które wydają się najbardziej istotne. Pełna lista z opisem znajduje się na tej stronie. Web Forms 2.0 Liczne zmiany nastąpią w tworzeniu formularzy. Wiele rzeczy (np. walidacja danych), które były robione za pomocą JavaScriptu, teraz będzie można zrobić bezpośrednio w HTML. Ponadto HTML5 udostępnia wiele nowych typów pól. W końcu tworzenie formularzy stanie się łatwiejsze i przyjemniejsze – do tej pory były prawdziwym utrapieniem. Materiał przeznaczony tylko do własnego użytku. Publikacja na innych stronach wyłącznie za zgodą autora. [email protected] 3/6 Plik pobrano z www.lukasz-socha.pl Tytuł: HTML5 – rewolucja czy ewolucja? cz. 1 Ostatnia aktualizacja: 3.09.2011 Autofocus Gdy chcemy ustawić wskaźnik na konkretnym polu formularza nie musimy już używać JavaScriptu – wystarczy atrybut autofocus: <input name="field" type="text" autofocus="autofocus" /> Walidacja danych Jest to zupełna nowość w HTML. Do tej pory walidację pól formularzy musieliśmy wykonywać za pomocą PHP lub JS – teraz wystarczy sam HTML. Dodając atrybut required wymagamy wypełnienie danego pola (w przeciwnym wypadku nie będzie reakcji po kliknięciu na przycisk): <input name="field" type="text" required="required" /> Istnieje także nowy typ pola number, który wymaga wpisania liczby w określonym zakresie: <input name="number" type="number" min="0" max="99" required="required" /> Dodano również dwa typy pól do wpisywania adresów stron oraz adresów e-mail. W końcu nie trzeba będzie tworzyć do tego wyrażeń regularnych... <input name="url" type="url" /> <input name="email" type="email" /> Dodatkowo istnieje możliwość stworzenia własnego wyrażenia regularnego. W tym celu dodajemy atrybut pattern: <input name="phone" pattern="\(\d\d\d\)-\d\d-\d" title="Should match: (000)-00-0" type="text" /> Data i czas Web Forms 2.0 wprowadza także nowe typy pól dla daty i czasu. Nie trzeba będzie już pisać kalendarzy za pomocą JS. <input name="date" type="date" /> Powoduje wyświetlenie kalendarza do wybrania daty. Materiał przeznaczony tylko do własnego użytku. Publikacja na innych stronach wyłącznie za zgodą autora. [email protected] 4/6 Plik pobrano z www.lukasz-socha.pl Tytuł: HTML5 – rewolucja czy ewolucja? cz. 1 Ostatnia aktualizacja: 3.09.2011 <input name="datetime" type="datetime-local" /> Wyświetla kalendarz oraz pole do wpisania czasu w formacie hh:mm. <input name="datetime" type="datetime" /> Działa tak samo, tylko że strefą czasową jest UTC. <input name="time" type="time" /> Pole do wpisania czasu w formacie hh:mm. <input value="2010-W42" type="week" /> Służy do wybrania całego tygodnia. Suwak Suwaki są bardzo dobrze znane programistom piszącym w C++ czy JAVA. Niestety w świecie technologi www pojawią się dopiero wraz z HTML5: <form> <input type="range" name="range" /> Value: <output onformchange="this.value = form.range.value"></output> </form> Kalkulator Nowa wersja HTML umożliwia również wykonanie obliczeń matematycznych: <form> (a)<input name="a" step="any" value="0" type="number" /> * (b)<input name="b" step="any" value="0" type="number" /> <br>a+b = <output name="c" onformchange="value = a.value * b.value">0</output> (c) <br>c * 2 = <output name="d" onformchange="value = c.value * 2">0</output> (d) <br>d - a = <output name="result" onformchange="value = d.value – a.value">0</output> </form> Więcej przykładów na tej stronie. Materiał przeznaczony tylko do własnego użytku. Publikacja na innych stronach wyłącznie za zgodą autora. [email protected] 5/6 Plik pobrano z www.lukasz-socha.pl Tytuł: HTML5 – rewolucja czy ewolucja? cz. 1 Ostatnia aktualizacja: 3.09.2011 Listy rozwijane – datalist W nowej wersji listy rozwijane nie będziemy tworzyć za pomocą <select>, tylko używając nowego znacznika <datalist>: <input list="browsers" /> <datalist id="browsers"> <option value="Safari">Safari</option> <option value="Internet Explorer">Internet Explorer</option> <option value="Opera">Opera</option> <option value="Firefox">Firefox</option> </datalist> HTML5 wprowadza wręcz rewolucję w tworzeniu formularzy. Ułatwi to z pewnością pracę i pozwoli stworzyć bardziej interakcyjne strony www. A jak to wygląda w praktyce można zobaczyć tu. Zakończenie HTML5 wprowadza wiele nowości. W tej części zaprezentowałem elementy dotyczące semantycznej warstwy oraz tworzenia formularzy. W Kolejnej omówię aspekty multimedialne. Materiał przeznaczony tylko do własnego użytku. Publikacja na innych stronach wyłącznie za zgodą autora. [email protected] 6/6