Тег figure определяет. Элементы figure и figcaption — Веб-стандарты. Общие ошибки в использовании элемента

Семантические элементы HTML5 доступно описывают свой смысл или назначение как для браузеров, так и для веб-разработчиков.
До появления стандарта HTML5 вся разметка страниц осуществлялась преимущественно с помощью элементов , которым присваивали классы class или идентификаторы id для наглядности разметки (например, ). С их помощью в HTML-документе размещали верхние и нижние колонтитулы, боковые панели, навигацию и многое другое.

Стандарт HTML5 предоставил новые элементы для структурирования, группировки контента и разметки текстового содержимого. Новые семантические элементы позволили улучшить структуру веб-страницы, добавив смысловое значение заключенному в них содержимому (было , стало ). Для отображения внешнего вида элементов не задано никаких правил, поэтому элементы можно стилизовать по своему усмотрению. Для всех элементов доступны .

Согласно спецификации HTML5 каждый элемент принадлежит к определенной (ноль или более) категории. Каждая из них группирует элементы со схожими характеристиками. Выделяют следующие общие категории:

  • Мета содержимое
  • Потоковое содержимое
  • Секционное содержимое
  • Заголовочное содержимое
  • Текстовое содержимое
  • Встроенное содержимое
  • Интерактивное содержимое
Описание HTML5-элементов 1. Элемент

Категории контента: потоковое содержимое.
Группирует вводные и навигационные элементы, не является обязательным. Может содержать заголовки, оборачивать содержание раздела страницы, форму поиска или логотип. В HTML-документе может содержаться одновременно несколько элементов и они могут располагаться в любой части страницы.

Site description

Элемент нельзя помещать внутрь элементов , или другого элемента .

