Яка різниця між <b> і <strong>, <i> і <em>?


778

У чому різниця між <b>і <strong>, <i>і <em>в HTML / XHTML? Коли слід використовувати кожен?


2
Дивіться також: programmers.stackexchange.com/a/255588/12693
Кос

Принаймні поки що все, що я бачив у StackOverflow, було "жирним", використовуючи елемент <b>
OverCoder

MDN має чіткий опис (з прикладами) про те , як ці мітки повинні бути використані: <em>, <strong>, <b>,<i>
totymedli

Відповіді:


1043

Вони однаково впливають на звичайні системи візуалізації веб-браузерів , але між ними є принципова різниця .

Як пише автор у публікації зі списку дискусій :

Подумайте про три різні ситуації:

  • веб-браузери
  • незрячих людей
  • мобільні телефони

"Жирний" - це стиль - коли ви говорите "жирне слово" , люди в основному знають, що це означає додати більше, скажімо, "чорнила", навколо букв, поки вони не виділяться більше серед решти літер.

Це, на жаль, для сліпої людини нічого не означає. На мобільних телефонах та інших КПК текст уже є жирним, оскільки роздільна здатність екрана дуже мала. Не можна жирним жирним шрифтом, не накручуючи щось.

<b>це стиль - ми знаємо, як "сміливий" повинен виглядати.

<strong>однак є вказівкою на те, як щось слід розуміти . "Сильний" може (і часто це означає) у веб-переглядачі означає "жирний", але він також може означати нижчий тон для такої мови, як програма "Щелепи" (для сліпих людей), або бути представлений підкресленням (оскільки ви не можете жирним шрифтом жирним) на Пальмовому пілоті.

HTML ніколи не мав на увазі стилі. Зробіть кілька пошуків для "Тіма Бернерса-Лі" та "семантичної павутини". <strong>є семантичним - він описує текст, який він оточує (наприклад, "цей текст повинен бути сильнішим за решту тексту, який ви відобразили" ) на відміну від опису того, як повинен відображатися текст, який він оточує (наприклад, "цей текст повинен бути жирний " ).


158
Зауважте, що <b> і <i> не були застаріли в HTML5. Їх нове використання полягає в семантичному представленні стилів (або передбачуваної презентації), тоді як <strong> і <em> представляють структуру . Ви повинні прочитати stellify.net/…
Natan

11
Чудова відповідь, але я б сказав, що "ви не можете виділити жирним шрифтом" - це неправильно, оскільки ви припускаєте, що це булева концепція, коли шрифт-вага: застосовує більш змінний підхід. Тепер, коли існують екрани з високою вірністю, є рівні сміливості.
TravisO

4
@TravisO Я вважаю, що він говорив про конкретні технічні обмеження Палм-пілота.
Брайан Ортіз

4
Я не вірю, що купа букв має якесь внутрішнє значення, <b> може мати точно таке ж семантичне значення, як <strong> якщо ми вирішимо так. Що вирішили творці читачів, чи ставляться до них по-різному чи точно однаково?
Квільйон

20
@deathApril Але вони так і роблять! Вони мають значення! HTML не визначається тим, у що ви вірите чи що ви вирішили.
Містер Лістер

229

<b>і <i>явні - вони вказують жирним та курсивним відповідно.

<strong>і <em>є семантичними - вони вказують, що доданий текст повинен бути "сильним" або "підкресленим" певним чином, зазвичай жирним і курсивним, але дозволяють контролювати фактичний стиль за допомогою CSS. Отже, вони віддані перевагу на сучасних веб-сторінках.


15
Гарне пояснення. З іншого боку, в HTML 5 <i> і <b> є семантичними, а не явними. Зітхнути.
OregonGhost

1
Чи вони? Я поза часом ...!
Тоні Ендрюс

5
Так, найкраще пояснення, яке я прочитав, - це stellify.net/…
Натан

25
HTML5 має нові смислові значення для bта i. Вони є тегами, якими ви повинні користуватися, коли вам потрібно звернути увагу на частину прози чи компенсувати нормальну прозу, не передаючи акценту ( em), важливості (для strong) чи релевантності (для mark). bє для ключових слів, назв виробів, дійсних слів тощо, тоді iяк для технічних термінів, думок, фраз і т. д. Чесно кажучи, ІМО, між ними слід розрізняти більше.
chharvey

2
Шкода, що текст (і заголовок) stellify.net є абсолютно нечитабельним на більшості дешевих офісних моніторів та установок ^^ (відсутність контрасту просто приголомшливий)
Оскар Дувеборн

