Елементи figure та figcaption
Оригінал: http://html5doctor.com/the-figure-figcaption-elements/
Переклад: Влад Мержевич
У традиційних друкованих матеріалах, таких як книги та журнали, зображення, графіка або коди супроводжуються заголовками. До цього часу нам не було можливості семантично верстати такий контент безпосередньо в HTML, замість використання CSS класів. HTML5 сподівається вирішити цю проблему шляхом введення елементів <figure> та <figcaption>. Давайте розберемося з ними!
Елемент <figure>
Елемент <figure> використовується разом з <figcaption> для розмітки діаграм, ілюстрацій, фотографій, прикладів коду та інших речей. Ось що говорить специфікація про <figure>.
Елемент figure представляє собою самодостатній блок контенту з можливим заголовком, на який, як правило, посилаються з основного потоку документу. Цей блок може бути переміщений з основного потоку документу без втрати загального змісту документу.
Елемент <figcaption>
Елемент <figcaption> був предметом багатьох дискусій. У специфікації спочатку хотіли змінити <legend>, а не вводити новий елемент. Інші пропозиції включали <label>, <caption>, <p> або <h1>...<h6>. <legend> був змінений, а потім за пропозицією Джеремі всередині <figure> використовували комбінацію <dt> та <dd>. Більшість цих пропозицій було відхилено через відсутність зворотної сумісності для управління стилями через CSS.
Постійні читачі вже знають, що новий елемент був представлений недавно під назвою <figcaption>. Чи приживеться цей елемент - питання, але ось що зараз говорить специфікація про <figcaption>:
Елемент figcaption представляє собою заголовок або легенду для figure.
Елемент <figcaption> не є обов'язковим і додається до або після вмісту всередині <figure>. Всередині одного <figure> може бути лише один <figcaption>, при цьому можна додавати багато інших дочірніх елементів (наприклад, <img> або <code>).
Використання <figure> та <figcaption>
Ми дізнались, що говорить специфікація щодо цих елементів. Але як їх використовувати? Подивимось на кілька прикладів.
<figure> з зображенням
Зображення без заголовка всередині елемента <figure>.
Вот код для цього.
<figure>
<img src="/orang-utan.jpg" alt="Дитина орангутанга тримається за вервту">
</figure><figure> з зображенням та заголовком
Зображення всередині елемента <figure> з пояснюючим заголовком.
І код, який ми використали.
<figure>
<img src="/macaque.jpg" alt="Макака на дереві">
<figcaption>Нахабна макака. Річка Нижня Кінтаганбан, Борнео. Джерело:
<a href="http://www.flickr.com/photos/rclark/102352241/in/set-72057594082373448/">Річард Кларк</a></figcaption>
</figure><figure> з декількома зображеннями
Декілька зображень всередині одного <figure> з єдиною заголовоком.
Код.
<figure>
<img src="/kookaburra.jpg" alt="Кукабурра">
<img src="/pelican.jpg" alt="Пелікан на пляжі">
<img src="/lorikeet.jpg" alt="Нахабно дивлячийся багатобарвний лорікет">
<figcaption>Австралійські птахи. Зліва направо: кукабурра, пелікан та багатобарвний лорікет.
Джерело: <a href="http://www.flickr.com/photos/rclark/">Річард Кларк</a></figcaption>
</figure><figure> з блоком коду
Елемент <figure> також може використовуватися для прикладів коду.
І код для цього.
<figure>
<blockquote><p><code><small><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative
Commons Attribution Share-alike license</a></small></code></p></blockquote>
<figcaption>Використовуйте <code><small></code> навколо посилання
<a href="http://creativecommons.org/choose/"title="Choose a License">Creative Commons license</a>
з <code>rel="license"</code></figcaption>
</figure>Відмінність між <figure> та <aside>
Ми розглядали <aside> у попередній статті і важливо відзначити різницю між цими двома елементами. Обираючи між <figure> та <aside>, ви повинні запитати себе, чи важливий вміст для розуміння розділу.
- Якщо вміст просто пов'язаний один з одним і не є важливим, використовуйте <aside>.
- Якщо вміст має важливе значення, але його позиція в потоці документа не є важливою, використовуйте <figure>.
З урахуванням цього, якщо положення елемента пов'язано з попереднім і наступним вмістом, то скористайтеся більш підходящим елементом, наприклад, <div>, добре знайомим <img>, <blockquote> і, можливо, навіть <canvas> залежно від його вмісту.
Не зупинятися на досягнутому!
Немає необхідності обмежувати ваші <figure> лише зображеннями та прикладами коду. Інший вміст також підходить для використання, включаючи аудіо, відео, графіку (можливо, з використанням <canvas> або <svg>), вірші або таблиці зі статистикою.
Проте використання елементу <figure> не завжди є доцільним. Наприклад, графічний банер не повинен бути верстано з <figure>. Замість цього просто скористайтеся елементом <img>.
Резюме
Як ми показали у цій статті, у елемента <figure> є багато можливостей, пам'ятайте, що це найбільш підходящий елемент для роботи. І ви вже використовуєте його у всіх своїх макетах, чи не так?