Laboratorium
Prace nad tym nowym standardem konsorcjum World Wide Web (W3C) rozpoczeło w 2007 roku, a pierwszy publiczny projekt specyfikacji ujrzał światło dzienne 22 stycznia 2008 roku. Od tej chwili prace nie posuwały się już tak szybko ponieważ specyfikacja ta nadal pozostaje w fazie prac koncepcyjnych. Co więcej, Ian Hickson, redaktor specyfikacji tego promowanego przez grupę WHATWG standardu, poinformował, że kompletna edycja tego języka zostanie wydana dopiero w 2022 roku. Informacja ta wywołał prawdziwą burzę wśród programistów aplikacji sieciowy, niektórzy wręcz otwarcie nawołują do zaprzestania przejmowania się standardami i walidacją kodu pod względem konkretnej specyfikacji.
Co więc naprawdę warto wiedzieć o HTML5 już teraz?
- Nowy typ Doctype
- Atrybut type załączanych arkuszy styli oraz skryptów w języku JavaScript
- Semantic web
- document.createElement("article");
- document.createElement("footer");
- document.createElement("header");
- document.createElement("hgroup");
- document.createElement("nav");
- document.createElement("menu");
- Formularze w HTML 5 czyli Web Forms 2.0
- Pole wymagane: required="required". Oznaczone w ten sposób pola formularza muszą zostać wypełnione przed jego wysłaniem.
- Liczba: <input type="number" />. Pole może być wypełnione tylko liczbami. Domyślnie posiada wartość 1 i jest ograniczone do liczb całkowitych, ale możliwe jest zastosowanie atrybutu step, dzięki któremu możemy zdefiniować ilość cyfr wprowadzonych po przecinku.
- Adres email lub url: <input type="email" /> <input type="url" />. Pole umożliwia wprowadzenie adresu email / adresu absolutnego strony internetowej.
- Data: <input type="date" /> pole przyjmuje datę w formacie RRRR-MM-DD.
- Czas: <input type="time" /> pole przyjmuje czas w formacie GG:MM:SS. Istnieje również możliwość wprowadzenia numeru tygodnia: <input type="week" /> lub miesiąca <input type="month" /> lub kombinacji daty i czasu <input type="datetime" /> (pole to przyjmuje wartości w formacie RRRR-MM-DDTGG:MM:SS.00Z. Litery T i Z są częścią zapisu).
- Ciekawą możliwością specyfikacji Web Forms 2.0 jest możliwość definiowania własnych wyrażeń regularnych:
<form action="" method="post">
<label for="username">Nazwa użytkownika: </label>
<input type="text"
name="username"
id="username"
placeholder="4 <> 10"
pattern="[A-Za-z]{4,10}"
autofocus
required>
<button type="submit">Wyślij </button>
</form>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Też masz problem z zapamiętaniem składni nagłówka doctype dokumentu HTML? W HTML5 nie będzie to już problemem:
<!DOCTYPE html>
A co z przeglądarkami nie interpretującymi poprawnie nowego typu doctype? Wyrenderują stronę w trybie standardowym.
<link rel="stylesheet" href="katalog/style.css" type="text/css" />
<script type="text/javascript" src="katalog/script.js"></script>
Nie ma już konieczności umieszczania tego atrybutu, teraz składnia może wyglądać następująco:
<link rel="stylesheet" href="katalog/stylesheet.css" />
<script src="katalog/script.js"></script>
HTML5 przynosi nam składnię symatyczną i możliwość posługiwania się takimi tagami jak: <header> <footer> <section> <article> i zaleca posługiwanie się tagiem <div> jak najrzadziej. Co jednak w przypadku starszych przeglądarek, które ich nie rozpoznają? Możemy posłużyć się małą sztuczką w CSS:
header, footer, article, section, nav, menu, hgroup { display: block; }
oraz JavaScripcie:
albo skorzystać z gotowego skryptu autorstwa Remiego Sharpa, który zajmie się tym automatycznie:
<!--[if IE]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
Przy okazji proponuję zapoznać się z bardzo ciekawą "tablicą okresową" elementów HTML znajdująca się pod tym adresem: http://joshduck.com/periodic-table.html
Web Forms 2.0 to jedna ze specyfikacji opracowanych przez WHATWG i włączona do specyfikacji HTML5. Umożliwia wstępną np. walidację formularzy po stronie klienta bez potrzeby uciekania się do wykorzystania w tym celu javascriptu.
Wg specyfikacji HTML/XHTML element <input> z nierozpoznanym przez przeglądarkę typem ma zachowywać się jak type="text". Nieznane atrybuty mają być ignorowane.
Dostępne atrybuty:




