KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Интернет » Кит Джереми - HTML5 для веб-дизайнеров

Кит Джереми - HTML5 для веб-дизайнеров

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Кит Джереми, "HTML5 для веб-дизайнеров" бесплатно, без регистрации.
Перейти на страницу:

Это отлично согласовывается с той ментальной моделью, которая есть у веб-разработчиков для слова «подвал». Разница в том, что, хотя мы привыкли использовать один подвал на весь документ, HTML5 позволяет нам делать подвалы и внутри секций.

<section>

<header>

<h1>Скрипты для DOM</h1>

</header>

Эта книга скорее предназначена для дизайнеров, чем для программистов.

<footer>

автор: Джереми Кит

</footer>

</section>

aside

Так же как элемент header соответствует концепту шапки документа, элемент aside соответствует концепту боковой колонки. Когда я говорю «боковая колонка», я говорю не о положении. Одного того, что какое-то содержимое появляется слева или справа от главного содержимого, недостаточно для того, чтобы использовать элемент aside. Опять же имеет значение содержимое, а не положение.

Элемент aside должен использоваться для не связанного напрямую содержимого. Если у вас есть блок содержимого, который вы считаете отдельным от основного содержимого, тогда, возможно, его следует заключить в элемент aside. Задайте себе вопрос: можно ли удалить содержимое элемента aside так, что при этом главное содержимое документа или секции не потеряет смысл?

Хороший пример не связанного напрямую содержимого – врезки; они хорошо смотрятся, но вы можете убрать их, и это никак не повредит пониманию основного содержимого.

Помните, если ваш дизайн ставит какое-либо содержимое в боковую колонку, это еще не означает, что это содержимое должно находиться именно в aside. Например, довольно часто в боковую колонку ставится биография автора. Этот тип данных лучше подходит для того, чтобы быть внутри элемента footer, – спецификация явным образом утверждает, что информация об авторстве подходит для подвалов (рис. 5.01).


Рис. 5.01. Текст «об авторе» в этом скриншоте должен быть размечен с помощью footer, а не aside


В девяноста процентах случаев шапки будут расположены сверху от вашего содержимого, подвалы – внизу, а боковые колонки – по одной из сторон. Но не расслабляйтесь. Держите ухо востро и не пропустите оставшиеся десять процентов.

nav

Элемент nav выполняет ту самую функцию, которую, как вы предполагаете, он и должен выполнять. Он содержит навигационную информацию, обычно – список ссылок.

На самом деле давайте я лучше объясню. Элемент nav предназначен для очень важной информации по навигации. Одно то, что группа ссылок сгруппирована вместе в список, недостаточная причина для того, чтобы использовать элемент nav. С другой стороны, сквозная навигация по сайту почти наверняка должна содержаться в элементе nav.

Довольно часто элемент nav появляется внутри элемента header. Это вполне осмысленно, если вы вспомните, что элемент header может использоваться для «вспомогательной навигационной информации».

article

Для лучшего понимания можно представить, что элементы header, footer, nav и aside – это специализированные формы элемента section. Секция – это общий блок связанного содержимого, а шапки, подвалы, навигационные блоки и боковые колонки – блоки особого связанного содержимого.

Элемент article – еще один особый вид section. Его следует использовать для самостоятельного связанного содержимого. Теперь сложная часть – это решить, что значит «самостоятельный».

Задайте себе вопрос, стали бы вы передавать это содержимое в RSS или Atom-ленте. Если в таком конктексте это содержимое имеет смысл, тогда, скорее всего, article – нужный вам элемент. На самом деле элемент article спроектирован специально для агрегирования.

Если внутри article вы используете элемент time, можете добавить к нему необязательный булев атрибут pubdate, чтобы указать, что он содержит дату публикации:


<article>

<header>

<h1>Отзыв на книгу Скрипты для DOM</h1>

</header>

Маленький маяк, который освещает длинную и зачастую темную дорогу в мире JavaScript.

<footer>

Опубликовано в

<time datetime=?2005-10-08T15:13? ачастую темную дорогу в мире JavaScript.

<footer>

Опубликовано в

