
- •Кит Джереми html5 для веб-дизайнеров Предисловие
- •1. Краткая история разметки
- •От ietf до w3c: путь к html 4
- •Xhtml 1: html по правилам xml
- •Xhtml 2: терпению пришел конец
- •Раскол: whatwg tf?
- •Объединение
- •Xhtml умер: да здравствует синтаксис xhtml
- •Развитие html5
- •2. Устройство html5
- •Принципы устройства
- •Ближе к реальности
- •Обработка ошибок
- •Доктайп, скажите честно, я буду жить?
- •Будем проще
- •Синтаксис: размечайте, как хотите
- •Мы так не разговариваем
- •Было приятно познакомиться, чао
- •Перемен, мы ждем перемен!
- •Анонимная цитата
- •Элемент a на стероидах
- •Новые игрушки! api JavaScript
- •3. Мультимедиа
- •Танец вокруг архитектуры: как рисовать с помощью кода
- •Canvas. Ага! и для чего он нужен?
- •Доступ запрещен
- •Умный Canvas
- •Вырваться из-под контроля
- •Буферизация
- •Его вам сразу вклю́чат, а может быть, включáт
- •Запасной вариант
- •Доступ на все уровни
- •Нативный режим
- •Типы полей ввода
- •Контакты
- •Ползунки
- •Проверка
- •Счетчики
- •Дата и время
- •Выбор цвета
- •Сделай сам
- •В ожидании будущего
- •5. Семантика
- •Расширяемость
- •Микроформаты
- •Вскипятить океан
- •Новые элементы
- •Структура
- •Лекарство от избытка дивов?
- •Модели содержимого
- •Содержимое, разбивающее на секции
- •Алгоритм содержания
- •Корневые элементы разделов
- •Переносимость
- •Локальные стили
- •6. Использование html5 сейчас
- •Заголовки
- •Валидация
- •Тестирование функций
- •Выберите собственную стратегию
- •Ресурсы
- •Включайтесь!
- •Будущее
- •Об авторе
Лекарство от избытка дивов?
HTML5 дает нам массу новых структурных элементов, которые описаны выше. Они особенно полезны, если вы разрабатываете обыкновенный сайт, например блог. Большинство блогов разработаны так, что сначала идет шапка, затем набор статей, не имеющее прямого отношения содержимое в отдельном элементе и завершается все подвалом (рис. 5.02).
Рис. 5.02. Блог вашего покорного слуги
Теперь вы можете заменить какие-то из своих элементов div на структурные элементы с большей семантической точностью. Но не переходите границу. Есть шансы, что если вы используете div сегодня, будете использовать его же и завтра. Не заменяйте ваши элемент div на новые глянцевые элементы HTML5 просто ради того, чтобы их использовать. Подумайте о содержимом.
Новые элементы были созданы не просто для того, чтобы заменить элементы div. Они наделяют веб-браузеры совершенно новыми возможностями для понимания вашего содержимого.
Модели содержимого
Предыдущие спецификации разметки разделяли элементы на строчные и блочные. HTML5 использует более тонкий подход, разделяя элементы на более широкий спектр категорий.
Строчные элементы теперь имеют модель содержимого «семантики на уровне текста». Многие блочные элементы теперь подпадают под категорию «группирующего содержимого»: абзацы, списки, дивы и т. п. У форм есть своя собственная модель содержимого. Картинки, звук, видео и Canvas относятся к встроенному содержимому. У новых структурных элементов появляется совершенно новая модель содержимого, которая называется «содержимое-разделитель».
Содержимое, разбивающее на секции
Используя элементы заголовков, от h1 дo h6, можно создать содержание HTML-документа. Например, посмотрите вот на эту разметку:
<h1>An Event Apart</h1>
<h2>Города</h2>
<p>Присоединяйтесь к нам в 2010 году в этих городах.</p>
<h3>Сиэтл</h3>
<p>Идите в изумрудный город по дороге из желтого кирпича.</p>
<h3>Бостон</h3>
<p>Для друзей – Beantown.</p>
<h3>Миннеаполис</h3>
<p>Здесь так <em>мило</em>.</p>
<small>Размещение не предоставляется.</small>
Из этого получается следующее содержание:
• An Event Apart
• Города
• Сиэтл
• Бостон
• Миннеаполис
Это работает достаточно неплохо. Все содержимое, следующее за элементом заголовка, считается связанным с этим заголовком.
Теперь посмотрим на элемент small. Он должен быть связан со всем документом. Но браузер никак не может об этом узнать. Он ниоткуда не может узнать, что элемент small не должен относиться к заголовку «Миннеаполис».
Добавленное в HTML5 содержимое-разделитель позволяет вам явно размечать начало и конец взаимосвязанного содержимого:
<h1>An Event Apart</h1>
<section>
<header>
<h2>Города</h2>
</header>
<p>Присоединяйтесь к нам в 2010 году в этих городах.</p>
<h3>Сиэтл</h3>
<p>Идите в изумрудныйгород по дороге из желтого кирпича.</p>
<h3>Бостон</h3>
<p>Для друзей – Beantown.</p>
<h3>Миннеаполис</h3>
<p>Здесь так <em>мило</em>.</p>
</section>
<small>Размещение не предоставляется.</small>
Теперь ясно, что элемент small подпадает под заголовок “An Event Apart”, а не «Миннеаполис».
Я могу разделить это содержимое на еще более мелкие части: тогда каждый город окажется в своей собственной секции:
<h1>An Event Apart</h1>
<section>
<header>
<h2>Города</h2>
</header>
<p>Присоединяйтесь к нам в 2010 году в этих городах.</p>
<section>
<header>
<h3>Сиэтл</h3>
</header>
<p>Идите в изумрудныйгород по дороге из желтого кирпича.</p>
</section>
<section>
<header>
<h3>Бостон</h3>
</header>
<p>Для друзей – Beantown.</p>
</section>
<section>
<header>
<h3>Миннеаполис</h3>
</header>
<p>Здесь так <em>мило</em>.</p>
</section>
</section>
<small>Размещение не предоставлятся.</small>
Содержание при этом будет таким же:
• An Event Apart
• Города
• Сиэтл
• Бостон
• Миннеаполис