23 に答える
通常の Web ブラウザ レンダリング エンジンでも同じ効果がありますが、両者には根本的な違いがあります。
著者がディスカッションリストの投稿に書いているように:
次の 3 つの状況を考えてみてください。
- ウェブブラウザ
- 盲目の人々
- 携帯電話
「太字」はスタイルです。 「単語を太字にする」と言うとき、人々は基本的に、残りの文字の中で目立つようになるまで、文字の周りに「インク」などを追加することを意味することを知っています.
残念ながら、それは盲人にとって何の意味もありません。携帯電話やその他の PDA では、画面の解像度が非常に小さいため、テキストは既に太字になっています。何かを台無しにしない限り、太字を太字にすることはできません。
<b>
はスタイルです。「太字」がどのように見えるかはわかっています。
<strong>
ただし、何かをどのように理解すべきかを示しています。「強い」は、ブラウザでは「太字」を意味する場合があり (多くの場合そうです)、Jaws のような音声プログラム (視覚障害者向け) の場合は低いトーンを意味する場合もあれば、下線で表される場合もあります (太字にすることはできないため)。太字) Palm Pilot で。
HTML はスタイルに関するものではありませんでした。「Tim Berners-Lee」と「セマンティック Web」で検索してみてください。セマンティック — 囲んでいるテキストがどのように表示されるかを説明するのではなく(例: "このテキストは大胆な」)。 <strong>
<b>
と<i>
明示的 - それぞれ太字と斜体を指定します。
<strong>
および<em>
セマンティック - 囲まれたテキストを何らかの方法で「強く」または「強調」する必要があることを指定します。通常は太字と斜体ですが、実際のスタイルは CSS で制御できます。したがって、これらは最新の Web ページで好まれます。
<strong>
ドキュメントにセマンティックな意味を<em>
追加します。たまたま、テキストに太字や斜体のスタイルを適用することもあります。
もちろん、スタイルを CSS で上書きすることもできます。
<b>
<i>
一方、フォントのスタイリングのみを適用し、今後は使用しないでください。(CSS で書式設定することになっているため、テキストが実際に重要である場合は、とにかく「強く」または「強調」するでしょう!)
それが理にかなっていることを願っています。
<b>
と<i>
はどちらもスタイルに関連していますが、<em>
と<strong>
はセマンティックです。HTML 4 では、前者はフォント スタイル要素、後者はフレーズ要素に分類されます。
あなたが正しく示したように<i>
、<em>
ブラウザは両方を斜体で表示することが多いため、よく似ていると見なされます。しかし、仕様によると、<em>
は強調を<strong>
示し、より強い強調を示します。これは非常に明確ですが、誤解されることがよくあります。一方、 と をいつ使用する<i>
かの違い<b>
は、実際にはスタイルの問題です。
<em>
および<strong>
よりも多くの帯域幅を消費<i>
し<b>
ます。
また、より多くの入力が必要です (自動生成されない場合)。
また、エディター画面がテキストで乱雑になります。プログラマーは、ソースファイルが同じであれば小さい方が好きだということを思い出したようです。(そして、本当のことを言いましょう。それらは同じです。はい、「技術的な」(<i>咳</i>、えっと、すみません) 違いがありますが、それはそもそもほとんど偽物です。)
上記のタグのいずれかを使用すると、スタイル シートを使用して、デフォルトのレンダリングとは異なるように表示する必要がある場合に、表示方法をカスタマイズできます。
もちろん意味的には<strong>
との方が正しいですが、顧客が作成したコンテンツにとタグ<em>
を使用する明確な正当な理由があるようです。<b>
<i>
そのようなコンテンツでは、単語または語句が太字または斜体で表示される場合があり、通常、そのような太字または斜体の意味論的理由を分析することは当社の責任ではありません。
さらに、そのようなコンテンツは、特定の意味を伝えるために、太字やイタリック体の単語やフレーズを参照している場合があります。
例としては、生徒に太字の単語を置き換えるように指示する英語の試験問題があります。
bまたはiは、テキストを太字または斜体で表示することを意味します。strongまたはemは、ユーザーが「重要」であると理解できる方法でテキストをレンダリングすることを意味します。デフォルトでは、strong を太字、em をイタリック体で表示しますが、他の一部のカルチャでは異なるマッピングが使用される場合があります。
プログラムの文字列のように、bとiは「ハードコード」され、strongとemは「ローカライズ」されます。
他の人が言ったように、 <b> と <i> は明示的 (つまり、「このテキストを太字にする」) ですが、 <strong> と <em> はセマンティック (つまり、「このテキストを強調する必要があります」) です。
最新の Web ブラウザーのコンテキストでは、違いを理解するのは困難ですが (どちらも同じ結果を生成するように見えますよね?)、視覚障害者向けのスクリーン リーダーについて考えてみてください。スクリーン リーダーが <i> タグに遭遇した場合、何をすべきかわかりません。しかし、<em> タグに出くわすと、その中にあるものは何でもリスナーに強調する必要があることがわかります。そして、実際の違いが得られます。
他の人が述べたように、違いは<b>
ハード<i>
コーディングされたフォントスタイルであり、テキストがレンダリングされた時点で決定されるフォントスタイル(または話すブラウザのイントネーション、またはwhat-have-you)を使用してセマンティックな意味<strong>
を指示します(または<em>
話した)。
これは、「物理的な」フォント スタイルと「論理的な」スタイルの違いと考えることができます。後で、たとえば、スタイル シートのプロパティを変更して色やサイズの変更を追加したり、別のフォント フェイスを完全に使用したりして、テキストの表示方法<strong>
を変更したい場合があります。<em>
ハードコーディングされた「物理的」マークアップの代わりに「論理的」マークアップを使用した場合、スタイル シートのそれぞれ 1 か所で表示プロパティを変更するだけで、そのスタイル シートを参照するすべてのページが自動的に変更されます。それらを編集する必要があります。
かなり滑らかですよね?
style=
これは、段落、テーブル セル、ヘッダー テキスト、キャプションなどのサブスタイル (テキスト タグでプロパティを使用して参照) を定義し、タグを使用することの根拠でもあり<div>
ます。スタイル シートで論理スタイルの物理表現を定義すると、そのスタイル シートを参照する Web ページに変更が自動的に反映されます。ソース コードの別の表現が必要ですか? 「コード」スタイルのフォント、サイズ、太さ、間隔などを再定義します。
XHTML を使用する場合は、独自のセマンティック タグを定義することもでき、スタイル シートが物理的なフォント スタイルとレイアウトへの変換を行います。
実際、私は <strong> と <b> の両方を使用しています。これは、まさにこの回答のスレッドに記載されている理由によるものです。一部のテキストを太字にした方が見栄えが良い場合もありますが、必ずしも文の残りの部分よりも意味的に重要であるとは限りません。これは、私が現在取り組んでいるページの例です。
「<b>ラクロス</b>に関する<strong>すべて</strong>の本を検索します。」
その文では、「すべて」という単語が非常に重要ですが、「ラクロス」はそれほど重要ではありません。検索用語を表すために太字にしたかったので、視覚的に分離したかったのです。スクリーン リーダーでページを表示している場合は、「ラクロス」という単語を強調するためにわざわざ行く必要はないと思います。
ほとんどの Web 開発者はどちらか一方を使用していると思いがちですが、どちらも問題ありません。一部の人々が主張しているように、<b> は非推奨ではありません。私にとって、それは視覚的な魅力と意味の間の紙一重です。
<b>
タグを使用した太字のテキストの場合
<strong>
タグを使用して重要なテキストの場合
<i>
タグを使用したテキストの斜体スタイルの場合
<em>
タグを使用した強調テキストの場合
CSS スタイル クラスを使用することが何らかの理由で不都合または不可能な場合にのみ使用してください (ブログ システムのように、一部のタグのみを投稿で使用し、最終的にはスタイルを埋め込むことを許可します)。もう 1 つの理由は、非常に古いブラウザー (一部のモバイル デバイス?) または原始的な検索エンジン ( CSS スタイルを分析する代わりに、ポイント<b>
やタグを提供する) のサポートです。<strong>
CSS スタイルを定義できる場合は、それを使用してください。
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>
テキストのスタイルを説明するため、避ける必要があります。代わりに and を使用<strong>
して<em>
ください。これは、テキストのセマンティクス (意味) を記述するためです。
HTML のすべてのものと同様に、どのように表示するかではなく、実際に何を意味するかを考えるべきです。確かに、あなたにとっては太字の斜体かもしれませんが、スクリーン リーダーにとってはそうではありません。
「それらは同じ効果があります。ただし、HTML のクリーンで新しいバージョンである XHTML は、<strong>
タグの使用を推奨しています。より読みやすいため、Strong の方が優れています - その意味はより明確です。さらに、<strong>
意味を伝えます - テキストを表示します。 strong - while <b>
(for bold) メソッドを伝えます - テキストを太字にする. strong を使用すると、CSS スタイルシートを使用してテキストを強調する方法を変更しても、コードは意味をなします.
<i>
と"の違いについても同様<em>
です。
Google ディクジット:
http://wiki.answers.com/Q/What_is_the_difference_between_HTML_tags_b_and_strong
<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
太字と赤にすることができます。
<strong>
抽象的<em>
です (これは、セマンティックであると人々が言うときの意味です)。
<b>
何かを<i>
「強く」または「強調」する具体的な方法です。
類推:
どちら<strong>
も to<b>
と<em>
is to<i>
なので
「乗り物」は「ジープ」に
<strong>
商品名、会社名などのSEO目的で優先度の高いテキストにタグを使用し、<b>
シンプルに太字にします。
同様に、<em>
SEOの優先度が高いテキストには使用しますが<i>
、テキストは単純に斜体にします。