<b>と<strong>、<i>と<em>の違いは何ですか?


779

<b><strong><i>および<em>HTML / XHTML の違いは何ですか?いつそれぞれ使用すべきですか?


2
次も参照してください:programmers.stackexchange.com/a/255588/12693
Kos

少なくとも今のところ、StackOverflowで見たものはすべて<b>要素を使用して「太字」になっています
OverCoder

MDNは、これらのタグを使用する必要がありますどのように(例で)明確な記述があります:<em><strong><b><i>
totymedli

回答:


1044

これらは通常のウェブブラウザのレンダリングエンジン同じ効果をもたらしますが、両者には根本的な違いがあります。

著者がディスカッションリストの投稿に書いているように:

3つの異なる状況について考えてみます。

  • ウェブブラウザー
  • 盲目の人々
  • 携帯電話

「太字」スタイルがある-あなたが言うとき、「太字Aの単語を」人々は基本的にそれがより追加することを意味していることを知って、彼らはより多くの手紙の残りの中で目立つまでの文字の周りに、さんは「インク」と言ってみましょう。

残念ながら、それは視覚障害者には何の意味もありません。携帯電話やその他のPDAでは、画面の解像度が非常に小さいため、テキストは既に太字になっています。あなたは何かを台無しにせずに大胆に太字にすることはできません。

<b>はスタイルです -「太字」がどのように見えるかを知っています。

<strong>しかし、何かがどのように理解されるべきかを示しています。「強い」は、ブラウザで「太字」を意味する場合があります(多くの場合、意味します)が、ジョーズ(視覚障害者向け)などの話すプログラムの場合は低いトーンを意味したり、下線で表される場合もあります(太字は使用できないため)。太字)パームパイロット。

HTMLがスタイルに関するものであることは決してありません。「Tim Berners-Lee」「セマンティックウェブ検索してみてください意味的です—周囲のテキストがどのように表示されるを説明するのではなく(たとえば、「このテキストは表示した残りのテキストよりも強くする必要があります」)、それを囲むテキストを説明します(たとえば、「このテキストは太字」)。 <strong>


160
<b>と<i>はHTML5では廃止されていないことに注意してください。それらの新しい用途は、スタイル(または意図されたプレゼンテーション)を意味的に表すことですが、<strong>および<em>は構造を表しますstellify.net / ...を
Natan Yellin

12
素晴らしい答えですが、font-weight:がより可変的なアプローチを取るとき、それをブールの概念であると想定しているため、「ボールドをボールドにすることはできません」は間違っていると私は言います。忠実度の高い画面が存在するようになったため、大胆さのレベルがあります。
TravisO 2013

4
@TravisO私は彼がPalm Pilotの特定の技術的制限について話していたと思います。
Brian Ortiz

4
一連の文字に固有の意味があるとは思わない。<b>は、決定した場合、<strong>とまったく同じ意味論的意味を持つことができる。読者のメーカーは何を決定しましたか、彼らはそれらを異なるようにまたは正確に同じように扱いますか?
Aprillion 2013年

21
@deathAprilしかし、彼らはそうします!彼らには意味があります!HTMLは、あなたが何を信じるか、何を決めるかによって定義されるものではありません。
Mr Lister

231

<b><i>明示的です-それらはそれぞれ太字と斜体を指定します。

<strong><em>セマンティック-囲まれたテキストが何らかの方法で「強く」または「強調」され、通常は太字で斜体であることを指定しますが、CSSを介して実際のスタイルを制御できます。したがって、これらは最新のWebページで推奨されます。


15
良い説明。一方、HTML 5では、<i>と<b>も明示的ではなくセマンティックです。はぁ。
OregonGhost 2008年

1
彼らは?時代遅れだ...!
トニーアンドリュース

5
はい、私が読んだ最高の説明ですstellify.net/...は
ナタンイェリン

