回答:
これらは通常のウェブブラウザのレンダリングエンジンに同じ効果をもたらしますが、両者には根本的な違いがあります。
著者がディスカッションリストの投稿に書いているように:
3つの異なる状況について考えてみます。
「太字」スタイルがある-あなたが言うとき、「太字Aの単語を」人々は基本的にそれがより追加することを意味していることを知って、彼らはより多くの手紙の残りの中で目立つまでの文字の周りに、さんは「インク」と言ってみましょう。
残念ながら、それは視覚障害者には何の意味もありません。携帯電話やその他のPDAでは、画面の解像度が非常に小さいため、テキストは既に太字になっています。あなたは何かを台無しにせずに大胆に太字にすることはできません。
<b>
はスタイルです -「太字」がどのように見えるかを知っています。
<strong>
しかし、何かがどのように理解されるべきかを示しています。「強い」は、ブラウザで「太字」を意味する場合があります(多くの場合、意味します)が、ジョーズ(視覚障害者向け)などの話すプログラムの場合は低いトーンを意味したり、下線で表される場合もあります(太字は使用できないため)。太字)パームパイロット。
HTMLがスタイルに関するものであることは決してありません。「Tim Berners-Lee」と「セマンティックウェブ」を検索してみてください。意味的です—周囲のテキストがどのように表示されるかを説明するのではなく(たとえば、「このテキストは、表示した残りのテキストよりも強くする必要があります」)、それを囲むテキストを説明します(たとえば、「このテキストは太字」)。 <strong>
<b>
と<i>
明示的です-それらはそれぞれ太字と斜体を指定します。
<strong>
と<em>
セマンティック-囲まれたテキストが何らかの方法で「強く」または「強調」され、通常は太字で斜体であることを指定しますが、CSSを介して実際のスタイルを制御できます。したがって、これらは最新のWebページで推奨されます。
b
およびの新しい意味の意味がありi
ます。これらは、強調()、重要度()、または関連性()を伝えずに、散文の一部に注意を引き付けたり、通常の散文を相殺したりする必要がある場合に使用するタグです。キーワード、製品名、実用的な単語などを表し、技術用語、思考、フレーズなどを表します。正直に、IMOでは、この2つを区別する必要があります。em
strong
mark
b
i
<strong>
そして<em>
、あなたの文書に余分な意味論的な意味を追加します。たまたま、それらはあなたのテキストに大胆でイタリックのスタイルを与えます。
もちろん、CSSでそれらのスタイルをオーバーライドできます。
<b>
そして<i>
一方のみのフォントスタイルを適用し、もはや使用する必要があります。(CSSでフォーマットすることになっているため、テキストが実際に重要である場合は、とにかく「強く」または「強調」してください!)
それが理にかなっていると思います。
<b> and <i> on the other hand only apply font styling and should no longer be used.
公式のHTML5ドキュメントは別の言い方をしています。引用が必要ですか?
定義の概要と推奨される使用法を以下に示します。
<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(オリジナルの場合)
<b>
および<i>
は両方ともスタイルに関連していますが、<em>
および<strong>
はセマンティックです。HTML 4では、前者はフォントスタイル要素として分類され、後者はフレーズ要素として分類されます。
あなたが正しく示したように、<i>
そして<em>
多くの場合、ブラウザは両方をイタリック体で表示するため、類似していると見なされます。ただし、仕様によると、<em>
強調を<strong>
示し、強い強調を示します。これは非常に明確ですが、誤って解釈されることがよくあります。一方、いつ使用する<i>
か、または<b>
本当にスタイルの問題であるかどうかの区別。
一方で<strong>
そして<em>
もちろん、より意味的に正しいのものであり、使用するための明確な正当な理由があるようだ<b>
と<i>
、顧客が書いたコンテンツのタグを。
そのようなコンテンツでは、単語や語句が太字または斜体で表示される場合があり、そのような太字または斜体の意味論的推論を分析するのは一般に私たちの責任ではありません。
さらに、そのようなコンテンツは、特定の意味を伝えるために、太字および斜体の単語やフレーズを指す場合があります。
例としては、学生に太字の単語を置き換えるように指示する英語の試験問題があります。
<em>
そして<strong>
より多くの帯域幅を消費<i>
して<b>
。
また、より多くの入力が必要です(自動生成されない場合)。
また、エディターの画面が乱雑になります。プログラマーが同じであれば、小さいソースファイルが好きだと思います。(そして、本当のことを言えば、それらは同じです。はい、「技術的」(<i> 咳 </ i>、エヘム、すみません)の違いがありますが、それはそもそもほとんどが偽りです。)
上記のタグのいずれかを使用すると、スタイルシートを使用してそれらの外観をカスタマイズできますが、デフォルトのレンダリングとは異なる外観にする必要がある場合は、必要に応じてカスタマイズできます。
他の人が言ったように、<b>と<i>は明示的(つまり、「このテキストを太字にする」)ですが、<strong>と<em>はセマンティックです(つまり、「このテキストを強調する必要があります」)。
現代のWebブラウザーのコンテキストでは、違いを確認することは困難です(どちらも同じ結果を生成するように見えますよね?)が、視覚障害者のためのスクリーンリーダーについて考えてみてください。スクリーンリーダーが<i>タグに遭遇した場合、何をすべきかわかりません。しかし、それが<em>タグに出くわすと、内部にあるすべてのものをリスナーに強調する必要があることがわかります。そしてそこにあなたは実用的な違いを得る。
<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>
と<i>
のに対し、打ちフォントスタイル<strong>
と<em>
(ブラウザのイントネーションを話すか、または、何をあなたは、持っている)フォントスタイルで、セマンティックな意味を決定づけるテキストが描画される時に決定される(または話した)。
これは、「物理」フォントスタイルと「論理」スタイルの違いと考えることができます。後で、たとえば、スタイルシートのプロパティを変更して色やサイズの変更を追加したり、別のフォントフェースを完全に使用したりして<strong>
、<em>
テキストと表示方法を変更したい場合があります。ハードコードされた「物理」マークアップの代わりに「論理」マークアップを使用した場合は、表示プロパティをスタイルシートのそれぞれ1か所で変更するだけで、そのスタイルシートを参照するすべてのページが自動的に変更されます。それらを編集する必要があります。
なめらかでしょ?
これはstyle=
、段落、テーブルセル、ヘッダーテキスト、キャプションなどのサブスタイル(テキストタグのプロパティを使用して参照)を定義し、タグを使用する根拠にもなり<div>
ます。スタイルシートで論理スタイルの物理表現を定義できます。変更は、そのスタイルシートを参照するWebページに自動的に反映されます。ソースコードの別の表現が必要ですか?「コード」スタイルのフォント、サイズ、太さ、間隔などを再定義します。
XHTMLを使用する場合は、独自のセマンティックタグを定義することもできます。スタイルシートは、物理的なフォントスタイルとレイアウトへの変換を行います。
<b>
、<i>
レンダリング方法を完全に変更することもできます。なめらかでしょ?
b
そしてi
コードを何も持っていません。他のHMTLタグと同じように、デフォルトのCSSスタイルがあり、他のタグと同じように、好きなように変更できます。
<strong>と<b>の両方を実際に使用しているのは、この応答のスレッドで言及されている理由とまったく同じです。一部のテキストを太字にしただけで見栄えがよくなる場合がありますが、必ずしも他の文よりも意味的に重要ではありません。これは私が今取り組んでいるページの例です:
「<b>ラクロス</ b>に関する<strong>すべて</ strong>の本を取得します。」
その文では、「すべて」という単語は非常に重要であり、「ラクロス」はそれほど重要ではありません。検索用語を表すため、単に太字にしたかったので、視覚的に区別したいと考えました。スクリーンリーダーでページを表示している場合、「ラクロス」という単語を強調するために邪魔になる必要はないと思います。
たいていのWeb開発者はどちらか一方を使用していると思いがちですが、どちらも問題ありません。<b>は一部の人々が主張しているように、非推奨ではありません。私にとっては、それは視覚的な魅力と意味の間のほんの一部にすぎません。
<b>
タグを使用した太字のテキスト
<strong>
タグを使用して重要なテキストの場合
<i>
タグを使用したテキストの斜体スタイルの場合
<em>
タグを使用した強調テキストの場合
<b>
そして<i>
彼らは、テキストのスタイルを記述するため、避けるべきです。代わりに<strong>
andを使用してください<em>
。これは、テキストのセマンティクス(意味)を説明します。
HTMLのすべてのものと同様に、外観をどのようにするかではなく、実際の意味を考える必要があります。もちろん、スクリーンリーダーではなく、太字で斜体になっている場合があります。
bまたはiは、テキストを太字または斜体で表示することを意味します。strongまたはemは、ユーザーが「重要」と理解できる方法でテキストをレンダリングすることを意味します。デフォルトでは、太字に、emはイタリックに強く表示されますが、他の文化によっては異なるマッピングを使用する場合があります。
プログラムの文字列と同様に、bとiは「ハードコード」され、strongとemは「ローカライズ」されます。
「同じ効果があります。しかし、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
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>
あなたは、一般的に回避しようとすべきである<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
例えば、太字と赤。