Для улучшения семантики html-страниц в HTML5 был введен ряд семантических тегов:
Используется для выделения текста на странице, по аналогии выделения маркером на бумаге.
Создает блок дополнительной информации, отображающейся по клику:
<details>Hidden content</details>
При указании атрибута open блок развернут по умолчанию:
<details open>Hidden content</details>
При использовании с тегом summary позволяет поменять кликабельный текст "Details":
<details>
<summary>Используем summary</summary>
Hidden content
</details>
Отображает системный progressbar, используя атрибуты max и value:
<progress value="90" max="100"></progress>
meter служит для отображения количества чего-либо, находящегося в заданном диапазоне. В зависимости от значений дополнительных атрибутов low, high тег meter может окрашиваться в разные цвета:
<meter value="0.4">40%</meter>
|
|
<meter value="500" max="750">500</meter>
|
|
<meter value="25" max="100"
|
|
<meter value="9" max="10"
|
wbr позволяет явно указать место разрыва длинных слов при переносе:
Для этих целей можно использовать также спецсимвол ­, который в месте переноса добавляет дефис. Такой перенос нызвается "мягким".
Универсальные атгрибуты — это атрибуты, которые могут быть добавлены любому элементу. К ним относятся id, class, style. В HTML5 было добавлено еще несколько типов универсальных атрибутов:
Некоторые элементы получили собственны новые атрибуты:
Для input в HTML5 были добавлены новые атрибуты:
Использование min,max,step накладывает ограничения на ввод с помощью системных кнопок управления, но не на ввод с клавиатуры.
Позволяет разработчикам гибко добавлять изображения на страницу. Основное предназначение - создание адаптивного дизайна.
<picture>
<source media="(min-width: 1024px)" type="image/jpg" srcset="big_image.jpg, big_image_retina.jpg 2x">
<source media="(min-width: 600px)" type="image/jpg" srcset="small_image.jpg">
<img src="fallback_image.jpg" />
</picture>
Содержит вложенные теги source, каждый из которых является источником изображения, прописанном в атрибуте srcset. В атрибуте media указыватся, при выполнении каких media-запросов будет отображен тот или иной источник. Для браузеров, не поддеживающих picture, или для показа изображения, не соответсвующего ни одному указанному media-запросу в конец picture добавляют тег img. Каждый из источников может также содержать информацию о mime-типе type.
Аттрибут srcset вместе с аттрибутом sizes можно использовать и для img:
<img src="small.jpg"
srcset="img/image_big.png 640w,
img/image_med.png 480w,
img/image_small.png 320w"
sizes="(max-width: 460px) 250px,
100%"
alt="Image" />
srcset указывает набор источников и их размеры (ширина в пикселях указывается как w). В sizes указывается размер результирующего изображения в зависимости от медиазапроса. Браузер подбирает источник, наиболее подходящий для вычисленного размера изображения. Примеры.
Изначально кроссбраузерным способом добавления видео было добавление flash-видео. По мере развития HTML появился тег video для вставки видео на страницу (пример):
<video width="640" height="480" controls src="video/video.mp4"></video>
Тег video может использоваться со следующими атрибутами:
При воспроизведении видео браузер запускает три процесса:
Главная проблема — разные баузеры поддерживают разные типы видео и нет одного универсального типа, поддерживаемого всеми браузерами.
Форматы или контейнеры видео - это разный способ представления одного и того же видеофайла. Как обычные файлы можно заархивировать в zip, rar, 7z и т.д., содержимое архива будет одинаковым во всех случаях, на алгоритмы архивации и структура файла-архива - разные.
Обычно с расширением mp4 или m4v. MPEG-4 основан на старом контейнере Apple QuickTime (файлы с расширением mov).
Обычно с расширением ogv. Ogg является открытым стандартом с открытым исходным кодом для пользователей, свободный от каких-либо патентов.
Расширение webm, более современный формат, предназначен для использования с видеокодеком VP8 и аудиокодеком Vorbis.
Расширение avi, формат разработан Microsoft, поддерживает малое количество кодеков.
Обычно с расширением flv, формат видео Adobe Flash.
Для расшифровки видео используются разные кодеки, поддержка которых неодинакова для разных браузеров - см. поддержка браузерами.
Потому для обеспечения максимальной доступности вашего видео необходимо использовать синтаксис с указанием нескольких источников:
<video width="640" height="480" controls poster="video/poster.jpg">
<source src="video/video.mp4" type="video/mp4" />
<source src="video/video.webm" type="video/webm" />
<source src="video/video.ogv" type="video/ogg" />
<object width="640" height="480" type="application/x-shockwave-flash" data="video/video.flv">
<param name="movie" value="video/video.flv" />
<param name="flashvars" value="controlbar=over&image=video/poster.jpg&file=video/video.mp4" />
<img src="video/poster.jpg" width="640" height="360" alt="Video" title="No video playback capabilities, please download the video below" />
</object>
</video>
Элемент video имеет свойства и методы для управления им с помощью JavaScript:
Помимо унаследованных от Element событий тег video имеет специфические собственные события:
Объект видео также может иметь субтитры, подключаемые через тег track:
<video width="640" height="480" controls poster="video/poster.jpg">
<source src="video/video.mp4" type="video/mp4" />
<source src="video/video.webm" type="video/webm" />
<source src="video/video.ogv" type="video/ogg" />
<track src="video/subs.vtt" kind="subtitles" srclang="en" label="English" />
<track src="video/subs_ru.vtt" kind="subtitles" srclang="ru" label="Russian" />
</video>
Субтитры формируются в виде файлов в специальном формате, например, vtt а video ссылается на них при подключении.
Для добавления аудиодорожки на страницу используется тег audio (пример):
<audio src="audio/audio.mp3" controls></audio>
Браузеры, как и в случае с видео, поддерживают разные контейнеры и кодеки аудио, потому кроссбраузерный способ добавления audio включает в себя использование списка источников. Основные форматы аудио для вэб: mp3, wav, aac и ogg.
<audio src="audio/audio.mp3" controls>
<source src="audio/audio.ogg" type="audio/ogg">
<source src="audio/audio.mp3" type="audio/mpeg">
<source src="audio/audio.aac" type="audio/mp4">
<source src="audio/audio.wav" type="audio/wav">
</audio>
В отличие от video тегу audio нет смысла задавать аттрибуты width,height, но отображаемые размеры можно изменить с помощью css.
Элемент audio имеет свойства и методы для управления им с помощью JavaScript:
Помимо унаследованных от Element событий тег audio имеет специфические собственные события:
canvas представляет собой холст для рисования на нем с помощью JavaScript. Подобно десктопным графическим редакторам позволяет рисовать примитивные геометрические фигуры, встраивать изображения и выводить текст.
Тег menu, используемый вместе с menuitem, созволяет создавать свои собственные меню. Такое меню в дальнейшем можно привязать в качестве контекстного, если использовать для элемента атрибут contextmenu:
<div contextmenu="just-menu">Text container</div>
<menu id="just-menu" type="context">
<menuitem label="Alert()" onclick="alert('Alert!');"></menuitem>
<menuitem label="Refresh" icon="img/refresh.png" onclick="location.reload();"></menuitem>
</menu>
В атрибуте label каждого элемента меню указывается название данного пункта, а с помощью необязательного атрибута icon можно указать путь к изображению, которое будет отображаться рядом с пунктом меню. Пункт с пустым label отображаться не будет.
Изначально понятие шаблона было характерно для server-side программирования. По мере того, как HTML-страницы из простых статических сайтов стали превращаться в мощные вэб-приложения, возникла необходимость создания шаблонов на клиентской стороне. Для этого в HTML5 был добавлен специальный тег template. Внутрь тега помещают требующий повторения код и специального вида конструкции для вставки данных (пример). Таким образом, содержимое тега template не отображается на странице, но с помощью JavaScript оно может многократно копироваться и вставляться на страницу с нужными данными.