24

<strong>і <em>додайте додаткового смислового значення вашому документу. Так буває, що вони також надають вашому тексту жирний і курсивний стиль.

Звичайно, ви могли б замінити їх стиль із CSS.

<b>а <i>з іншого боку, застосовуйте лише стилістику шрифту, і її більше не слід використовувати. (Тому що ви повинні форматувати за допомогою CSS, і якщо текст насправді був важливим, ви, ймовірно, зробите його "сильним" або "підкресленим" у будь-якому випадку!)

Сподіваюся, що це має сенс.


2
якщо ви скажете, <b> і <i> більше не слід використовувати, то що робити зі старим браузером, який не підтримує <em> і <strong>?
Нірман

4
@Nirman Якщо хтось використовує старий браузер для навігації в Інтернеті, у нього або вона вже є багато проблем з візуальної та безпекової точки зору. Через це я вважаю, що програмісти та дизайнери більше не повинні підтримувати старі браузери.
yeyo

4
Примітка: якщо ми говоримо старі браузери, ми маємо на увазі тут 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 говорять інакше. Цитування потрібне?

1
Ця відповідь була розміщена ~ 6 років до виходу HTML5!
Джеймс

8

Ось короткий опис визначень разом із запропонованим використанням:

<b>... проміжок тексту, на який звертається увага в утилітарних цілях, не надаючи зайвої важливості і не маючи на увазі альтернативного голосу чи настрою, наприклад, ключові слова в рефераті документа, назви виробів в рецензії, слова , що діють в інтерактивне текстове програмне забезпечення або стаття .

<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 для оригіналів)


7

<b>і <i>вони пов'язані зі стилем, тоді як <em>і <strong>семантичні. У HTML 4 перші класифікуються як елементи стилю шрифту , а останні - як елементи фрази .

Як ви вказали правильно, <i>і <em>їх часто вважають подібними, оскільки браузери часто відображають обидва курсивом. Але згідно специфікацій, <em> вказує на наголос і <strong> вказує на сильніший наголос , що цілком зрозуміло, але часто неправильно трактується. З іншого боку, відмінність того, коли використовувати <i>або <b>насправді є питанням стилю.


1
strongне вказує на "сильніший наголос", а на " важливість ". Для сильнішого наголосу вкладіть emелемент всередину іншого emелемента.
херві

@ TestSubject528491, якщо ви переходите за посиланням для елементи фрази, які я використав вище, ви побачите, що я щойно цитував специфікацію. Я не думаю, що це суперечить значенню семантики, а також те, що гніздування двох emслів підкреслюють усередині акценту, який, наскільки я розумію, ви запропонували.
Карієм

3
Я думаю, що специфікація HTML5 просто робить більшу різницю між ними. У моєму трактуванні "наголос" означає стрес в тоні голосу. Наприклад, «Ви хочете від ТИХ джинсів?» проти "Ви хочете придбати ці джинси?" мають різні значення через розміщення акцентів. OTOH, "Важливість" не впливає на розміщення. Наприклад, " УВАГА : остерігайся собаки!" матиме те саме значення, якби важливість була знята.
chharvey

<b> and <i> are both related to styleерм. Офіційні документи HTML5 говорять інакше. Цитування потрібне?

@vaxquis, пов'язаний вище для HTML 4: <b>і <i>є елементами стилю шрифту, а є <em>і <strong>елементами фрази. Будь-які пропозиції щодо покращення цього? Для повноти, а також тому, що ваш коментар не містив цитування, в HTML 5.2 всі ці елементи описані у вмісті фразування
Kariem

7

Хоча <strong>і <em>, звичайно, більш семантично правильні, є певні законні причини використовувати <b>та <i>теги для вмісту, написаного клієнтом.

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

Крім того, такий зміст може стосуватися жирних і курсивних слів і фраз, щоб передати певне значення.

Прикладом може слугувати екзаменаційне запитання з англійської мови, яке вказує студенту замінити накреслене слово.


"більш семантично правильний"? Що ти маєш на увазі? Ви читали специфікацію HTML5 на тегах b / i?

4

<em>і <strong>споживають більше пропускної здатності, ніж <i>та <b>.

Вони також потребують більше набору тексту (якщо вони не створюються автоматично).

Вони також захаращують екран редактора більшою кількістю тексту. Здається, я згадую, що програмістам подобаються файли менших джерел, якщо вони однакові. (І давайте бути справжніми, вони однакові. Так, є "технічні" (<i> кашель </i>, ага, вибачте) різниці, але це здебільшого підступно для початку.)

