Каков правильный способ сделать текст курсивом? Я видел следующие четыре подхода:
<i>Italic Text</i>
<em>Italic Text</em>
<span class="italic">Italic Text</span>
<span class="footnote">Italic Text</span>
<i>
Это "старый способ". <i>
не имеет смыслового значения и только передает эффект презентации текста курсивом. Насколько я вижу, это явно неправильно, потому что это не семантично.
<em>
Это использует семантический знак для чисто презентационных целей. Просто случается, что <em>
по умолчанию выделяет текст курсивом, поэтому его часто используют те, кто знает, что <i>
следует избегать, но которые не знают его семантического значения. Не весь курсивный текст выделен курсивом, потому что он подчеркивается. Иногда это может быть полная противоположность, как побочная заметка или шепот.
<span class="italic">
Для размещения презентации используется класс CSS. Это часто рекламируется как правильный путь, но опять-таки это кажется мне неправильным. По-видимому, это не означает более семантического значения, которое <i>
. Но, его сторонники плачут, гораздо легче изменить весь ваш курсивный текст позже, если вы, скажем, захотите его полужирным шрифтом. Но это не так, потому что тогда мне останется класс под названием "курсив", который отобразит текст жирным шрифтом. Кроме того, непонятно, почему я когда-либо хотел бы изменить весь курсивный текст на своем веб-сайте или, по крайней мере, мы можем думать о случаях, когда это нежелательно или необходимо.
<span class="footnote">
Используется класс CSS для семантики. Пока что это лучший способ, но на самом деле у него две проблемы.
-
Не весь текст имеет достаточный смысл, чтобы гарантировать семантическую разметку. Например, выделен курсивом текст внизу страницы на самом деле сноска? Или это в стороне? Или что-то еще. Возможно, это не имеет особого значения, и нужно только выделить курсивом, чтобы отделить его от текста, предшествующего ему.
-
Семантическое значение может измениться, если оно отсутствует в достаточной силе. Допустим, я пошел с "сноской", основанной не более чем на том, что текст находится внизу страницы. Что произойдет, когда через несколько месяцев я хочу добавить еще текст внизу? Это уже не сноска. Как мы можем выбрать семантический класс, который менее общий, чем
<em>
, но избегает этих проблем?
Резюме
Похоже, что требование семантики кажется чрезмерно обременительным во многих случаях, когда желание сделать что-то курсивное не означает, что оно несет семантический смысл.
Кроме того, желание отделить стиль от структуры привело к тому, что CSS был рекламирован как замена <i>
, когда бывают случаи, когда это было бы фактически менее полезным. Таким образом, это оставляет меня обратно с скромным тегом <i>
и задается вопросом, является ли этот ход мысли причиной, по которой он оставлен в спецификации HTML5?
Есть ли хорошие сообщения в блоге или статьи на эту тему? Возможно, те, кто участвует в решении сохранить/создать тег <i>
?