В чем разница между <b> и <strong>, <i> и <em> в HTML / XHTML? Когда следует использовать каждый из них?
По крайней мере, на данный момент все, что я видел в StackOverflow, было выделено жирным шрифтом с использованием элемента <b>.






<b> и <i> являются явными - они выделяют жирный шрифт и курсив соответственно.
<strong> и <em> являются семантическими - они указывают, что заключенный текст должен быть каким-то образом «сильным» или «подчеркнутым», обычно полужирным и курсивом, но позволяет управлять стилем через CSS. Следовательно, они предпочтительны на современных веб-страницах.
Хорошее объяснение. С другой стороны, в HTML 5 <i> и <b> также являются семантическими, а не явными. Вздох.
Они? Я отстал от времени ...!
Да, лучшее объяснение, которое я читал, - stellify.net/…
b и i. Это теги, которые вы должны использовать, когда вам нужно привлечь внимание к части прозы или компенсировать обычную прозу, без, передающий акцент (em), важность (для strong) или релевантность (для mark). b предназначен для ключевых слов, названий продуктов, ключевых слов и т. д., А i - для технических терминов, мыслей, фраз и т. д. Честно говоря, ИМО, между ними должно быть большее различие.
Жаль, что текст (и заголовок) на stellify.net совершенно не читается на большинстве дешевых офисных мониторов и настроек ^^ (отсутствие контраста просто ошеломляет)
Итак, какой из них предпочтительнее на современных веб-страницах? <b> и <i>?
@Shafizadeh Для чего?
<strong> и <em> добавляют вашему документу дополнительное семантическое значение. Так уж получилось, что они также придают вашему тексту полужирный шрифт и курсив.
Конечно, вы можете изменить их стиль с помощью CSS.
<b> и <i>, с другой стороны, применяют только стили шрифтов и больше не должны использоваться. (Потому что вы должны форматировать с помощью CSS, и если бы текст был действительно важен, вы, вероятно, все равно сделали бы его «сильным» или «подчеркнутым»!)
Надеюсь, это имеет смысл.
если вы скажете, что <b> и <i> больше не должны использоваться, то как насчет старого браузера, который не поддерживает <em> и <strong>?
@Nirman Если кто-то использует старый браузер для навигации по сети, у него уже есть много проблем с точки зрения визуализации и безопасности. По этой причине я считаю, что программисты и дизайнеры больше не должны поддерживать старые браузеры.
Примечание: если мы говорим старые браузеры, мы имеем в виду Netscape 3 и IE2 (IE3 и NS4 уже поддерживают <strong> и <em>). Если вам действительно нужно поддерживать эти браузеры 20-го века, у вас действительно большие проблемы.
<b> and <i> on the other hand only apply font styling and should no longer be used. Официальная документация HTML5 утверждает обратное. Нужна цитата?
Этот ответ был опубликован примерно за 6 лет до выпуска HTML5!
@James, это не означает, что вы не можете: а) обновить его новой информацией, б) отредактировать, чтобы выделить, к какому стандарту / версии он относится, с пометкой, что он устарел.
<b> и <i> следует избегать, потому что они описывают стиль текста. Вместо этого используйте <strong> и <em>, потому что это описывает семантику (значение) текста.
Как и все в HTML, вы должны думать не о том, как вы хотите Посмотрите, а о том, что вы на самом деле иметь в виду. Конечно, он может быть выделен жирным шрифтом и курсивом для вас, но не для программы чтения с экрана.
Совершенно неверно, не следует избегать <b> и <i>. В HTML5 они имеют семантическое значение.
"Они имеют тот же эффект. Однако XHTML, более чистая и новая версия HTML, рекомендует использовать тег <strong>. Сильный - лучше, потому что его легче читать - его значение яснее. Кроме того, <strong> передает смысл, показывая текст сильно - в то время как <b> (жирный шрифт) передает метод - выделение текста жирным шрифтом. С сильным, ваш код по-прежнему имеет смысл, если вы используете таблицы стилей CSS, чтобы изменить методы создания сильного текста.
То же самое касается разницы между <i> и <em> ».
Google dixit:
http://wiki.answers.com/Q/What_is_the_difference_between_HTML_tags_b_and_strong
б или я означает, что вы хотите, чтобы текст был выделен жирным шрифтом или курсивом. сильныйсильный> или Эм означает, что вы хотите, чтобы текст отображался таким образом, который пользователь понимает как «важный». По умолчанию используется жирный шрифт, а жирный - курсив, но в некоторых других культурах может использоваться другое сопоставление.
Подобно строкам в программе, б и я будут «жестко закодированы», в то время как сильныйсильный> и Эм будут «локализованы».
Как говорили другие, <b> и <i> являются явными (т.е. «сделайте этот текст жирным»), тогда как <strong> и <em> являются семантическими (т.е. «этот текст следует выделить»).
В контексте современного веб-браузера трудно увидеть разницу (кажется, что оба они дают одинаковый результат, не так ли?), Но подумайте о программах чтения с экрана для слабовидящих. Если программа чтения с экрана наткнется на тег <i>, она не будет знать, что делать. Но если он встречает тег <em>, он знает, что все, что находится внутри, должно быть подчеркнуто слушателем. И в этом вы получаете практическую разницу.
<b> and <i> are explicit (i.e. "make this text bold"), эм. Официальные документы HTML5 говорят об обратном. Нужна цитата?
Я опубликовал этот ответ в ноябре 2008 года. HTML5 был выпущен в 2014 году. Вы честно просите меня процитировать в моем ответе ссылку на то, что вышло восемь лет спустя ??
У них есть такой же эффект на обычных движках рендеринга веб-браузера, но между ними есть принципиальная разница.
Как пишет автор в сообщение со списком обсуждений:
Подумайте о трех разных ситуациях:
"Жирный" - это стиль. Когда вы говорите "смелое слово", люди в основном знают, что это означает добавлять больше, скажем "чернил", вокруг букв, пока они не станут выделяться. больше среди остальных букв.
Это, к сожалению, ничего не значит для слепого. На мобильных телефонах и других КПК текст уже выделен жирным шрифтом, потому что разрешение экрана очень маленькое. Вы не можете выделить жирный шрифт, не напортачите.
<b> - это стиль - мы знаем, как должен выглядеть жирный шрифт.
<strong>, но это указание на то, как что-то следует понимать. «Сильный» может (и часто так) означать «полужирный» в браузере, но он также может означать более низкий тон для говорящей программы, такой как Jaws (для слепых), или быть представлен подчеркиванием (поскольку вы не можете выделить жирным шрифтом жирным шрифтом) на Palm Pilot.
HTML никогда не предназначался для стилей. Сделайте некоторые поиски для "Тим Бернерс-Ли" и «семантическая сеть».<strong> является семантическим - он описывает текст, который он окружает (например, "этот текст должен быть более сильным, чем остальной отображаемый вами текст"), в отличие от описания как текста, который он окружает должен отображаться (например, "этот текст должен быть жирным").
Обратите внимание, что <b> и <i> не рекомендуют нет в HTML5. Их новое использование - семантическое представление стилей (или предполагаемого представления), тогда как <strong> и <em> представляют состав. Вы должны прочитать stellify.net/…
Отличный ответ, но я бы сказал, что «вы не можете выделить жирным» неверно, потому что вы предполагаете, что это логическая концепция, когда font-weight: использует более вариативный подход. Теперь, когда существуют высококачественные экраны, есть уровни смелости.
@TravisO Я полагаю, он говорил об особых технических ограничениях Palm Pilot.
Я не верю, что связка букв имеет какое-либо внутреннее значение, <b> может иметь точно такое же семантическое значение, что и <strong>, если мы так решим. Что решили создатели читателей, относятся ли они к ним по-разному или точно так же?
@deathApril Но они есть! В них есть смысл! HTML не определяется тем, во что вы верите или что решаете.
Ссылка на сообщение в вашем списке обсуждений мертва. Есть еще один ресурс?
Информативный ответ, но если я правильно понял, единственная практическая разница - это когда дело доходит до программного обеспечения для преобразования текста в речь? Несмотря на это, мне кажется бесполезным иметь более одного тега для чего-то вроде жирного шрифта. Когда кто-то посещает веб-сайт (а), он не видит, какой тег используется, следовательно, нет никакой разницы.
@TravisO font-weight - это CSS.
@poepje: Если бы представление было все, что имело значение, а семантика не беспокоила бы, тогда да, не было бы большой разницы.
@poepje .... но семантика ВСЕГДА должна вызывать беспокойство. Никогда не знаешь, когда захочешь изменить назначение или адаптировать что-то вроде веб-страницы для более общих целей. Поскольку некоторые технологии таблиц стилей / разметки делать обрабатывают теги <b> и <strong> по-разному, у вас нет гарантии, что никогда не будет никакой разницы, даже если вы изначально не строить планы, чтобы разметка была видна разными технологиями. (Особенно в случае Интернета, где у вас нет абсолютно никакого способа узнать, как люди будут использовать ваш контент.)
Этот Программная инженерияотвечать теперь также хорошо резюмирует ситуацию.
Мне нравится пример: более низкий тон для разговорной программы типа «Челюсти» (для слепых).
@splattne: "<strong> однако это указание на то, как что-то следует понимать." Сильный "может (и часто делает) означать" жирный "в браузере, но это также может означать более низкий тон для говорящей программы, такой как Jaws ( для слепых). И сильным на Palm Pilot может быть подчеркивание (поскольку вы не можете выделить жирный шрифт) ". Это то же самое для <Em>? <Em> обычно отображается курсивом, но с таким же семантическим потенциалом для других визуализаций в определенных ограниченных контекстах?
@NatanYellin Почему эти теги для стиля не удаляются из HTML5, если говорят, что HTML только для структуры? Я считаю, что это непоследовательно. Теги center, strike и u удалены из стандарта.
<b> и <i> оба связаны со стилем, тогда как <em> и <strong> являются семантическими. В HTML 4 первые классифицируются как элементы стиля шрифта, а вторые как элементы фразы.
Как вы правильно указали, <i> и <em> часто считаются похожими, потому что браузеры часто отображают их курсивом. Но согласно спецификациям, <em>указывает на акцент и <strong>указывает на более сильный акцент, что довольно ясно, но часто неправильно интерпретируется. С другой стороны, различие между использованием <i> или <b> на самом деле является вопросом стиля.
strong указывает не на «более сильный акцент», а скорее на «важность». Для более сильный акцент вложите элемент em в другой элемент em.
@ TestSubject528491, если вы перейдете по ссылке для элементы фразы, которую я использовал выше, вы увидите, что я только что процитировал спецификацию. Я не думаю, что это противоречит семантике важности или что вложение двух em подчеркивается в пределах акцента, что, как я понимаю, вы предлагали.
Я думаю, что спецификация HTML5 просто проводит большее различие между ними. В моей интерпретации «ударение» означает ударение в тоне голоса. Например, "Вы хотите джинсы ТЕ?" против "Вы хотите КУПИТЬ эти джинсы?" имеют разные значения из-за расстановки акцентов. OTOH, "Важность" не влияет на размещение. Например, "ПРЕДУПРЕЖДЕНИЕ: берегись собаки!" имел бы тот же смысл, если бы важность была удалена.
<b> and <i> are both related to style эм. Официальные документы HTML5 говорят об обратном. Нужна цитата?
@vaxquis, ссылка на которую приведена выше для HTML 4: <b> и <i> - это элементы стиля шрифта, а <em> и <strong> - элементы фразы. Есть предложения по улучшению этого? Для полноты, а также из-за того, что ваш комментарий не содержал цитаты, в HTML 5.2 все эти элементы описаны в формулировка содержания.
@Kariem HTML 4.01, ну, немного датирован? В документе HTML 5.2 (и более ранней версии тоже) говорится: «Элемент b представляет собой фрагмент текста, на который обращается внимание в утилитарных целях, без передачи какой-либо дополнительной важности и без каких-либо последствий для альтернативного голоса или настроения», «Элемент i представляет отрезок текста другим голосом или настроением или иным образом смещен от обычной прозы таким образом, чтобы указать другое качество текста "; также ничего не говорится о принадлежности к визуальный стиль - оба описаны семантически. Они даже упоминают, что визуальный стиль не гарантируется!
@vaxquis, пожалуйста, дайте ссылку на свои цитаты, если вы хотите серьезно обсудить это. Я не понимаю, каким образом вам (1) нужна ссылка на очевидную категоризацию в связанной спецификации и (2) после указания, что эта информация есть, вы обсуждаете возраст спецификации, связанной в ответе, написанном около 11 лет назад . Что вы хотите обсудить? Хотите предложить правку? Есть ли что-то, что я написал неправильно в соответствии со связанной спецификацией?
@Kariem w3.org/TR/html52/textlevel-semantics.html#elementdef-b, w3.org/TR/html52/textlevel-semantics.html#elementdef-i - Я просто подумал, что ссылки будут для вас очевидны. Да, на самом деле вы могли бы просто улучшить свой ответ, включив в него спецификации HTML 5.x и упомянув о том, что спецификация HTML значительно изменилась по сравнению с 4.01, поэтому b и i больше не являются визуально стилистическими.
Обычно вам следует избегать <b> и <i>. Они были введены для компоновки страницы (изменения внешнего вида) в ранних версиях HMTL до создания CSS, как, например, удаленный тег font, и в основном сохранялись для обратной совместимости, а также потому, что некоторые форумы допускают встроенный HTML, а это простой способ изменить внешний вид текста (например, BBCode с использованием [i], вы можете использовать <i> и так далее).
С момента создания CSS, макетирование больше не нужно делать в HTML, поэтому CSS был создан в первую очередь (HTML == Структура, CSS == Макет). Эти теги также могут исчезнуть в будущем, в конце концов, вы можете просто использовать теги CSS и span, чтобы сделать текст полужирным / курсивом, если вам нужен «бессмысленный» вариант шрифта. HTML 5 по-прежнему разрешает их, но объявляет, что маркировка текста таким образом имеет нет смысла.
<em> и <strong>, с другой стороны, только говорят, что что-то «подчеркнуто» или «сильно подчеркнуто», они оставляют это полностью открытым для браузера, как это визуализировать. Большинство браузеров будут отображать em курсивом, а strong жирным шрифтом, как предлагает стандарт по умолчанию, но они не обязаны это делать (они могут использовать разные цвета, размеры шрифтов, шрифты и т. д.). Вы можете использовать CSS, чтобы изменить поведение по своему желанию. Вы можете сделать em жирным, если хотите, и strong жирным и красным, например.
<b> и <i> НЕ являются устаревшими в HTML 4 и по-прежнему полностью поддерживаются даже в готовящемся к выпуску HTML 5. <em> и <strong> не заменяют их. См. Также w3.org/TR/html401/index/elements.html
@thomasrutter Они все еще находятся в HMTL5, но с другим значением и с очень подробным объяснением того, как их использовать или, скорее, как их не использовать. Обратите внимание, что эти теги не имеют значения (полужирный и курсив - это не значения, это инструкции по дизайну, а HMTL о значении, CSS - это только дизайн) - HTML описывает, что такое текст, а не то, как его отображать (это было разделено после HMTL3 по уважительной причине).
Хотя <strong> и <em>, конечно, более семантически верны, есть определенные законные причины для использования тегов <b> и <i> для контента, написанного заказчиком.
В таком содержании слова или фразы могут быть выделены жирным шрифтом или курсивом, и, как правило, не нам анализировать семантическое обоснование такого выделения жирным шрифтом или курсивом.
Кроме того, такое содержимое может относиться к выделенным жирным шрифтом и курсивом словам и фразам, чтобы передать конкретное значение.
Примером может служить вопрос на экзамене по английскому языку, в котором студенту предлагается заменить слово, выделенное жирным шрифтом.
"более семантически правильный"? Что ты имеешь в виду? Вы читали спецификацию HTML5 по тегам b / i?
Как утверждали другие, разница в том, что стили шрифтов с жестким кодом <b> и <i>, тогда как <strong> и <em> диктуют семантическое значение, причем стиль шрифта (или интонация говорящего браузера, или что-то еще) должен определяться в то время, когда текст отображается (или произносится).
Вы можете думать об этом как о разнице между «физическим» стилем шрифта и «логическим» стилем, если хотите. Позже вы можете захотеть изменить способ отображения текста <strong> и <em>, например, изменив свойства в таблице стилей, чтобы добавить изменения цвета и размера, или даже полностью использовать разные шрифты. Если вы использовали «логическую» разметку вместо жестко запрограммированной «физической» разметки, тогда вы можете просто изменить свойства отображения в одном месте в каждой таблице стилей, а затем все страницы, ссылающиеся на эту таблицу стилей, изменяются автоматически, без необходимости их редактировать.
Довольно гладко, да?
Это также является причиной определения подстилей (на которые ссылается свойство style= в текстовых тегах) для абзацев, ячеек таблицы, текста заголовка, заголовков и т. д. И использования тегов <div>. Вы можете определить физическое представление своих логических стилей в таблице стилей, и изменения автоматически отражаются на веб-страницах, которые ссылаются на эту таблицу стилей. Хотите другое представление исходного кода? Измените шрифт, размер, вес, интервал и т. д. Для своего «кодового» стиля.
Если вы используете XHTML, вы даже можете определять свои собственные семантические теги, и ваша таблица стилей будет выполнять преобразования в стили и макеты физических шрифтов за вас.
Вы можете использовать таблицы стилей, чтобы полностью изменить способ рендеринга <b> и <i>. Довольно гладко, да?
b и i ничего не кодируют жестко. Как и любой HTML-тег, у них есть стиль CSS по умолчанию, и, как и в случае с любым другим тегом, вы можете изменить его так, как хотите.
Я использую и <strong>, и <b>, на самом деле, именно по причинам, указанным в этой цепочке ответов. Бывают случаи, когда выделение жирным шрифтом некоторого текста просто выглядит лучше, но это не обязательно семантически более важно, чем остальная часть предложения. Вот пример со страницы, над которой я сейчас работаю:
"Получает <strong> все </strong> книги о <b> лакроссе </b>".
В этом предложении слово «все» очень важно, а «лакросс» - в меньшей степени - я просто хотел, чтобы оно было выделено жирным шрифтом, потому что оно представляет поисковый запрос, поэтому я хотел визуального разделения. Если вы просматриваете страницу с помощью программы чтения с экрана, я действительно не думаю, что нужно изо всех сил выделять слово «лакросс».
Я бы подумал, что большинство веб-разработчиков используют один из другого, но оба хороши - <b> определенно не является устаревшим, как утверждают некоторые люди. Для меня это просто тонкая грань между визуальной привлекательностью и смыслом.
Мы используем тег <strong> для текста, который имеет высокий приоритет для целей SEO, например, название продукта, название компании и т. д., А <b> simple выделяет его жирным шрифтом.
Точно так же мы используем <em> для текста, который имеет высокий приоритет для SEO, а <i>, чтобы сделать текст просто курсивом.
Некоторые HTML-теги действительно имеют применение для SEO. Мета-описание, мета-робот или каноническая ссылка, чтобы назвать некоторые из них. Насколько нам известно, strong / em не входит в их число ни в теории, ни на практике.
Используйте их только в том случае, если использование классов стилей CSS по какой-либо причине неуместно или невозможно (например, системы блогов, разрешают использование только некоторых тегов в сообщениях и, в конечном итоге, встроенных стилей). Другая причина - поддержка очень старых браузеров (некоторые мобильные устройства?) Или примитивных поисковых систем (которые дают баллы за теги <b> или <strong> вместо анализа стилей CSS).
Если вы можете определять стили CSS, используйте их.
Вот краткое изложение определений вместе с предлагаемым использованием:
<b> ... фрагмент текста, на который обращается внимание в утилитарных целях, без передачи какой-либо дополнительной важности и без подразумеваемого альтернативного голоса или настроения, например ключевые слова в аннотации документа, названия продуктов в обзоре, действенные слова в интерактивном тексте программное обеспечение, управляемое программным обеспечением, или статья lede.
<strong> ... теперь представляет собой важность, а не акцент.
<i> ... отрезок текста с другим голосом или настроением, или иным образом смещенный от обычной прозы способом, указывающим другое качество текста, например таксономическое обозначение, технический термин, идиоматическая фраза из другого языка, мысль или Название корабля в Западные тексты.
<em> ... указывает на выделение.
(Это все прямые цитаты из источников W3C с моим акцентом. См .: https://rawgithub.com/whatwg/html-differences/master/Overview.html#changed-elements и http://www.w3.org/TR/html401/struct/text.html#h-9.2.1 для оригиналов)
<em> и <strong> потребляют больше полосы пропускания, чем <i> и <b>.
Они также требуют большего набора текста (если они не создаются автоматически).
Они также загромождают экран редактора большим количеством текста. Мне кажется, я припоминаю, что программистам нравятся исходные файлы меньшего размера, если они одинаковы. (И давайте будем честными, они такие же. Да, есть "технические" (<i> кашель </i>, кхм, извините) различия, но это в основном фальшивка.)
С любым из вышеперечисленных тегов вы можете использовать таблицы стилей, чтобы настроить их внешний вид по своему усмотрению, если вам нужно, чтобы они выглядели иначе, чем их визуализация по умолчанию.
Лол, это должен быть принятый ответ. (HHOS). Ваш - самый практичный и правильный ответ на всей этой странице, даже если это немного шутка. Вся эта «семантика» - это для начала глупая игра. Все мы знаем, что любой, кто задает этот вопрос, работает здесь с основными поставщиками браузеров, такими как Chrome, Firefox, IE и т. д. Мы просто хотим знать, в чем могут заключаться различия настоящий, действительный, а не о том, что обсуждает комитет в обилие свободного времени.
<strong> и <em> абстрактны (именно это люди имеют в виду, когда говорят, что они семантические).
<b> и <i> - особые способы сделать что-то «сильным» или «подчеркнутым».
Аналогия:
Оба <strong> относятся к <b>, а <em> относятся к <i>.
как
«транспортное средство» означает «джип»
Я не понимаю, почему этот ответ был отклонен. Многие другие ответы с аналогичным содержанием были хорошо приняты.
Элементы форматирования HTML:
HTML также определяет специальные элементы для определения текста со специальным значением. HTML использует такие элементы, как <b> и <i> для форматирования вывода, например полужирный или курсивный текст.
Полужирный шрифт HTML и строгое форматирование:
The HTML <b> element defines bold text, without any extra importance.
<b>This text is bold</b>
The HTML <strong> element defines strong text, with added semantic "strong" importance.
<strong>This text is strong</strong>
HTML курсив и выделенное форматирование:
The HTML <i> element defines italic text, without any extra importance.
<i>This text is italic</i>
The HTML <em> element defines emphasized text, with added semantic importance.
<em>This text is emphasized</em>
The HTML <b> element defines bold text, without any extra importance.The HTML <i> element defines italic text, without any extra importance. эмм. Официальные документы HTML5 говорят об обратном. Нужна цитата?
Теги <i>, <b>, <em> и <strong> традиционно являются репрезентативными. Но им дали Семантическое значение новый в HTML5.
<i> и <b> использовались для стиля шрифта в HTML4. <i> был выделен курсивом, а <b> - жирным. В HTML5 тег <i> имеет новое семантическое значение «альтернативный голос или настроение», а тег <b> имеет значение стилистически офсетный.
Примеры использования тега <i>: таксономическое обозначение, технический термин, идиоматическая фраза из другого языка, транслитерация, мысль, названия кораблей в западных текстах. Такие как -
<p><i>I hope this works</i>, he thought.</p>
Примеры использования тега <b>: ключевые слова в отрывке из документа, названия продуктов в обзоре, ключевые слова в интерактивном текстовом программном обеспечении, заголовок статьи.
Следующий примерный абзац стилистически смещен от абзацев, следующих за ним.
<p><b class = "lead">The event takes place this upcoming Saturday, and over 3,000 people have already registered.</b></p>
<em> и <strong> имели значение акцента и сильного акцента в HTML4. Но в HTML5 <em> означает подчеркнутый акцент, а <strong> означает большое значение.
В следующем примере должно произойти языковое изменение при чтении слова до ...
<p>Make sure to sign up <em>before</em> the day of the event, September 16, 2016</p>
В том же примере мы можем использовать тег <strong> следующим образом:
<p>Make sure to sign up <em>before</em> the day of the event, <strong>September 16, 2016</strong></p>
чтобы придать важность дате мероприятия.
Ссылка MDN:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/b
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/i
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/em
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strong
Для полужирного текста с использованием тега <b>
Для текста важно использовать тег <strong>
Для текста курсивом с использованием тега <i>
Для выделенного текста с помощью тега <em>
Я собираюсь рискнуть сделать здесь исторический и практический хитрый подход:
Да, согласно спецификациям, <strong> имел семантическое значение в HTML4, а <b> имел строго презентационное значение.
Да, когда появился HTML5, для b и i было введено новое семантическое значение, которое немного отличалось.
Да, W3C рекомендует - в основном - TL, DR; не используйте b и i.
You should always bear in mind that the content of a b element may not always be bold, and that of an i element may not always be italic. The actual style is dependent on the CSS style definitions. You should also bear in mind that bold and italic may not be the preferred style for content in certain languages. You should not use b and i tags if there is a more descriptive and relevant tag available.
НО:
В реальном мире в Интернете есть огромное количество существующего HTML, который никогда не будет обновляться. В реальном мире Интернет должен учитывать контент, сгенерированный, скопированный и вставленный между обширной сетью программного обеспечения и CMS-системами, которые имеют разные команды разработчиков и были созданы в разные эпохи.
Так что, если вы пишете HTML или создаете систему, которая пишет HTML для других людей - конечно - определенно используйте <strong> вместо <b> в значении «сильно подчеркнутый», потому что это более семантически правильно.
Но на самом деле реальность такова, что семантическое и стилистическое значение <strong> и <b> со временем слились по необходимости.
Если я создаю CMS, которая допускает любую вставку стилизованного текста, мне нужно спланировать как для людей, которые вставляют в <b> и имеют в виду «сильно подчеркнутый», так и для людей, которые вставляют в <strong> и имеют в виду «сделать этот текст жирным». Возможно, это не «правильно», но так устроен реальный мир в настоящий момент.
Итак, если я пишу таблицу стилей для этого сайта, я, вероятно, собираюсь написать несколько стилей, которые выглядят так:
b,
strong {
font-weight: 700;
/* ... more styles here */
}
i,
em {
font-style: italic;
/* ... more styles here */
}
Или я собираюсь полагаться на настройки браузера по умолчанию, которые делают то же самое, что и приведенный выше код, во всех известных мне современных браузерах.
Или я мог бы быть одним из миллионов сайтов, которые используют normalize.css, который заботится о том, чтобы b и strong обрабатывались одинаково.
В мире уже существует такой огромный океан HTML, который оправдывает это ожидание, я просто не могу представить, что b КОГДА-ЛИБО обесценится в пользу strong или что браузеры когда-либо начнут отображать их по-другому по умолчанию.
Ну это все. Это мой горячий взгляд на семантику, историю и реальный мир. Одинаковы ли b / i и strong / em? Нет. Вероятно, они оба будут существовать и будут ли к ним относиться как к идентичным почти в любой ситуации до краха современной цивилизации? Я думаю да.
В HTML Lang эти два тега используются следующим образом:
simple text this is test text normal text
simple text this is important textwith normal text
Основное различие между этими двумя HTML-тегами заключается в том, что полужирный шрифт делает текст только визуально жирным, в то время как сильный также символизирует соответствующий текст как существенный и указывает, что это четкое слово или текстовый раздел.
Это различие связано с тем, что HTML-код различает символические и физические визуальные html-теги. В то время как предыдущие относятся к значению соответствующих областей, последние просто определяют оптический дисплей в браузерах. Вы можете проверить это в здесь
См. Также: programmers.stackexchange.com/a/255588/12693