25
HTML5には、bおよびの新しい意味の意味がありiます。これらは、強調()、重要度()、または関連性()伝えずに、散文の一部に注意を引き付けたり、通常の散文を相殺したりする必要がある場合に使用するタグです。キーワード、製品名、実用的な単語などを表し、技術用語、思考、フレーズなどを表します。正直に、IMOでは、この2つを区別する必要があります。emstrongmarkbi
chharvey、2012年

2
stellify.netのテキスト(およびタイトル)は、ほとんどの安価なオフィスモニターやセットアップでは完全に読めないのが残念です^^(コントラストの欠如は単に驚くべきものです)
Oskar Duveborn 2012

24

<strong>そして<em>、あなたの文書に余分な意味論的な意味を追加します。たまたま、それらはあなたのテキストに大胆でイタリックのスタイルを与えます。

もちろん、CSSでそれらのスタイルをオーバーライドできます。

<b>そして<i>一方のみのフォントスタイルを適用し、もはや使用する必要があります。(CSSでフォーマットすることになっているため、テキストが実際に重要である場合は、とにかく「強く」または「強調」してください!)

それが理にかなっていると思います。


2
<b>と<i>はもう使用しないでください。<em>と<strong>をサポートしていない古いブラウザはどうでしょうか。
Nirman、2014

4
@Nirman誰かが古いブラウザを使用してWebをナビゲートする場合、視覚的およびセキュリティの観点から、彼または彼女はすでに多くの問題を抱えています。そのため、プログラマやデザイナは古いブラウザをもうサポートすべきではないと私は信じています。
yeyo 2014年

4
注:古いブラウザという場合、ここではNetscape 3とIE2を意味します(IE3とNS4はすでにサポートされています<strong>と<em>)。これらの20世紀のブラウザーをサポートし続ける必要がある場合、本当に大きな問題に直面しています。
Mr Lister

<b> and <i> on the other hand only apply font styling and should no longer be used.公式のHTML5ドキュメントは別の言い方をしています。引用が必要ですか?

1
この回答は、HTML5がリリースされる6年前までに投稿されました。
James

8

定義の概要と推奨される使用法を以下に示します。

<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(オリジナルの場合)


7

<b>および<i>は両方ともスタイルに関連していますが、<em>および<strong>はセマンティックです。HTML 4では、前者はフォントスタイル要素として分類され、後者はフレーズ要素として分類されます

あなたが正しく示したように、<i>そして<em>多くの場合、ブラウザは両方をイタリック体で表示するため、類似していると見なされます。ただし、仕様によると、<em> 強調<strong> 示し、強い強調示します。これは非常に明確ですが、誤って解釈されることがよくあります。一方、いつ使用する<i>か、または<b>本当にスタイルの問題であるかどうかの区別。


1
strong「より強調」ではなく「重要性」を示しています。より強調するために、em要素を別のem要素の中にネストします。
chharvey、2012年

@ TestSubject528491 上記で使用したフレーズ要素のリンクをクリックすると、仕様を引用したことがわかります。これが重要性の意味論と矛盾するとは思わない。また、2つのemのネストが強調の中で強調されているとは思わない。
Kariem

3
HTML5仕様では、この2つの違いがより明確になっていると思います。私の解釈では、「強調」は声のトーンのストレスを意味します。例:「THOSEジーンズでしたいですか?」対「あなたはそれらのジーンズを買いたいですか?」強調配置により、意味が異なります。OTOH、「重要度」は配置に基づく効果がありません。例:「警告:犬に注意してください!」重要性が取り除かれた場合、同じ意味になります。
chharvey、2012年

<b> and <i> are both related to styleえーと。公式のHTML5ドキュメントは別の言い方をしています。引用が必要ですか?

上記のHTML 4用にリンクされた@vaxquis:<b><i>はフォントスタイル要素で、<em><strong>は句要素です。これを改善するための提案はありますか?完全を
期す

7

一方で<strong>そして<em>もちろん、より意味的に正しいのものであり、使用するための明確な正当な理由があるようだ<b><i>、顧客が書いたコンテンツのタグを。

