Как правильно сделать текст курсивом? Я видел следующие четыре подхода:
<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>
тег?
источник
Ответы:
Вы должны использовать разные методы для разных вариантов использования:
<em>
.<i>
Тег имеет новый смысл в HTML5 , представляющий «пролет текста в альтернативном голосе или настроении». Таким образом, вы должны использовать этот тег для таких вещей, как мысли / отступления или идиоматические фразы. Спецификация также предлагает названия кораблей (но больше не предлагает названия книг / песен / фильмов; используйте<cite>
вместо этого).p.intro { font-style: italic; }
источник
i
для названий книг, песен, альбомов или фильмов (которые, по сомнению, будут подходящими для использованияcite
).<i>
не неправильно, потому что это не семантическое. Это неправильно (обычно), потому что это презентационно. Разделение проблем означает, что презентационная информация должна передаваться с помощью CSS.В целом, именование может быть непростым, и имена классов не являются исключением, но, тем не менее, это то, что вам нужно сделать. Если вы используете курсив, чтобы выделить блок из основного текста, тогда, возможно, имя класса «различим по потоку» будет в порядке. Подумайте о повторном использовании: имена классов предназначены для категоризации - где еще вы хотели бы сделать то же самое? Это должно помочь вам определить подходящее имя.
<i>
включен в HTML5, но ему присуща определенная семантика. Если причина, по которой вы помечаете что-то курсивом, соответствует одной из семантик, указанных в спецификации, было бы целесообразно использовать<i>
. В противном случае нет.источник
Я не эксперт, но я бы сказал, что если вы действительно хотите быть семантическим, вы должны использовать словари (RDFa).
Это должно привести к чему-то вроде этого:
em
используются для представления (люди будут видеть его курсив) , аproperty
иhref
атрибуты ссылок на определение того , что является наклонным (для машин).Вы должны проверить, есть ли словарь для такого рода вещей, возможно, свойства уже существуют.
Больше информации о RDFa здесь: http://www.alistapart.com/articles/introduction-to-rdfa/
источник
TLDR
Правильный способ сделать текст курсивом - игнорировать проблему, пока не дойдете до CSS, а затем стилизовать в соответствии с семантикой представления. Первые два варианта, которые вы предоставили, могут быть правильными в зависимости от обстоятельств. Последние два неверны.
Более длинное объяснение
Не беспокойтесь о представлении при написании разметки. Не думай курсивом. Думайте с точки зрения семантики. Если это требует акцента на стресс, то это
em
. Если это касательно основного контента, то этоaside
. Может быть, это будет жирным шрифтом, возможно, это будет курсивом, может быть, это будет флуоресцентный зеленый. Неважно, когда вы пишете разметку.Когда вы дойдете до CSS, у вас уже может быть семантический элемент, который имеет смысл размещать курсивом для всех его вхождений на вашем сайте.
em
хороший пример Но, может быть, вы хотите, чтобы всеaside > ul > li
на вашем сайте курсивом. Вы должны отделить размышления о разметке от размышлений о представлении.Как уже упоминал DisgruntledGoat ,
i
это семантика в HTML5. Тем не менее, семантика кажется мне довольно узкой. Использование, вероятно, будет редким.Семантика
em
в HTML5 изменилась, чтобы подчеркнуть акцент.strong
может быть использован, чтобы показать важность, а также.strong
может быть курсивом, а не жирным шрифтом, если вы хотите его оформить. Не позволяйте таблице стилей браузера ограничивать вас. Вы даже можете использовать таблицу стилей сброса, чтобы перестать думать в рамках настроек по умолчанию. (Хотя есть некоторые оговорки .)class="italic"
плохо. Не используйте это. Это не семантическое и не гибкое вообще. Презентация все еще имеет семантику, просто отличную от разметки.class="footnote"
эмулирует семантику разметки и также неверен. Ваш CSS для сноски не должен быть полностью уникальным для вашей сноски. Ваш сайт будет выглядеть слишком грязно, если каждая часть оформлена по-разному. У вас должно быть несколько визуальных шаблонов, разбросанных по вашим страницам, которые вы можете превратить в классы CSS. Если ваш стиль для ваших сносок и ваших цитат очень похож, то вы должны поместить сходство в один класс, а не повторять себя снова и снова. Вы можете рассмотреть вопрос о принятии практики OOCSS (ссылки ниже).Разделение проблем и семантики велико в HTML5. Люди часто не понимают, что разметка не единственное место, где важна семантика. Существует семантика контента (HTML), но также есть семантика представления (CSS) и семантика поведения (JavaScript). У всех них есть своя отдельная семантика, на которую важно обращать внимание для удобства обслуживания и сохранения СУХОГО состояния.
OOCSS Resources
источник
Если оно не имеет особого значения, почему его нужно отделять от текста, предшествующего ему? Этот фрагмент текста выглядит немного странно , потому что я выделил его курсивом без причины.
Я все же понимаю вашу точку зрения. Для дизайнеров весьма обычно производить проекты, которые изменяются визуально, не изменяя осмысленно. Я видел это чаще всего с блоками: дизайнеры предоставят нам дизайны, включая блоки с различными комбинациями цветов, углов, градиентов и теней, без связи между стилями и смыслом контента.
Потому что это достаточно сложные стили (с сопутствующими вопросами Internet Explorer) повторно используемые в разных местах, мы создаем классы , как
box-1
,box-2
так что мы можем повторно использовать стили.Конкретный пример создания некоторого текстового курсива слишком тривиален, чтобы о нем волноваться. Лучше оставь такие мелочи, чтобы Семантические Наттеры спорили.
источник
Текст курсивом HTML отображает текст курсивом.
Акцент и сильные элементы могут быть использованы для повышения важности определенных слов или предложений.
Тег выделения следует использовать, когда вы хотите выделить точку в вашем тексте, а не обязательно, когда вы хотите выделить этот текст курсивом.
Смотрите это руководство для более: HTML форматирования текста
источник
i
Элемент не является семантическим, так и для чтения с экраном, Googlebot и т.д., он должен быть каким - то прозрачным (так же , какspan
иdiv
элементы). Но это не очень хороший выбор для разработчика, потому что он объединяет уровень представления со слоем структуры - и это плохая практика.em
Элемент (strong
также) должен всегда использоваться в семантическом контексте, а не в презентационном. Это должно использоваться всякий раз, когда какое-то слово или предложение важны. Просто для примера в предыдущем предложении я должен использовать,em
чтобы сделать больший акцент на части «должен всегда использоваться». Браузеры предоставляют некоторые свойства CSS по умолчанию для этих элементов, но вы можете и должны переопределить значения по умолчанию, если ваш дизайн требует, чтобы это сохраняло правильное семантическое значение этих элементов.<span class="italic">Italic Text</span>
это самый неправильный путь. Прежде всего, это неудобно в использовании. Во-вторых, это предполагает, что текст должен быть курсивом. И структурный слой (HTML, XML и т. Д.) Никогда не должен этого делать. Презентация всегда должна быть отделена от структуры.<span class="footnote">Italic Text</span>
кажется, лучший способ для сноски. Он не предлагает никаких презентаций и просто описывает разметку. Вы не можете предсказать, что произойдет в функции. Если в функции появится сноска, возможно, вам придется изменить имя ее класса (чтобы сохранить некоторую логику в вашем коде).Поэтому, когда у вас есть какой-то важный текст, используйте его
em
илиstrong
выделите его. Но помните, что эти элементы являются встроенными элементами и не должны использоваться для выделения больших блоков текста.Используйте CSS, если вы заботитесь только о том, как что-то выглядит, и всегда старайтесь избегать лишней разметки.
источник
Я думаю, что ответ заключается в том, чтобы использовать,
<em>
когда вы намерены подчеркнуть.Если при чтении текста для себя вы обнаружите, что вы используете немного другой голос, чтобы подчеркнуть точку зрения, тогда ее следует использовать,
<em>
потому что вы хотите, чтобы программа чтения с экрана делала то же самое.Если это чисто стилевая вещь, как, например, ваш дизайнер решил, что все ваши
<h2>
заголовки будут выглядеть лучше курсивом Garamond, то нет никакой смысловой причины включать его в HTML, и вам просто нужно изменить CSS для соответствующих элементов.Я не вижу никакой причины для использования
<i>
, если вам не требуется поддержка какого-либо устаревшего браузера без CSS.источник
<i>
что теперь это также семантически полезно.Я бы сказал, использовать,
<em>
чтобы подчеркнуть встроенные элементы. Используйте класс для блочных элементов, таких как блоки текста. CSS или нет, текст все еще должен быть помечен. Будь то для семантики или для визуальной помощи, я предполагаю, что вы будете использовать это для чего-то значимого ...Если вы подчеркиваете текст по ЛЮБОЙ причине, вы можете использовать
<em>
или класс, выделенный курсивом.Нормально иногда нарушать правила !
источник
ОК, первое, что нужно отметить, что
<i>
устарел и не должен использоваться<i>
не устарел, но я все еще не рекомендую использовать его - подробности см. в комментариях. Это потому, что это полностью противоречит сохранению представления на уровне представления, на который вы указали. Точно так же,<span class="italic">
кажется, сломать форму тоже.Так что теперь у нас есть два реальных способа ведения дел:
<em>
и<span class="footnote">
. Помните, чтоem
означает акцент . Если вы хотите сделать акцент на слове, фразе или предложении, вставьте его в<em>
теги независимо от того, хотите ли вы курсив или нет. Если вы хотите изменить стиль каким - либо другим способом, с помощью CSS:em { font-weight: bold; font-style: normal; }
. Конечно, вы также можете применить класс к<em>
тегу: если вы решите, что вы хотите, чтобы определенные выделенные фразы отображались красным, назначьте им класс и добавьте его в CSS:Если вы применяете курсив по какой-либо другой причине, используйте другой метод и задайте разделу класс. Таким образом, вы можете изменить его стиль в любое время, не корректируя HTML. В вашем примере сноски не должны выделяться - на самом деле, они должны быть подчеркнуты, поскольку смысл сноски - показать неважную, но интересную или полезную информацию. В этом случае вам гораздо лучше применить класс к сноске и сделать его похожим на один в уровне представления - CSS.
источник
<i>
не был объявлен устаревшим<i>
не устарело, но спецификация HTML4 гласит: «Хотя не все они устарели, их использование не рекомендуется в пользу таблиц стилей»<i>
используется для обозначения «диапазона текста альтернативным голосом или настроением».<i>
с каким-то семантическим значением. Лично я думаю, что они теперь запутали проблему, но они все еще говорят, что «авторам рекомендуется рассмотреть, могут ли другие элементы быть более применимыми, чемi
элемент, например,em
элемент для выделения ударения».<i>
и когда использовать<span class="semantic-meaning">
… они, кажется, подразумевают, что вы должны использовать<i>
для одного конкретного случая, когда семантика еще более желательна, что мне кажется неприличным - вы все еще добавляете код представления в семантический слой. Итак, вы правы: это не устарело, но, исходя из того, что я прочитал, я не могу честно рекомендовать это тоже.Используйте <em>, если вам нужно несколько слов / символов курсивом в контенте без других стилей. Это также помогает сделать контент семантическим.
text-style
лучше подходит для нескольких стилей и не требует семантической необходимости.источник
ДЕЛАТЬ
Присвойте атрибуту класса значение, указывающее на характер данных (т.е.
class="footnote"
это хорошо)Создайте таблицу стилей CSS для страницы
Определите стиль CSS, который присоединен к классу, который вы назначаете элементу
.footnote { font-style:italic; }
НЕ
<i>
или<em>
элементы - они не поддерживаются и связывают данные и представление слишком близко.class="italic"
).источник
<i>
и<em>
есть в HTML5. Ваш номер 2 в разделе «Не делать» верен, но номер 1 в разделе «Делать» искажен - неправильно маркировать сноску всего класса, если другие элементы, которые не будут сносками, также будут выделены курсивом. класс, хотя есть класс, который указывает на характер данных, это хорошо. Однако таблица классов и стилей не всегда необходима, особенно если курсивом выделено только несколько элементов.