За допомогою будь-якого з вищезазначених тегів ви можете використовувати таблиці стилів, щоб налаштувати, як вони виглядають, однак ви хочете, якщо вони потрібні для того, щоб вони виглядали інакше, ніж їх відображення за замовчуванням.


1
Лол, це має бути прийнята відповідь (HHOS). Ваш - найпопулярніший і правильний відповідь на всій цій сторінці, навіть якщо це трохи жарт. Вся ця річ про "семантику" - це дурна гра. Ми всі знаємо, що кожен, хто займається цим питанням, працює тут з основними постачальниками браузерів, Chrome, Firefox, IE і т. Д. Ми просто хочемо знати, які можуть бути реальні , фактичні відмінності, а не те, про що комітет обговорює в його достаток вільного часу.
ВВП2

2

Як говорили інші, <b> і <i> явні (тобто "зробіть цей текст жирним"), тоді як <strong> і <em> є смисловими (тобто "цей текст слід підкреслити").

У контексті сучасного веб-браузера складно помітити різницю (вони, здається, дають однаковий результат, правда?), Але подумайте про читачі екранів для людей із вадами зору. Якби зчитувач екрана натрапив на <i> тег, він не знав би що робити. Але якщо він наштовхується на тег <em>, він знає, що все, що є, слід підкреслити слухачеві. І в цьому ви отримуєте практичну різницю.


<b> and <i> are explicit (i.e. "make this text bold"),ерм. Офіційні документи HTML5 говорять інакше. Цитування потрібне?

2

<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>мала значення HTML та сильний наголос у 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


1

Як заявили інші, різниця полягає в тому, що <b>і <i>стилі шрифту жорсткого коду, тоді як <strong>і<em> диктують смислове значення, при цьому стиль шрифту (або інтонаційна розмова веб-переглядача, або те, що є у вас) визначається під час надання тексту (або розмовна).

Ви можете подумати про це як про різницю між "фізичним" стилем шрифту та "логічним" стилем, якщо хочете. Через деякий піз ви можете змінити спосіб відображення <strong>та <em>тексту, скажімо, змінивши властивості в таблиці стилів, щоб додати зміни кольору та розміру або навіть повністю використовувати різні грані шрифту. Якщо ви використовували "логічну" розмітку замість жорсткої "фізичної" розмітки, ви можете просто змінити властивості відображення в одному місці, кожен на вашому аркуші стилів, а потім усі сторінки, на які посилається на цей аркуш стилів, змінюються автоматично , без коли-небудь потрібно їх редагувати.

Дуже струнка, так?

Це також обґрунтування визначення підстилів (на які посилається style=властивість у текстових тегах) для абзаців, комірок таблиці, тексту заголовка, підписів тощо та використання<div> тегів. Ви можете визначити фізичне подання для своїх логічних стилів у таблиці стилів, і зміни автоматично відображаються на веб-сторінках, на які посилається на цей аркуш стилів. Хочете іншого представлення для вихідного коду? Перевизначте шрифт, розмір, вагу, інтервал тощо для вашого стилю "код".

Якщо ви використовуєте XHTML, ви навіть можете визначити власні семантичні теги, і ваш аркуш стилів здійснить перетворення на фізичні стилі та макети шрифту для вас.


1
Ви можете використовувати таблиці стилів , щоб повністю змінити спосіб , що <b>і <i>виявляються занадто. Дуже струнка, так?
Томас Едінг

bі iнічого не кодували. Як і будь-який тег HMTL, вони мають стиль CSS за замовчуванням і так само, як і для будь-якого тегу, ви можете змінити його так, як ви хочете.
Mecki

1

Я використовую і <strong> і <b>, власне, саме з причин, зазначених у цій темі відповідей. Бувають випадки, коли сміливий обличчя якогось тексту просто виглядає краще, але це не обов'язково, семантично важливіше, ніж решта речення. Ось приклад зі сторінки, над якою я зараз працюю:

"Вилучає <strong> всі </strong> книги про <b> lacrosse </b>."

У цьому реченні дуже важливим є слово "все", а "lacrosse" - я просто хотів, щоб це було сміливим, оскільки воно являє собою пошуковий термін, тому я хотів візуального розділення. Якщо ви переглядаєте сторінку за допомогою зчитувача екрана, я дійсно не думаю, що їй потрібно не виходити із шляху, щоб підкреслити слово "lacrosse".