そのようなコンテンツでは、単語や語句が太字または斜体で表示される場合があり、そのような太字または斜体の意味論的推論を分析するのは一般に私たちの責任ではありません。

さらに、そのようなコンテンツは、特定の意味を伝えるために、太字および斜体の単語やフレーズを指す場合があります。

例としては、学生に太字の単語を置き換えるように指示する英語の試験問題があります。


「より意味的に正しい」?それはどういう意味ですか?b / iタグのHTML5仕様を読みましたか?

4

<em>そして<strong>より多くの帯域幅を消費<i>して<b>

また、より多くの入力が必要です(自動生成されない場合)。

また、エディターの画面が乱雑になります。プログラマーが同じであれば、小さいソースファイルが好きだと思います。(そして、本当のことを言えば、それらは同じです。はい、「技術的」(<i> </ i>、エヘム、すみません)の違いがありますが、それはそもそもほとんどが偽りです。)

上記のタグのいずれかを使用すると、スタイルシートを使用してそれらの外観をカスタマイズできますが、デフォルトのレンダリングとは異なる外観にする必要がある場合は、必要に応じてカスタマイズできます。


1
笑これは受け入れられる答え(HHOS)あなたにとっては、たとえ冗談であっても、このページ全体で最も現実的で正しい答えです。「セマンティクス」に関するこのすべては、最初はばかげたゲームです。この質問を検索し、誰もがここに心の中で主要なブラウザベンダと協力していることを私たちは皆知っている、クロムなどのFirefox、IEは、私達はちょうど知りたい本当のは実際の違いがあるかもしれない、委員会は、中程度討論ではないものをその豊富な余暇。
GDP2

2

他の人が言ったように、<b>と<i>は明示的(つまり、「このテキストを太字にする」)ですが、<strong>と<em>はセマンティックです(つまり、「このテキストを強調する必要があります」)。

現代のWebブラウザーのコンテキストでは、違いを確認することは困難です(どちらも同じ結果を生成するように見えますよね?)が、視覚障害者のためのスクリーンリーダーについて考えてみてください。スクリーンリーダーが<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>、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>テキストと表示方法を変更したい場合があります。ハードコードされた「物理」マークアップの代わりに「論理」マークアップを使用した場合は、表示プロパティをスタイルシートのそれぞれ1か所で変更するだけで、そのスタイルシートを参照するすべてのページが自動的変更されます。それらを編集する必要があります。

なめらかでしょ?

これはstyle=、段落、テーブルセル、ヘッダーテキスト、キャプションなどのサブスタイル(テキストタグのプロパティを使用して参照)を定義し、タグを使用する根拠にもなり<div>ます。スタイルシートで論理スタイルの物理表現を定義できます。変更は、そのスタイルシートを参照するWebページに自動的に反映されます。ソースコードの別の表現が必要ですか?「コード」スタイルのフォント、サイズ、太さ、間隔などを再定義します。

XHTMLを使用する場合は、独自のセマンティックタグを定義することもできます。スタイルシートは、物理的なフォントスタイルとレイアウトへの変換を行います。


1
スタイルシートを使用して<b><i>レンダリング方法を完全に変更することもできます。なめらかでしょ?
Thomas Eding 14

bそしてiコードを何も持っていません。他のHMTLタグと同じように、デフォルトのCSSスタイルがあり、他のタグと同じように、好きなように変更できます。
Mecki

1

<strong>と<b>の両方を実際に使用しているのは、この応答のスレッドで言及されている理由とまったく同じです。一部のテキストを太字にしただけで見栄えがよくなる場合がありますが、必ずしも他の文よりも意味的に重要ではありません。これは私が今取り組んでいるページの例です:

「<b>ラクロス</ b>に関する<strong>すべて</ strong>の本を取得します。」

その文では、「すべて」という単語は非常に重要であり、「ラクロス」はそれほど重要ではありません。検索用語を表すため、単に太字にしたかったので、視覚的に区別したいと考えました。スクリーンリーダーでページを表示している場合、「ラクロス」という単語を強調するために邪魔になる必要はないと思います。