<time datetime="2005-10-08T15:13" pubdate>

15:13 8 октября 2005 года.

</time>

автор: Гленн Джонс

</footer>

</article>


Если внутри статьи у вас есть несколько элементов time, то атрибут pubdate может быть только у одного из них.

Элемент article особенно хорошо применим для записей в блогах, новостных репортажей, комментариев, оценок, записей на форумах. Он покрывает ровно те же сценарии, что и микроформат hAtom.

Но спецификация HTML5 идет дальше. Она также объявляет, что элемент article должен использоваться для самостоятельных виджетов: графиков акций, калькуляторов, часов, виджетов погоды и тому подобного. В этом случае элемент article пытается закрыть те же сценарии, что Web Slices компании Microsoft (http://bkaprt.com/html5/8)[13].

Мне кажется совершенно непонятным интуитивно, что элемент с названием «статья» должен применяться к концепту, известному как «виджет». Но, опять же, и статьи, и виджеты – самостоятельные, агрегируемые типы содержимого.

Что более проблематично – это то, что article и section очень во многом похожи. Все, что их разделяет, – слово «самостоятельный». Решить, какой элемент к чему относится, было бы просто при четких и быстрых правилах. В данном же случае все зависит от интерпретации. У вас может быть много статей внутри секции, много секций внутри статьи, можно создавать вложенные секции в секциях и статьи в статьях. Вы решаете, какой элемент больше подходит семантически в той или иной конкретной ситуации.

Лекарство от избытка дивов?

HTML5 дает нам массу новых структурных элементов, которые описаны выше. Они особенно полезны, если вы разрабатываете обыкновенный сайт, например блог. Большинство блогов разработаны так, что сначала идет шапка, затем набор статей, не имеющее прямого отношения содержимое в отдельном элементе и завершается все подвалом (рис. 5.02).


Рис. 5.02. Блог вашего покорного слуги


Теперь вы можете заменить какие-то из своих элементов div на структурные элементы с большей семантической точностью. Но не переходите границу. Есть шансы, что если вы используете div сегодня, будете использовать его же и завтра. Не заменяйте ваши элемент div на новые глянцевые элементы HTML5 просто ради того, чтобы их использовать. Подумайте о содержимом.

Новые элементы были созданы не просто для того, чтобы заменить элементы div. Они наделяют веб-браузеры совершенно новыми возможностями для понимания вашего содержимого.

Модели содержимого

Предыдущие спецификации разметки разделяли элементы на строчные и блочные. HTML5 использует более тонкий подход, разделяя элементы на более широкий спектр категорий.

Строчные элементы теперь имеют модель содержимого «семантики на уровне текста». Многие блочные элементы теперь подпадают под категорию «группирующего содержимого»: абзацы, списки, дивы и т. п. У форм есть своя собственная модель содержимого. Картинки, звук, видео и Canvas относятся к встроенному содержимому. У новых структурных элементов появляется совершенно новая модель содержимого, которая называется «содержимое-разделитель».

Содержимое, разбивающее на секции

Используя элементы заголовков, от h1 дo h6, можно создать содержание HTML-документа. Например, посмотрите вот на эту разметку:


<h1>An Event Apart</h1>

<h2>Города</h2>

Присоединяйтесь к нам в 2010 году в этих городах.

<h3>Сиэтл</h3>

Идите в изумрудный город по дороге из желтого кирпича.

<h3>Бостон</h3>

Для друзей – Beantown.

<h3>Миннеаполис</h3>

Здесь так <em>мило</em>.

<small>Размещение не предоставляется.</small>


Из этого получается следующее содержание:

• An Event Apart

• Города

• Сиэтл

• Бостон

• Миннеаполис

Это работает достаточно неплохо. Все содержимое, следующее за элементом заголовка, считается связанным с этим заголовком.

Теперь посмотрим на элемент small. Он должен быть связан со всем документом. Но браузер никак не может об этом узнать. Он ниоткуда не может узнать, что элемент small не должен относиться к заголовку «Миннеаполис».

Добавленное в HTML5 содержимое-разделитель позволяет вам явно размечать начало и конец взаимосвязанного содержимого:

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*