Я схиляюсь до того, що більшість веб-розробників використовують один з іншого, але обидва - це добре. <b> це, безумовно, не застаріло, як дехто стверджував. Для мене це лише тонка грань між візуальною привабливістю та змістом.


1

Використовуйте їх лише у тому випадку, якщо використання класів стилів CSS з будь-якої причини є непереконливим або неможливим (як, наприклад, системи блогу, дозволяйте використовувати лише деякі теги у публікаціях та врешті вбудованих стилях). Ще одна причина - підтримка дуже старих браузерів (деяких мобільних пристроїв?) Або примітивних пошукових систем (які дають бали за <b>або<strong> теги замість аналізу стилів CSS).

Якщо ви можете визначити стилі CSS, використовуйте їх.


1

Для жирного тексту використовуйте <b> тег

Для тексту важливо використовувати <strong> тег

Для тексту курсивом використовується <i> тег

Для підкресленого тексту за допомогою <em> тегу


0

<b>і їх <i>слід уникати, оскільки вони описують стиль тексту. Натомість використовуйте <strong>і <em>тому, що описує семантику (значення) тексту.

Як і всі речі в HTML, ви повинні думати не про те, як ви хочете, щоб це виглядало , а про те, що ви насправді маєте на увазі . Звичайно, це може бути лише сміливим та курсивним для вас, але не для читача екрана.


2
Повністю неправильних, <b> і <i> не слід уникати. Вони мають семантичні значення в HTML5.
користувач2867288

0

b або я означає, що ви хочете, щоб текст видавався жирним шрифтом або курсивом. сильний або ем означає, що ви хочете, щоб текст був наданий таким чином, що користувач розуміє як "важливий". За замовчуванням - зробити так сильним, як жирним та курсивним, курсив, але деякі інші культури можуть використовувати інше відображення.

Як і рядки в програмі, і b, і я був би "жорстко закодований", а сильний і em буде "локалізований".


0

"Вони мають такий же ефект. Однак 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


0

Елементи форматування HTML:

HTML також визначає спеціальні елементи для визначення тексту з особливим значенням. HTML використовує такі елементи, як <b> і <i> для форматування виводу, як напівжирний або курсивний текст.

Сміливе та сильне форматування HTML:

Елемент HTML <b> визначає жирний текст без зайвої важливості.

<b>This text is bold</b>

Елемент HTML <strong> визначає сильний текст із додаванням смислової "сильної" важливості.

<strong>This text is strong</strong>

HTML-курсивне та наголошене форматування:

Елемент HTML <i> визначає курсивний текст без зайвого значення.

<i>This text is italic</i>

Елемент HTML <em> визначає підкреслений текст із додаванням семантичного значення.

<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 говорять інакше. Цитування потрібне?

0

Ви, як правило, намагайтеся уникати <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напівжирне і червоне, наприклад.


7
<b> і <i> НЕ застаріли в HTML 4 і все ще повністю підтримуються навіть у майбутньому HTML 5. <em> і <strong> не замінюють їх. Дивіться також w3.org/TR/html401/index/elements.html
thomasrutter

1
@thomasrutter Вони все ще є в HMTL5, але з іншим значенням і з дуже детальним поясненням, як їх використовувати, а точніше - як їх не використовувати. Зауважте, що ці теги не мають ніякого значення (жирний і курсив - це не значення , вони - інструкції щодо проектування, а HMTL - про значення, CSS - це дизайн aobut) - HTML - це опис того, що таке текст, а не про те, як його відобразити (це було розділено після HMTL3 з поважної причини).
Мецький

-2

<strong>і <em>є абстрактними (що означає люди, коли кажуть, що це смислово). <b>і <i>є конкретні способи зробити щось "сильне" або "підкреслене"

Аналогія:

І те <strong>, <b>і <em>інше<i>

як

"транспортний засіб" - це "джип"


1
Я не бачу, чому цю відповідь було оскаржено. Багато інших відповідей з подібним змістом були добре прийняті.
aditya_m

-4

Ми використовуємо <strong>тег для тексту, який має високий пріоритет для цілей SEO, таких як назва продукту, назва компанії тощо, а <b>простий робить його жирним.

Точно так само ми використовуємо <em>текст, який має високий пріоритет для SEO, в той час, як <i>зробити текст просто курсивом.


4
Деякі теги HTML дійсно мають застосування SEO. Мета опис, мета-робот або посилання канонічні, щоб назвати декілька. Наскільки ми знаємо, сильний / em не є одним із них, ні в теорії, ні в практиці.
Sheepy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.