HTML & CSS для начинающих

HTML & CSS для начинающих (Часть 18): Семантика для веба (1)

Все видео урока

Термин "семантическая сеть" в настоящее время используется практически вспышками. Многим людям вообще не ясно, что такое эта так легкомысленно оцененная семантика. На самом деле все просто: благодаря семантике из огромных объемов данных действительно могут быть извлечены необходимые / желаемые информации.

Конкретный пример должен продемонстрировать важность семантики. Цифровые фотографии - замечательная вещь. Сразу после съемки их можно представить через Интернет всему миру. Что действительно является личным, давно уже утвердилось и в профессиональной среде. Фотоагентства, музеи, библиотеки и фотографы предлагают фотографии, картины или цифровые версии ценных текстов через профессиональные библиотеки изображений. На соответствующих веб-сайтах есть тогда маски поиска, через которые платформу можно просматривать. Самым популярным примером поисковика изображений в вебе 2.0 является, безусловно, Flickr.

HTML и CSS для начинающих (часть 18): Семантика для веба (1)

Те, кто уже использовал такие поисковые системы изображени�... Kohl (капуста), вы увидите фотографии из различных областей. Так, поиск изображений Yahoo! покажет фотографии капустной синицы, теннисиста по имени Коль и бывшего канцлера Гельмута Коля.

HTML и CSS для новичков (часть 18): Семантика для веба (1)

На этом этапе одно из преимуществ классического Интернета становится очевидным: в настоящее время предоставленная информация может быть понята людьми, но машины - в данном случае поисковые системы - не могут быть правильно интерпретированы.

Машины могут читать информацию только тогда, когда она действительно присутствует. И именно это является решающим моментом, в котором начинает работать семантика.

Структурирование документов

В более ранних версиях HTML не было просто способа структурировать документы семантически. Если хотели структурировать веб-страницу, у вас были только заголовки и текстовые абзацы. Вот типичный пример структуры классической веб-страницы:

<h1>
    Капитул
</h1>
<p>
    Параграф
</p>
<h2>
    Подкапитул
</h2>
<p>
    Параграф в подкапитуле
</p>
<h3>



Для структурирования документа HTML предоставляет элементы h1 до h6. Однако с помощью них нельзя построить действительно глубокую вложенность структуры. Поскольку элементы h7 или h8 в HTML не предусмотрены. Именно здесь HTML5 вводит дополнительные элементы структурирования.

article

aside

dialog

figure

footer

header

nav

section

Эти элементы представлены в этом учебнике. Однако прежде всего следует отметить: эти элементы не должны быть удивительными с точки зрения визуализации. Чтобы веб-страницы, основанные на семантических элементах, выглядели привлекательно, необходимо использовать CSS. И к этому мы, как известно, вернемся позже.

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

<progress min="0" max="100" value="40"></progress>



Это создает индикатор загрузки. (Стильный элемент progress уже был подробно рассмотрен в этой серии).

HTML & CSS для начинающих (часть 18): Семантика для веба (1)

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

Семантические структуры элементов

В "обычных" HTML-документах для структурирования содержимого часто используются элементы div. Чтобы их можно было форматировать с помощью CSS, им присваивают классы или идентификаторы. Этот принцип также используется в HTML5. Действительно, опрос, проведенный Google, показал, что во многих документах всегда применяются одни и те же классы.

Пример:

<div class="nav"></div>



Многие разработчики, например, используют nav, чтобы разместить навигацию внутри этого элемента div. В HTML5 это выглядит иначе:

<nav>Содержание</nav>



С элементом nav становится ясно, что это не просто список гиперссылок. Фактически этот элемент описывает блок содержимого, в котором содержится информация о навигации веб-сайта в определенном контексте.

Современное структурирование

Как, на самом деле, выглядит структура HTML-документа? В общем, она похожа вне зависимости от того, какое содержание у страницы в конечном итоге будет. Обычно включаются следующие разделы:

• Шапка

• Основное меню

• Содержательная область

• Нижняя часть страницы

Веб-страница, которая использует элементы div для структурирования, могла бы выглядеть так:

<body>
   <div id="header">
     <div id="logo">Logo</div>
     <div id="search">Поиск</div>
     <div id="nav">Основное меню</div>
   </div>
   <div id="content">
     <h1>Это содержимое</h1>
     <div class="section">
       <h2>Подзаголовок</h2>
       <h3>Раздел</h3>
       <!-- Здесь находится содержание -->
     </div>
     <div class="section">
       <h2>Подзаголовок</h2>
       <!-- Здесь находится содержание -->
     </div>
   </div>
   <div id="sidebar">
     <div id="subnav">Подменю</div>
   </div>
   <div id="footer">Нижний колонтитул</div>
 </body>



Возможно, вы уже знакомы с такими конструкциями div. Чтобы структура была понятна разработчикам, соответствующим областям div присваивают соответствующие классы или идентификаторы, обладающие "говорящими" именами. Таким образом, разработчику, например, сразу становится понятно, что в области div с идентификатором footer содержится содержание, относящееся к нижнему колонтитулу страницы. Проблема заключается в том, что имена могут намекать на структуру веб-сайта, но сам веб-сайт этим еще далеко не семантически структурирован. Именно здесь появляются новые элементы HTML. Потому что они впервые позволяют действительно структурировать документы или веб-сайты.

Для лучшего понимания посмотрите следующий документ HTML5:

<body>
   <header>
     <div id="logo">Лого</div>
     <div id="search">Поиск</div>
     <nav>Основное меню</nav>
   </header>
   <article>
     <h1>Это содержимое</h1>
     <section>
       <h2>Подзаголовок</h2>
       <h3>Раздел</h3>
       <!-- Здесь находится содержание -->
     </section>
     <section>
       <h2> Подзаголовок</h2>
       <!-- Здесь находится содержание -->
     </section>
   </article>
   <aside>
     <nav>Подменю</nav>
   </aside>
   <footer>Нижний колонтитул</footer>
 </body>



Конечно же, в следующих учебных пособиях я расскажу о использованных здесь элементах. Тем не менее, уже один взгляд на этот пример показывает, в чем преимущества использованных элементов. Теперь можно, наконец, выделить области страниц с помощью таких элементов, специально предназначенных для этого. Здесь может быть включено все, что относится к верхней части страницы, в элемент header.

Кроме того, теперь доступны элементы section и article, с помощью которых можно гораздо лучше структурировать содержимое страниц. Как видите, стоит полюбоваться на возможности, которые предлагает HTML5 в отношении семантической структурирования документов.