たいていのWeb開発者はどちらか一方を使用していると思いがちですが、どちらも問題ありません。<b>は一部の人々が主張しているように、非推奨ではありません。私にとっては、それは視覚的な魅力と意味の間のほんの一部にすぎません。


1

CSSスタイルクラスを使用することが何らかの理由で不便または不可能な場合にのみ、これらを使用してください(ブログシステムのように、投稿で使用するタグと、最終的には埋め込みスタイルのみを許可する)。もう1つの理由は、非常に古いブラウザー(一部のモバイルデバイス?)またはプリミティブ検索エンジン(CSSスタイルを分析するのではなく、<b>または<strong>タグにポイントを与える)のサポートです。

CSSスタイルを定義できる場合は、それらを使用します。


1

<b> タグを使用した太字のテキスト

<strong> タグを使用して重要なテキストの場合

<i> タグを使用したテキストの斜体スタイルの場合

<em> タグを使用した強調テキストの場合


0

<b>そして<i>彼らは、テキストのスタイルを記述するため、避けるべきです。代わりに<strong>andを使用してください<em>。これは、テキストのセマンティクス(意味)を説明します。

HTMLのすべてのものと同様に、外観をどのようにするかではなく、実際の意味を考える必要があります。もちろん、スクリーンリーダーではなく、太字で斜体になっている場合があります。


2
完全に正しくないため、<b>と<i>は避けてはなりません。それらはHTML5では意味論的な意味を持っています。
user2867288

0

bまたはiは、テキストを太字または斜体で表示することを意味します。strongまたはemは、ユーザーが「重要」と理解できる方法でテキストをレンダリングすることを意味します。デフォルトでは、太字に、emはイタリックに強く表示されますが、他の文化によっては異なるマッピングを使用する場合があります。

プログラムの文字列と同様に、biは「ハードコード」され、strongemは「ローカライズ」されます。


0

「同じ効果があります。しかし、HTMLのよりクリーンで新しいバージョンであるXHTMLは、<strong>タグの使用を推奨しています。読みやすく、意味がより明確であるため、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>。それらは、CSSの作成前の初期のHMTLバージョンでページをレイアウトする(外観を変更する)ために導入されたもので、その間に削除されたfontタグのように、主に下位互換性のために維持され、一部のフォーラムではインラインHTMLが許可されているため、簡単ですテキストの外観を変更する方法(を使用したBBCodeなど、使用[i]できます<i>)。

CSSの作成以来、レイアウトは実際にはもはやHTMLで行うべきものではありません。そのため、最初にCSSが作成されました(HTML ==構造、CSS ==レイアウト)。これらのタグも将来的にはなくなる可能性があります。結局span、「意味のない」フォントのバリエーションが必要な場合は、CSSとタグを使用してテキストを太字/斜体にすることができます。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はデザインです)-HTMLはテキストとは何かを説明することであり、レンダリング方法ではありません(分離されています)正当な理由でHMTL3の後)、。
Mecki 2016年

-2

<strong>そして、<em>(彼らはそれがセマンティックだと言うとき、人々は何を意味している)抽象的です。 <b>そして、<i>「強い」または「強調された」ものを作る特定の方法です

類推:

どちらも、<strong>にある<b><em>しています<i>

なので

「車」は「ジープ」


1
なぜこの回答が反対投票されたのかはわかりません。同様の内容を持つ他の多くの回答が高く評価されています。
aditya_m

-4

<strong>製品名、会社名などのSEO目的で優先度の高いテキストにタグを使用します。<b>単純なものは太字にします。

同様に、テキストを単にイタリックにする<em>一方で、SEOの優先度が高いテキストに使用します<i>


4
一部のHTMLタグには実際にSEOアプリケーションがあります。メタの説明、メタロボット、または正規のリンクをいくつか挙げてください。私たちの知る限り、strong / emは理論的にも実際にもこれらの1つではありません。
Sheepy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.