CSS / HTML: Как правильно сделать текст курсивом?
что такое правильно способ сделать текст курсивом? Я видел следующие четыре подхода:
<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> тег?
12 ответов:
вы должны использовать разные методы для разных случаев использования:
- если вы хотите подчеркнуть фразу, используйте
<em>.- The
<i>тега новое значение в HTML5, представляющий "промежуток текста в альтернативном голосе или настроении". Поэтому вы должны использовать этот тег для таких вещей, как мысли/Асиды или идиоматические фразы. Спецификация также предлагает названия кораблей (но больше не предлагает названия книг / песен / фильмов; используйте<cite>вместо этого).- если выделенный курсивом текст является частью большего контекста, скажем, вводный абзац, Вы должны прикрепить стиль CSS к большему элементу, т. е.
p.intro { font-style: italic; }
не является неправильным, потому что он не является семантическим. Это неправильно (обычно), потому что это презентационный. Разделение озабоченности означает, что имеющаяся информация должна передаваться с помощью CSS.
именование в целом может быть сложно получить право, и имена классов не являются исключением, но тем не менее это то, что вы должны сделать. Если вы используете курсив, чтобы выделить блок из основного текста, то, возможно, имя класса "flow-distinctive" будет в порядке. Подумайте о повторном использовании: имена классов для категоризации-где еще вы хотели бы сделать то же самое? Это должно помочь вам определить подходящее имя.
включен в HTML5, но ему дана определенная семантика. Если причина, по которой вы отмечаете что-то курсивом, соответствует одной из семантик, определенных в спецификации, было бы целесообразно использовать . Иначе нет.
Я не эксперт, но я бы сказал, что если вы действительно хотите быть семантическим, вы должны использовать словари (RDFa).
это должно привести к чему-то вроде этого:
<em property="italic" href="http://url/to/a/definition_of_italic"> Your text </em>
emиспользуется для представления (люди будут видеть его курсивом) иpropertyиhrefатрибуты связываются с определением того, что такое курсив (для машин).вы должны проверить, есть ли словарь для такого рода вещей, возможно, свойства уже существовать.
дополнительная информация о RDFa здесь:http://www.alistapart.com/articles/introduction-to-rdfa/
tl; dr
правильный способ сделать текст курсивом-игнорировать проблему, пока вы не доберетесь до 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
возможно, он не имеет особого значения и только должен быть выделен курсивом, чтобы отделить его Презентационно от текста, предшествующего ему.
если он не имеет особого значения, то почему он должен быть отделен Презентационно от предшествующего ему текста? этот прогон текста выглядит немного странно, потому что я выделил его без причины.
Я понимаю вашу точку зрения, хотя. Это не редкость для дизайнеров, чтобы производить проекты, которые различаются визуально, без существенного изменения. Я видел это чаще всего с коробками: дизайнеры дадут нам проекты, включая коробки с различными комбинациями цветов, углов, градиентов и теней, без связи между стилями и смыслом содержания.
поскольку эти достаточно сложные стили (с соответствующими проблемами Internet Explorer) повторно используются в разных местах, мы создаем такие классы, как
box-1,box-2, Так что мы можем повторно использовать стили.конкретный пример создания некоторого текстового курсива слишком тривиален, чтобы беспокоиться об этом. Лучше всего оставить такие мелочи для семантических психов, чтобы спорить.
Я думаю, ответ заключается в использовании
<em>когда вы намерение акцент.если при чтении текста для себя, вы обнаружите, что вы используете немного другой голос подчеркнуть точка, то он должен использовать
<em>потому что вы хотели бы, чтобы читатель экрана делал то же самое.если это чисто стильная вещь, например, ваш дизайнер решил, что все ваши
<h2>заголовки будут выглядеть лучше курсивом Garamond, то нет никакой семантической причины включать его в HTML, и вы должны просто изменить CSS для соответствующих элементов.Я не вижу причин использовать
<i>, Если вам специально не нужно поддерживать какой-то устаревший браузер без CSS.
iэлемент не является семантическим, поэтому для чтения с экрана, Googlebot и т. д. он должен быть каким-то прозрачным (так же, какspanилиdivэлементов). Но это не лучший выбор для разработчика, потому что он соединяет слой презентации со слоем структуры - и это плохая практика.
emэлемент (strongтакже) должны всегда использоваться в семантическом контексте, а не в презентационном. Он должен использоваться всякий раз, когда какое-то слово или предложение важно. Просто для примера в предыдущем предложении я должен использоватьemчтобы сделать больший акцент на "должен всегда использоваться" часть. Браузеры предоставляют некоторые свойства CSS по умолчанию для этих элементов, но вы можете и вы должны переопределить значения по умолчанию, если ваш дизайн требует этого, чтобы сохранить правильное семантическое значение этих элементов.
<span class="italic">Italic Text</span>это самый неправильный путь. Прежде всего это неудобно в использовании. Во-вторых, предлагается, чтобы текст был выделен курсивом. И слой структуры (HTML, XML, etc.) не стоит никогда не делайте этого. Презентация всегда должна быть отделена от структуры.
<span class="footnote">Italic Text</span>кажется, это лучший способ для сноски. Это не предполагает, что какая-либо презентация просто описывает наценку. Вы не можете предсказать, что произойдет в будущем. Если сноска вырастет в функции, вы можете быть вынуждены изменить ее имя класса (чтобы сохранить некоторые логики в своем коде).так что всякий раз, когда у вас есть какой-то важный текст использовать
emилиstrongto подчеркните это. Но помните, что эти элементы являются встроенными элементами и не должны использоваться для выделения большого блока текста.используйте CSS, если вы заботитесь только о том, как что-то выглядит, и всегда старайтесь избегать какой-либо дополнительной разметки.
HTML italic text отображает текст в курсивном формате.
<i>HTML italic text example</i>акцент и сильные элементы могут быть использованы для повышения важности определенных слов или предложений.
<p>This is <em>emphasized </em> text format <em>example</em></p>тег выделения должен использоваться, когда вы хотите подчеркнуть точку в своем тексте, а не обязательно, когда вы хотите выделить этот текст курсивом.
см. это руководство для получения дополнительной информации:http://www.snoopcode.com/html/html-text-formating
Я бы сказал, что использовать
<em>чтобы подчеркнуть встроенные элементы. Используйте класс для блочных элементов, таких как блоки текста. CSS или нет, текст все равно должен быть промаркированы. Будь то для семантики или для визуальной помощи, я предполагаю, что вы будете использовать его для чего-то значимого...Если вы подчеркиваете текст по какой-либо причине, вы можете использовать
<em>, или класс, который выделяет курсивом ваш текст.это нормально нарушать правила иногда!
хорошо, первое, что нужно отметить, что
<i>является устаревшим и не должен использоваться<i>не был осужден, но я все еще не рекомендую использовать его-см. комментарии для деталей. Это связано с тем, что он полностью противоречит сохранению презентации в слое презентации, на который вы указали. Точно так же,<span class="italic">кажется, чтобы сломать форму тоже.теперь у нас есть два реальных способа делать вещи:
<em>и<span class="footnote">. Помните, чтоemрасшифровывается как акцент. Если вы хотите сделать ударение на слове, фразе или предложении, вставьте его в<em>теги независимо от того, хотите ли вы Курсив или нет. Если вы хотите изменить стиль каким-то другим способом, используйте CSS:em { font-weight: bold; font-style: normal; }. Конечно, вы также можете применить класс<em>tag: если вы решили, что хотите, чтобы определенные подчеркнутые фразы отображались красным цветом, дайте им класс и добавьте его в CSS:Fancy some <em class="special">shiny</em> text? em { font-weight: bold; font-style: normal; } em.special { color: red; }если вы применяете курсив по какой-то другой причине, перейдите с помощью другого метода и дать раздел класса. Таким образом, вы можете изменить его стиль, когда захотите, без настройки HTML. В вашем примере сноски не должны подчеркиваться-фактически, они должны быть лишены акцента, поскольку смысл сноски заключается в том, чтобы показать неважную, но интересную или полезную информацию. В этом случае вам гораздо лучше применить класс к сноске и сделать его похожим на один из слоев представления-CSS.
используйте, если вам нужны некоторые слова/символы курсивом в содержании без других стилей. Это также помогает сделать контент семантическим.
текстовый стиль лучше подходит для нескольких стилей и без семантической необходимости.
DO
дать атрибут класса, значение, указывающее на характер данных (т. е.
class="footnote"хорошо)создайте таблицу стилей CSS для страницы
определите стиль CSS, который прикреплен к классу, который вы назначаете элементу
.footnote { font-style:italic; }НЕ НАДО
- не используйте
<i>или<em>элементы - они не поддерживаются и слишком тесно связывают данные и представление.- не присваивайте классу значение, указывающее на правила представления (т. е. не используйте
class="italic").
Comments