font: inherit;
カスケード スタイル シートで が使用されている理由を知りたかっただけです。
7 に答える
他の回答が言ったように、親要素から CSS プロパティを継承することです。
他の回答が言いきれなかったのは、なぜこれが必要なのかということです。結局のところ、CSS プロパティはとにかく継承されるからですよね?
うーん、ダメ。ほとんどはデフォルトです (ただし、たとえば、リンクの色は親要素から継承されません)。しかし、次のケースを考えてみましょう:
p { color: blue; }
div.important { color: red; }
<div class="important">
<p>This is a text</p>
</div>
これで、テキストは赤ではなく青になります。<p>
デフォルトのスタイリングではなく親のスタイリングを に持たせたい場合は、その CSS をオーバーライドする必要があります。もちろん、プロパティ値 ( red
) を繰り返すことはできますが、それは DRY に違反します (繰り返さないでください)。代わりに、それを継承します。
div.important p { color: inherit; }
この宣言font:inherit
は多くの「CSS リセット」スタイルシートで使用されており、さまざまなライブラリやフレームワークにコピーされることがよくあります。Eric Meyer によるオリジナルのReset CSSfont:inherit
には. 特に志望動機はありません。全体的な論理的根拠は、「デフォルトの行の高さ、マージン、見出しのフォント サイズなどにおけるブラウザーの不一致を減らすため」と言われています。しかし、Meyer は彼の以前の投稿にリンクしており、そこで彼はアイデアを説明し、とりわけ次のように述べています。これには 2 つの目的があります。まず、ドキュメントのセマンティクスについて少し難しく考えさせられます。リセットされたので、選択しませんstrong
デザインが太字を必要とするためです。代わりに、適切な要素を選択し、strong
必要em
にb
応じh3
てスタイルを設定します。」</p>
見出し、フォーム フィールド、テーブル ヘッダー セル、いくつかのフレーズ要素など、いくつかの HTML 要素には、フォント プロパティに関してブラウザーでのデフォルトのレンダリングがありfont: inherit
ますinherit
。スタイル シートで特に指定されていない限り、テキスト フォントをコピーします。
したがって、これはオーサリングとデザインの特定の方法論 (または、イデオロギーや宗教と言う人もいるかもしれません) に関するものです。それは人気を得て、しばしば定期的に適用されます.
すべてのブラウザがすべての要素のフォントプロパティを継承するわけではありません。Netscape 4.xは、継承について悪名高い悪名高いものでした。次のスタイルを検討してください。
body { background: black; color: white }
Netscape 4.xでは、色はテーブル要素に適用されなかったため、テーブル内の黒い背景にデフォルトの黒いテキストが表示されます。
フォントプロパティは、一部の要素、特にフォーム要素(および古いブラウザの場合はテーブル要素)に対して同じ種類の処理を行います。次のような定義を見るのは珍しいことではありません。
table, form { font: inherit }
はinherit
、親要素からプロパティを取得するために使用されます。つまり、親要素のプロパティを継承します。
デフォルトのプロパティは です。inherit
つまり、 と があるdiv
としp
ます。
<div>
<p>Hello World!</p>
</div>
次に、スタイルを指定します。
div {font-famlily: Tahoma;}
p {font-family: inherit;}
それfont-family
は、その親要素からinherit
編集されます。p
div
さまざまなユーザー エージェント (別名ブラウザー) には次のようなユーザー エージェント スタイルシート (読み取り: デフォルトのスタイルシート) があるため、CSS での使用{font:inherit;}
は理にかなっています。
body
{
font: -magic-font-from-user-preferences;
}
textarea, input
{
font: monospace;
}
は、ユーザー エージェント スタイルシートが原因でorがデフォルトで継承されない{font:inherit;}
特殊なケースを回避するために使用されますが、コンテンツの作成者はフォント ファミリーの継承を希望します。font
font-family
inherit
残念ながら、さまざまなバグが原因で、値を使用した実際のユーザー エージェントの動作は異なります。ただし、結果の動作は、デフォルト値よりも作成者の意図に近いものになる可能性があります。
inherit
CSS では、単に親要素から値を継承することを意味します。たとえば、次のようになります。
<div style="font-family: Arial;">
<p style="font-family: inherit; /* This will inherit the font-family of the parent p*/">
This text will be Arial..And inherit is default behavior of the browser
</p>
</div>
ここでは、親から<p>
を継承しますfont-family: Arial;
div
たとえば、アンカー要素の場合、継承を使用する必要があります。ユーザー エージェント スタイル シートでは、一般に color プロパティが blue に設定されます。継承された値の重要性を強調したい場合は、作成者またはユーザーのスタイル シートで値の継承を使用して、ユーザー エージェントのスタイル シート宣言を上書きすることができます。