Статьи

Дополнительная семантика HTML5: изменения в существующих функциях

htmlcss2thumb

Ниже приводится выдержка из нашей книги « HTML5 и CSS3 для реального мира», 2-е издание , написанной Алексисом Гольдштейном, Луи Лазарисом и Эстель Вейль. Копии продаются в магазинах по всему миру, или вы можете купить их в электронном виде здесь .

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

Мы уже рассмотрели некоторые изменения (например, объявление doctype, кодировка символов и типы содержимого). Давайте посмотрим на другие существенные изменения, внесенные в спецификацию HTML5.

Слово «Устаревший» устарело

В предыдущих версиях HTML и XHTML элементы, которые больше не были рекомендованы для использования (и поэтому удалены из спецификации), считались «устаревшими». В HTML5 больше не существует такой вещи, как устаревшие элементы; используемый сейчас термин «устарел».

Устаревшие элементы делятся на две основные категории: «соответствующие» устаревшие функции и «не соответствующие» устаревшие функции. Соответствующие функции будут выдавать предупреждения в валидаторе, но все равно будут поддерживаться браузерами. Таким образом, вы можете использовать их, но лучше избегать их использования.

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

W3C имеет описание этих функций, с примерами.

Блокировать элементы внутри ссылок

Хотя в прошлом большинство браузеров хорошо справлялись с этой ситуацией, на самом деле никогда нельзя было разместить элемент уровня блока (например, div ) внутри элемента. Вместо этого для создания корректного HTML вам придется использовать несколько элементов a и стилизовать группу так, чтобы она отображалась как один блок.

В HTML5 вам теперь разрешено оборачивать практически все в элемент, не беспокоясь об ошибках валидации. Единственный контент блока, который вы не можете обернуть элементом — это другие интерактивные элементы, такие как элементы формы, кнопки и другие элементы a .

Жирный текст

Внесены некоторые изменения в семантическое определение жирного текста в HTML5. Существуют два способа сделать текст жирным в большинстве браузеров: с помощью элемента b или элемента strong .

Хотя элемент b никогда не считался устаревшим, до HTML5 его не поощряли в пользу strong . Элемент b ранее был способом сказать «сделать этот текст выделенным жирным шрифтом». Поскольку предполагается, что HTML полностью связан со смыслом содержимого, оставляя презентацию CSS, это было неудовлетворительно.

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

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

Текст, выделенный курсивом

Наряду с изменениями элементов b и strong были внесены изменения в способ определения элемента i в HTML5.

Ранее элемент i использовался для простой визуализации выделенного текста. Как и в случае с b , это определение было неудовлетворительным. В HTML5 определение было обновлено до «диапазона текста альтернативным голосом или настроением, или иным образом смещенного по сравнению с обычной прозой, что указывает на другое качество текста». Таким образом, внешний вид текста не имеет ничего общего с смысловой смысл, хотя он вполне может быть курсивом — это решать вам.

Примером содержимого, которое можно сместить с помощью тегов i может быть идиоматическая фраза из другого языка, например, reductio ad absurdum , латинская фраза, означающая « доведение до абсурда». Другими примерами может быть текст, представляющий последовательность сновидений в часть беллетристики, или научное название разновидности в статье журнала.

Элемент em не изменился, но его определение было расширено для пояснения его использования. Это все еще относится к тексту, который выделен, как было бы в разговорной речи. Например, следующие две фразы имеют одинаковую формулировку, но их значения меняются из-за разного использования em :

 <p>Harry's Grill is the best <em>burger</em> joint in town.</p> <p>Harry's Grill <em>is</em> the best burger joint in town.</p> 

В первом предложении, поскольку подчеркивается слово «бургер», значение предложения фокусируется на обсуждаемом типе «соединения». Во втором предложении акцент делается на слове «есть», поэтому акцент в предложении переносится на вопрос о том, действительно ли гриль Гарри является лучшим из всех гамбургеров в городе.

Ни i ни em следует использовать для обозначения названия публикации; вместо этого вы должны использовать cite .

Из всех четырех элементов, обсуждаемых здесь ( b , i , em и strong ), единственным, который придает контекстуальное значение своему содержанию, является strong элемент.

Большой и маленький текст

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

Ранее small предназначался для описания «текста мелким шрифтом». В HTML5 он представляет «побочные комментарии, такие как мелкий шрифт». Некоторые примеры, в которых можно использовать small , включают информацию в тексте нижнего колонтитула, мелком шрифте, а также в положениях и условиях. Небольшой элемент следует использовать только для коротких текстов. Таким образом, вы не будете использовать small чтобы разметить тело целой страницы «условий использования».

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

Например, нижний колонтитул The HTML5 Herald содержит уведомление об авторских правах. Так как это по сути законный мелкий шрифт, он идеально подходит для small элемента:

 <small>&copy; SitePoint Pty. Ltd.</small> 

cite для воспаленных глаз

Элемент cite был первоначально переопределен в HTML5, что сопровождалось некоторыми противоречиями. В HTML4 элемент cite представлял собой «цитату или ссылку на другие источники». В рамках этого определения спецификация позволяла пометить имя человека с помощью cite (в случае цитаты, приписываемой человеку, для пример).

Более ранние версии спецификации HTML5 запрещали использование cite для имени человека, что явно противоречит принципу обратной совместимости. Теперь спецификация вернулась к более сходному определению с оригинальным, определив ссылку как «ссылку на творческое произведение. Оно должно включать название произведения или имя автора (человека, людей или организации), или ссылку на URL, или ссылку в сокращенной форме ».

Вот пример, взятый из спецификации:

 <p>In the words of <cite>Charles Bukowski</cite> - <q>An intellectual says a simple thing in a hard way. An artist says a hard thing in a simple way.</q></p> 

Описание (не определение) Списки

Существующий элемент dl (список определений), а также связанные с ним дочерние элементы dt (term) и dd (description) были переопределены в спецификации HTML5. Ранее, в дополнение к терминам и определениям, спецификация позволяла элементу dl разметить диалог, но спецификация теперь запрещает это.

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

Вот пример, использующий термины CSS и их определения:

 <dl> <dt>Selector:</dt> <dd>The element(s) targeted.</dd> <dt>Property:</dd> <dd>The feature used to add styling to the targeted element, defined before a colon.</dd> <dt>Value:</dd> <dd>The value given to the specified property, declared after the colon.</dd> </dl>