2. Элемент

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

    или , он просто их обрамляет. Не все группы ссылок на странице должны быть обёрнуты , этот элемент предназначен в первую очередь для разделов, которые состоят из главных навигационных блоков.

    В качестве элементов панели навигации можно использовать не только элементы списков:

    ...

    ...

    Также можно добавлять заголовки внутрь элемента:

    ...

    3. Элемент

    Категории контента: потоковое содержимое, секционное содержимое.
    Используется для группировки записей — публикаций, статей, записей блога, комментариев. Представляет собой независимый обособленный блок, предназначенный для многократного использования, как правило, начинается с заголовка. Может дублироваться на других страницах сайта и содержать внутри другие элементы , которые по содержанию имеют близкое отношение к содержанию внешней статьи. Если на странице присутствует только одна статья с заголовком и текстовым содержимым, она не нуждается в обёртке элементом . Элемент рекомендуется использовать только в том случае, если содержимое элемента будет явно указано в схеме документа.

    Spring Comes (and Goes) in Sussex County

    Yesterday I joined the Brooklyn Bird Club for our annual trip to Western New Jersey, specifically Hyper Humus, a relatively recently discovered hot spot.

    But does it count for your life list?

    Seems you can now go bird watching via the Internet. I haven"t been able to test it out yet (20 user limit apparently) but this is certainly cool. Personally, I can"t imagine it replacing actually being out in the field by any small amount.

    « Previous Entries

    4. Элемент

    Категории контента: потоковое содержимое, секционное содержимое.
    Элемент представляет собой универсальный раздел документа. Группирует тематическое содержимое и обычно содержит заголовок. Не является блоком-оберткой, для этих целей уместнее использовать элемент . В качестве содержимого может выступать оглавление, разделы научных публикаций, программа мероприятия. Домашняя страница сайта также может быть поделена на секции — блок вводной информации, новости и контакты. Элемент рекомендуется использовать только в том случае, если содержимое элемента будет явно указано в схеме документа.

    ... ... ...

    внутри

    Можно создавать родительские элементы с вложенными элементами , в которых есть один или несколько элементов . Не все страницы должны быть устроены именно так, но это допустимый способ вложения элементов. Например, основная область контента страницы содержит два блока со статьями разной тематики. Можно сделать на этом акцент, поместив каждую статью одной тематики внутрь элемента

    Заметки о природе ... ... Исторические заметки ... ...

    5. Элемент

    Категории контента: потоковое содержимое, секционное содержимое.
    Группирует содержимое, связанное с окружающим его контентом напрямую, но которое можно счесть отдельным (т.е., удаление этого блока не повлияет на понимание основного содержимого) . Чаще всего элемент позиционируется как боковая колонка (как в книгах) и включает в себя группу элементов: , цифровые данные, цитаты, рекламные блоки, архивные записи. Не подходит для блоков, просто позиционированных в стороне.

    ... ...

    .........

    6. Элемент

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

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

    ... @2014...

    7. Элемент

    Категории контента: потоковое содержимое.
    Используется для определения контактной информации автора/владельца документа или статьи. Для обозначения автора документа тег размещают внутри элемента , для отображения автора статьи — внутри тега . В браузере обычно отображается курсивом.

    8. Элемент

    Категории контента: потоковое содержимое.
    Элемент представляет основное содержимое документа (содержимое элемента ). Контент, находящийся внутри элемента, должен быть уникальным и не повторяться во всех документах сайта, таких как навигационные ссылки, информация о копирайте, логотипы, формы поиска (в случае, если форма поиска является основной функцией документа).

    Элемент не может быть потомком таких элементов как , , , или .

    Пудель

    О породе Разновидности Внешний вид Характер Copyright © 2016 Моя собака.ру

    9. Элемент

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

    Осенний лес

    Элемент является блочным, по ширине занимает всю ширину блока-контейнера за минусом внешних отступов margin:

    10. Элемент

    Элемент — потомок элемента , не принадлежит ни к одной категории контента. Элемент является блочным, по ширине равен ширине элемента , высота по умолчанию равна 18px .

    11. Элемент

    Категории контента:
    Определяет время (24 часа) или дату по григорианскому календарю с возможным указанием времени и смещения часового пояса. Текст, заключенный в данный тег, не имеет стилевого оформления браузером. Для тега доступен атрибут datetime , в качестве содержимого которого указывается то, что будет видеть пользователь на экране своего компьютера:

    Чтобы дата могла считываться автоматически, она должна быть в формате YYYY-MM-DD . Время, которое также может указываться, задается в формате HH:MM с добавлением разделяющего префикса T (time):

    12. Элемент

    Категории контента: потоковое содержимое, текстовое содержимое.
    Текст, помещенный внутрь тега , выделяется по умолчанию желтым цветом (цвет фона и цвет шрифта в выделенном блоке можно изменить, задав определенные css-стили). С помощью данного тега можно отмечать важное содержимое, а также ключевые слова.

    13. Элемент

    Категории контента: потоковое содержимое, текстовое содержимое.
    Отделяет фрагмент текста, который должен быть изолирован от остального текста для двунаправленного форматирования текста. Используется для текстов, написанных одновременно на языках, читающихся слева направо и справа налево.

    14. Элемент

    Категории контента: потоковое содержимое, текстовое содержимое.
    Одиночный тег, показывает браузеру место, где можно добавить разрыв длинной строки в случае необходимости.

    15. Элементы для описания Восточно-Азиатских символов

    Категории контента: потоковое содержимое, текстовое содержимое.
    Элемент позволяет помечать один и более элементов категории текстовое содержимое с помощью ruby-аннотации. Ruby-аннотация используется в преимущественно в Восточно-Азиатской типографики как руководство по произношению или для включения других характеристик. Элемент может содержать:
    — один и более текстовых узлов или элементов ;
    — один и более элементов , , каждый из которых предшествует или следует непосредственно за элементом .

    Элементы , , и не относятся ни к одной категории контента.

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

    В обычных печатных изданиях, таких как книги и журналы, изображения, таблицы или примеры кода обычно сопровождаются подписью. До сих пор у нас не было возможности семантически выделять такой тип содержимого напрямую в HTML, вместо того чтобы прибегать к именам классов СSS. HTML5 надеется исправить эту проблему с помощью новых элементов: и . Давайте разберемся!

    Элемент

    Предполагается, что элемент будет использоваться в сочетании с элементом для того, чтобы выделять диаграммы, иллюстрации, фотографии и примеры кода (помимо прочего). Вот что говорится о в спецификации:

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

    Элемент

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

    Использование и

    Итак, мы узнали, что об этих элементах говорится в спецификации. Как же их использовать? Давайте рассмотрим это на примерах.

    для изображения

    Изображение в элементе без подписи:

    Вот код для этого:

    с изображением и подписью

    Изображение внутри элемента с поясняющей подписью:


    Наглая макака из Борнео. Фото Ричарда Кларка

    И код, который мы использовали:

    Наглая макака из Борнео. Фото Ричарда Кларка

    с несколькими изображениями

    Размещение нескольких изображений внутри одного элемента с общей подписью:

    Слева направо: кукабара, пеликан и многоцветный лорикет. Фотографии Ричарда Кларка

    И сам код:

    Слева направо: кукабара, пеликан и многоцветный лорикет. Фотографии Ричарда Кларка

    с блоком кода

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

    Creative Commons Attribution Share-alike license

    Использование элемента вокруг ссылки на лицензию Creative Commons с rel="license" .

    Ниже приведен код для этого:

    Creative Commons Attribution Share-alike license

    Использование элемента вокруг ссылки на лицензию Creative Commons с rel="license".

    Различия между и

    Мы уже говорили об элементе в предыдущей статье , но важно отметить разницу между ними. При выборе между или , стоит спросить себя, имеет ли содержимое элемента важное значение для понимания содержимого:

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

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

    Не останавливайтесь на достигнутом!

    Не стоит ограничивать использование изображениями и примерами кода. Другим содержимым, подходящим по смыслу для использования в элементе может быть аудио, видео, графики (возможно, с использованием или ), стихи или таблицы со статистикой.

    Однако использование элемента не всегда целесообразно. Например, графический баннер не стоит размечать в . Используйте для этого просто .

    Вывод

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

    Перевод оригинальной статьи «The figure & figcaption elements » Ричарда Кларка (Richard Clark), опубликованной на сайте HTML5Doctor.com .

    Перевод выполнила Екатерина Мордвина.

    И отвечая на вопросы пользователей, я видел множество сайтов с HTML5 разметкой. В этой статье я покажу некоторые ошибки и плохие практики разметки, которые я часто встречал, и объясню, как избежать их.

    Не используйте тег в качестве обёртки для оформления Одна из наиболее общих проблем, замеченных мною, - банальная замена "ов на структурные элементы HTML5, особенно на "ы. Т.е. когда то, что в XHTML или HTML4 выглядит так:
    My super duper page Переписывают так:
    Это просто неправильно: не обёртка. Этот элемент означает семантический блок Вашего контента, использующийся для построения «структуры документа» (document outline), и должен содержать заголовок. Если Вам нужен элемент для обёртки, попробуйте обойтись (Kroc Camen может предложить кое-что). Если это не решает проблему необходимости дополнительных обёрток, используйте старые добрые "ы. С приходом HTML5 "ы не умерли , и именно они отлично подходят в этом случае.

    Принимая во внимание все вышесказанное, было бы хорошо разметить пример выше с использованием HTML5 так:
    My super duper page

    Если Вы не уверены, какой элемент использовать, то я советую Вам воспользоваться нашей блок-схемой выбора элемента (прим. переводчика: см. в самом низу записи ).

    Используйте и только при необходимости Нет смысла писать код, если в этом нет необходимости, правда? Увы, но я часто наблюдаю, как и там, где они не нужны. Вы можете почитать об элементах и подробнее, я же коротко обозначу ключевые моменты:
    • Элемент представляет группу вводных или навигационных средств и обычно содержит заголовок секции
    • Элемент группирует набор элементов -, представляя заголовок секции в случае, если он состоит из нескольких уровней (подзаголовки, альтернативные заголовки и т.д.)
    Избыток элементов Я уверен, Вы прекрасно знаете, что элемент можно использовать несколько раз в документе. Поэтому часто встречается такое:
    My best blog post

    Если Ваш содержит только один заголовочный элемент, то он не нужен. В данном случае элемент уже гарантирует, что заголовок будет включен в «структуру документа» (document outline), и раз не содержит нескольких элементов (согласно определению), его можно безопасно удалить. Достаточно просто этого:
    My best blog post

    Неправильное использование И снова о заголовках: я часто вижу некорректное использование элемента . Не следует использовать вместе с , если:
    • Присутствует только один заголовок
    • хорош сам по себе (т.е., без ).
    Первый случай:
    My best blog post

    by Rich Clark

    В этом случае просто уберите hgroup.
    My best blog post

    by Rich Clark

    Второй случай - это еще один пример использования элемента без необходимости.
    My company Established 1893

    Если единственный ребёнок "а это , зачем нужен ? Если у Вас нет дополнительных элементов в "е (т.е. сестринских по отношению к ), просто уберите .
    My company Established 1893

    Не обрамляйте все ссылки в В HTML5 было введено 30 новых элементов, чтобы дать нам возможность создавать структурированную и осмысленную разметку. Но не следует злоупотреблять новыми семантическими элементами. К сожалению, это как раз то, что происходит с . Спецификация описывает так:Элемент nav представляет секцию страницы, связывающую её с другими страницами или частями текущей (секцию с навигационными ссылками).

    Примечание: Не все группы ссылок следует помещать в элемент nav. Его следует использовать для основной навигации . Часто в футерах размещают небольшой список ссылок на различные страницы сайта (Главная, Помощь, соглашение об использовании, etc ). В этом случае одного footer"а должно быть достаточно. Хотя ничто не мешает использовать nav, в этом нет необходимости.

    WHATWG HTML spec

    Ключевая фраза - «основная навигация». Можно долго спорить о том, что понимать под основной, но для меня это:

    • Первичная навигация
    • Поиск по сайту
    • Вторичная навигация (спорно)
    • Внутристраничная навигация (внутри длинной статьи, например)
    Хотя в этом случае сложно судить, что есть правильно, а что - нет, я считаю, что не стоит заключать в :
    • Переключатели страниц
    • Социальные ссылки (хотя возможны исключения в случаях, когда социальные ссылки являются основной навигацией. Например, сайты вроде about.me или flavours.me)
    • Теги поста
    • Категории поста
    • Третичная навигация
    • Объемные футеры
    Если Вы не уверены, обрамлять ли список ссылок в , задайте себе вопрос: «Это основная навигация?». Примите во внимание следующее:
    • “Не используйте , если Вы считаете, что с заголовком тоже подойдёт” - Hixie в IRC
    • Возможно стоит добавить «Перейти к» для удобства?
    Если ответ на эти вопросы - «Нет», это, видимо, не место для .Общие ошибки в использовании элемента Ах, . Разобраться с правильным использованием этого элемента, как и его собрата , непросто. Давайте взглянем на некоторые общие ошибки, касающиеся этого элемента.Не каждое изображение Ранее, я советовал не писать больше кода, чем необходимо. Здесь похожая ситуация. Я встречал сайты, где каждая картинка была обрамлена в . Не нужно использовать больше разметки только для того, чтобы использовать больше разметки. Вы просто создаете себе больше работы, но никак не улучшаете описание своего контента.

    Спецификация описывает как «автономный контент, возможно, с заголовком и обычно являющийся самостоятельным элементом потока». Вот она, вся красота - элемент можно спокойно переместить из основного содержимого, например, в сайдбар.

    Вышеупомянутая блок-схема выбора элемента поможет Вам справиться с .

    Если изображение несет только презентационную нагрузку, и на него нигде в документе не ссылаются, это определенно не . Иначе, задайте себе вопрос: «Необходимо ли это изображение в текущем контексте для понимания?». Если нет, это, видимо, не (возможно, ). Если да, спросите себя, «Могу ли я переместить это в приложение?». Если ответ на оба вопроса Да, то, возможно, подойдёт.

    Ваш логотип - не Тоже самое касается и логотипа. Часто я вижу такое применение:
    My company name
    Тут нечего добавить. Это просто неверно. Можно долго спорить о том, должен ли логотип быть в , но мы сейчас не об этом. Настоящая ошибка - злоупотребление элементом . следует использовать только когда Вы ссылаетесь на него в документе. Вряд ли Вы где-нибудь будете ссылаться на свой логотип. Достаточно этого:
    My company name может быть не только изображением Другой частый случай недопонимания элемента заключается в предположении, что его можно применять только для картинок. Но это не так. В может быть заключено видео, аудио, графики (в SVG, например), цитата, таблица, блок кода, стихотворение или любая комбинация перечисленного. Не ограничивайте себя в использовании одними картинками. Наша задача как приверженцев веб-стандартов - описать контент нашей разметки.

    Не так давно я писал об элементе подробнее. Советую почитать, если Вы хотите разобраться получше или освежить воспоминания.

    Не используйте ненужный атрибут type Это, возможно, наиболее общая проблема, встречаемая в HTML5 галерее. Хотя это и не ошибка, я считаю, что лучше избегать этого.

    В HTML5 нет необходимости указывать атрибут type для элементов и . Хотя от них может быть непросто избавиться, если они автоматически добавляются Вашей CMS, нет смысла включать их в код, если Вы пишете его самостоятельно или можете управлять шаблонами. Т.к. все браузеры по-умолчанию считают, что все скрипты написаны на JavaScript, а стили - это CSS, такая разметка становится избыточной:

    Вместо этого Вы можете просто написать:

    Помимо прочего, Вы также можете сократить количество кода, расходующегося на указание кодировки. Глава Марка Пилгрима о семантике в книге Dive into HTML5 описывает все такие практики.

    Некорректное использование атрибутов форм Вы, должно быть, уже в курсе, что в HTML5 введено множество новых атрибутов форм. Мы рассмотрим их в ближайшее время, сейчас же я коротко расскажу, как делать не стоит.Логические атрибуты Существуют логические атрибуты также и для мультимедиа элементов и некоторых других. Описываемые мною правила применимы и для них.

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

    • autofocus
    • autocomplete
    • required

    Я редко встречаю их, но в случае с required я видел такое:

    В конечном счете, это ничем плохим не грозит. Клиентский HTML парсер встретит атрибут required в разметке и применит соответствующие правила. Но что если сделать по-другому и написать required=«false»?

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

    Логическое значение возможно применить тремя способами: (Второе и третье характерны для XHTML)

    • required
    • required=""
    • required=«required=»

    Применительно к нашему примеру выше, мы могли бы написать так (в HTML):

    ПК