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

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

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

Также здесь в начале урока еще раз отметим, что не следует ожидать чудес от представленных элементов. Визуально они действительно не выглядят слишком привлекательно. Однако они интересны с точки зрения того, что вы можете логически и семантически структурировать свои документы.


Области навигации

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

Пример:

<nav>
   <a href="index.html">Главная</a>
   <a href="html5.html">Изучение HTML5</a>
   <a href="css.html">CSS</a>
   <a href="cms.html">Joomla!</a>
   <a href="wordpress.html">Wordpress</a>
</nav>



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

Указание деталей

Еще один интересный элемент - details. С его помощью можно – что уже можно предположить по названию элемента – указывать дополнительную информацию об содержании. Обратите внимание, что элемент details становится действительно интересным только в связке с элементом summary. Больше об этом элементе будет рассказано далее.

Сначала пример использования details:

<article>
  <details>
    <summary>Ссылки на статью...</summary>
    <ul>
      <li><a href="ссылка1.html">Ссылка 1</a></li>
      <li><a href="ссылка2.html">Ссылка 2</a></li>
      <li><a href="ссылка3.html">Ссылка 3</a></li>
    </ul>
  </details>
  <details>
    <summary>Ссылки на источники для статьи ...</summary>
    <ul>
      <li><a href="источник1.html">Ссылка 4</a></li>
      <li><a href="источник2.html">Ссылка 5</a></li>
      <li><a href="источник3.html"">Ссылка 6</a></li>
    </ul>
  </details>
</article>



Содержимое элемента details будет скрыто перед посетителем до тех пор, пока он не нажмет на содержащийся внутри details элемент summary.

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

Это может быть полезно, например, в контексте видеоплеера. Вот пример:

<video id="film" width="320" height="180" autoplay>
  <source src="video.mp4" type="video/mp4">
  <source src="video.webm" type="video/webm">
  <source src="video.ogv" type="video/ogg">
</video>
<details open>
  <summary>Показать/скрыть элементы управления видеоплеера</summary>
  <p>
    <button id="start" onClick="start()">Старт/Пауза</button>
    <button id="mute" onClick="mute()">Выключить звук</button>
    <button id="louder" onClick="louder()">Громче</button>
    <button id="quieter" onClick="quieter()">Тише</button>
  </p>
</details>



При загрузке страницы видно только окно плеера.

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

Однако если посетитель щелкнет на ссылку включения и выключения, будут отображены содержащиеся внутри summary элементы.

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

Согласно спецификации, если элемент summary отсутствует, браузеры должны отобразить стандартное содержимое.

Интересно также использование атрибута open для details.

<details open>
…
</details>



Если этот атрибут установлен, содержимое элемента summary будет отображаться непосредственно при загрузке страницы.

Резюме

Итак, еще раз более подробно рассмотрим элемент summary.

<article>
  <details>
    <summary>Ссылки на статью...</summary>
    <ul>
      <li><a href="ссылка1.html">Ссылка 1</a></li>
      <li><a href="ссылка2.html">Ссылка 2</a></li>
      <li><a href="ссылка3.html">Ссылка 3</a></li>
    </ul>
  </details>
  <details>
    <summary>Ссылки на источники для статьи ...</summary>
    <ul>
      <li><a href="источник1.html">Ссылка 4</a></li>
      <li><a href="источник2.html">Ссылка 5</a></li>
      <li><a href="источник3.html"">Ссылка 6</a></li>
    </ul>
  </details>
</article>



Таким образом, внутри элемента summary определяется невидимое содержимое, связанное с элементом details. Благодаря элементу summary можно встраивать дополнительную информацию, которая будет отображаться только по запросу.

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

Поля для заметок и сносок

Дополнительную информацию, заметки, перекрестные ссылки и т. д. в HTML5 можно выделить с помощью элемента aside. Содержимое, выделенное с помощью этого элемента, находится в связи с общим документом, но не является прямо относящимся к нему.

Обратите внимание, что в спецификации HTML5 не определено, какие размеры должны использоваться для области, выделенной через элемент aside. Следовательно, содержимое элемента aside может быть представлено как заметка, так и боковая панель.

Приведенный ниже пример показывает определение области с элементом aside.

<body>
  <header>
   <h1>PSD-Tutorials.de</h1>
  </header>
 <article>
  <h2>Создание веб-приложений (часть 10): jQuery mobile (2)</h2>
    <p>В этом учебнике создается первая настоящая страница JQM. Для этого вам понадобится структура HTML, которую вы уже изучили.</p>
    <aside>
     <h3>Дополнительная информация</h3>
      <ul>
       <li><a href="#/fn1">Более подробные сведения можно найти...</a></li>
      </ul>
     </aside>
    </article>
    <aside>
     <nav>
      <h2>Навигация</h2>
      <ul>
       <li><a href="#">Главная страница</a></li>
       <li><a href="# ">Контакты</a></li>
     </ul>
     </nav>
   </aside>
  </body>

Добавление времённых меток

Временные метки могут быть определены специальным элементом time. Особенность этого элемента заключается в том, что временные данными читаемы как человеком, так и машиной.

Для людей время записывается в элемент time. Чтобы браузеры также могли читать временные данные, используется атрибут datetime элемента time.

<p>Мы встретимся 
<time datetime="2014-04-15 19:00">15 апреля в 19:00</time>.
</p>



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

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

Выделение текста

С помощью элемента mark можно выделить слова или целые текстовые фрагменты. В спецификации HTML5 специально отмечается, что элемент следует использовать только в контексте текстового содержимого и он должен иметь определенную связь с контекстом.

Пример:

<p>В этом учебнике создается первая страница JQM. Для этого вам понадобится <mark>HTML-Grundgerüst</mark>, которое вы уже изучили.</p>



То, как браузеры будут оформлять выделение, не определено.

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



Google Chrome и Firefox оба используют желтый фон.

Выделение диалогов

В HTML5 также предусмотрено особое выделение диалогов. Для этого существует элемент dialog. В настоящее время этот элемент поддерживается только Safari и Google Canary, т. е. версией браузера для разработчиков.

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

Вот пример:

<dialog id="dialog" style="width:50%;background-color:#F4FFEF;border:1px dotted black;">
<p>Это содержимое блока.</p>
<button id="hide">Закрыть</button>
</dialog>
<button id="show">Показать содержимое</button>
</div>
<script type="text/JavaScript">
(function() {  
    var dialog = document.getElementById('dialog');  
    document.getElementById('show').onclick = function() {  
        dialog.show();  
    };  
    document.getElementById('hide').onclick = function() {  
        dialog.close();  
    };  
})(); 
</script>



После нажатия кнопки диалоговое окно становится видимым. Для правильной работы используется комбинация HTML5, CSS и JavaScript.

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