Введение 11
Для кого эта книга? 13
Чем не является эта книга 13
Что мы имеем в виду под HTML5 14
Кто? Что? Когда? Почему? Краткая история HTML5 14
Как HTML5 чуть не канул в безвестность 15
Принципы, скрывающиеся за HTML5 17
Глава 1. Основная структура 23
<head> 25
Использование новых структурных элементов HTML5 29
Оформление НТМЬБ-документа с помощью CSS 35
Создание CSS для Internet Explorer 36
Оформление HTMI-5-документов в старых версиях
Firefox и Camino 37
Другие проблемы устаревших браузеров 38
Когда используются новые структурные элементы HTML5 38
<header> 38
<nav> 41
<footer> 43
<artide> 46
Заключение 46
Глава 2. Текст 47
Создание структуры основных областей контента 49
Кое-что интересное об элементах <header> и <footer> 53
Добавление сообщений блога и комментариев 55
Работа со структурами HTML5 56
<nav>, <aside> и разделы без заголовка 59
<hgroup> 60
Структурированные корневые элементы 61
Создание стилей для заголовков в HTML5 61
Алгоритм определения структуры и доступность 62
В чем различие между <artide> и <section>? 63
Анализ
www.guardian.co.uk 69
Что такое WAI-ARIA 75
ARIA-структура документа и роли 76
Как совмещать ARIA и HTML 78
Ресурсы ARIA 78
Еще больше новых структур! 79
<aside> 79
<details> 79
<figure> 80
<mark> 82
<ruby>, <rp>, <rt> 82
Переопределенные элементы 84
<ol> 84
<dl> 84
<cite> 85
<address> 86
<em>, <i> 86
<strong>, <b> 87
<hr> 87
<small> 87
Удаленные элементы 88
Глобальные атрибуты 88
contenteditable 88
contextmenu 89
data-* 89
draggable 89
hidden 89
item, itemprop, subject 90
Атрибуты role, aria-* 90
spellcheck 90
tabindex (=-1) 90
Свойства, не рассматриваемые в этой книге 91
<embed> 92
<keygen> 92
<progress>, <meter> 92
<menu>, <command> 92
microdata 93
<style scoped> 93
Заключение 93
Глава 3. Формы 95
Мы любим HTML, и теперь он тоже нас любит 97
Новые типы ввода данных 98
Тип ввода данных email 98
Тип ввода данных URL 99
Тип ввода данных date 99
Тип ввода данных time 100
Тип ввода данных datetime 101
Тип ввода данных month 101
Тип ввода данных week 101
Тип ввода данных number 102
Тип ввода данных range 102
Тип ввода данных search 102
Тип ввода данных tel 102
Тип ввода данных color 103
Новые атрибуты 103
Атрибут list 103
Атрибут autofocus 104
Атрибут placeholder 104
Атрибут required 105
Атрибут multiple 105
Атрибут pattern 105
Атрибут autocomplete 107
Атрибуты min и max 107
Атрибут step 108
Как собрать все это вместе 108
Форма комментария блога 108
Ползунок со скриптом для вывода 109
Обратная совместимость с устаревшими браузерами 111
Оформление новых полей формы и сообщений
об ошибках 113
Переопределение умолчаний браузера 113
Использование JavaScript для DIY-валидации 115
Как инициировать валидацию 115
Валидность элементов 11 б
Как избежать валидации 11 б
Событие «всякий раз, когда что-то меняется» 118
Заключение 119
Глава 4. Видео и аудио 121
Родная мультимедиа: почему, что и как? 123
<video>: зачем нужен элемент <video>? 123
Для чего не подходит мультимедиа HTML5 125
Анатомия элемента видео 126
Автовоспроизведение (autoplay) 127
Элементы управления (controls) 127
Изображение (poster) 128
Высота, ширина (height, width) 128
Повтор (loop) 129
Предварительная загрузка (preload) 129
Источник (src) 130
Кодеки: ужас-ужас 130
Множественные элементы <source> 131
Видео для устаревших браузеров 132
Видеофайлы и карманные устройства 134
Пользовательские элементы управления 135
Воспроизведение, пауза —
и все это на одной кнопке 138
Богатые событиями элементы медиа 139
Отслеживаем ход загрузки 141
Когда медиафайл готов к воспроизведению 142
Перемотка вперед, замедленное и обратное
воспроизведение 143
Возможности управления мультимедиа 144
Заключение 147
Глава 5. Холст 149
Самое главное о холсте 153
Рисование с градиентами и узорами 154
Рисование путей 157
Использование трансформеров: замаскированные
пикселы 160
Захват изображений 162
Работа с отдельными пикселами 165
Анимированные изображения на холсте 170
Сохранение и восстановление условий рисования 173
Визуализация текста 174
Достижимость в пределах элемента холста 175
Заключение 176
Глава 6. Хранение данных 177
Варианты хранения 180
Веб-хранилище 181
Базы данных SQL для веб 190
Заключение 202
Глава 7. Автономная работа 203
Выдерните вилку из розетки: работаем автономно 205
Манифест кэша 206
Как правильно подавать манифест 210
Процессы между браузером и сервером 211
applicationCache 213
Определение наличия подключения с помощью
манифеста 215
Очистка кэша 216
Заключение 217
Глава 8. Перетаскивание 219
Начинаем перетаскивать 222
Совместимость перетаскиваемых данных 226
Перетаскивание данных в другие приложения 226
Как перетаскивать любой элемент 229
Добавление пользовательского значка
перетаскивания 229
Доступность 230
Заключение 233
Глава 9. Геолокация 235
Пришпильте посетителя к карте 237
Методы API 239
Ты попался: обработчик успешного исполнения 240
Адрес 404: обработчик ошибок 242
Настройка геолокации 243
Как это работает: сплошное волшебство 244
Заключение 245
Глава 10. Сообщения, фоновые вычисления и сокеты 247
Крошечный чатик с помощью API Messaging 250
Отправка сообщений между доменами 250
А можно ли отправлять что-нибудь еще кроме
строк? 252
Разбиение на потоки с помощью фоновых
вычислений 252
Зачем использовать фоновое вычисление? 253
Веб-сокеты: работа с потоковыми данными 265
Сокеты решают проблему задержек в
приложениях реального времени 265
API веб-сокетов прост 266
Больше, чем прослушивание сокета 268
Заключение 269
И напоследок... 269