私はcssの基本的な知識しか持っていません.あるスタイルから別のスタイルにプロパティを継承することは可能ですか. たとえば、デフォルトのパラグラフ タグ設定で指定されたフォント サイズをハイパーリンク タグに継承できます。
これを行う理由は、複数のスタイルを維持しやすくするためです。
次のように、2 つの要素に共通のスタイルを一度に定義できます。
p, a {
font-size: 1em;
}
そして、必要に応じて個々のプロパティでそれぞれを拡張します。
p {
color: red;
}
a {
font-weight: bold;
}
注意:スタイル シートで後で定義されたスタイルは、通常、以前に定義されたプロパティをオーバーライドします。
補足: Firebug Firefox 拡張機能をまだ入手していない場合は、入手することをお勧めします。これにより、ページの要素がどのスタイルを受け取り、どこから継承されているかを確認できます。
CSS には、スタイルを継承する方法がありません。ただし、スタイルを共有する方法はいくつかあります。以下にいくつかの例を示します。
複数のクラスの使用
<p class="first all">Some text</p>
<p class="all">More text</p>
<p class="last all">Yet more text</p>
p.all { font-weight: bold }
p.first { color: red; }
p.last { color: blue; }
スタイルでコンマ演算子を使用する
<p class="first">Some text</p>
<p class="middle">More text</p>
<p class="last">Yet more text</p>
p.first, p.middle, p.last { font-weight: bold }
p.first { color: red; }
p.last { color: blue; }
コンテナ要素の使用
<div class="container">
<p class="first">Some text</p>
<p class="middle">More text</p>
<p class="last">Yet more text</p>
</div>
div p { font-weight: bold }
p.first { color: red; }
p.last { color: blue; }
これらはどれもあなたが探しているものではありませんが、これらの手法を使用すると、CSS の重複を最小限に抑えることができます。
サーバー側コードを使用して CSS を前処理する場合は、探している CSS 継承のタイプを取得できます。
はい。
CSS のカスケードがどのように機能するか、また継承がどのように機能するかを理解する必要があります。一部のスタイルは継承され (フォント フェイスなど)、一部のスタイルは継承されません (ボーダーなど)。ただし、DOM 内の親要素からスタイルを継承するように指示することもできます。
ここで役立つのは、スタイル ルールの指定方法に関する知識です。 CSS 仕様戦争に関するこのサイトが役立つかもしれません (注: このサイトは現在停止していますが、すぐに再開されることを願っています)。
さらに、次のようなスタイルをオーバーロードすると役立つ場合があります。
h1, h2, h3, h4, h5 h6 { font-weight: normal; border: 1px solid #ff0; }
h1 { font-size: 300%; }
... etc ...
「...あるスタイルから別のスタイルにプロパティを継承することは可能ですか。たとえば、デフォルトのパラグラフ タグ設定で指定されたフォント サイズをハイパーリンク タグに継承できます。」
リンクタグは、段落内にある場合にのみ、段落のフォントを自動的に使用します。それらが段落の外にある場合(リスト内など)、同じフォントは使用されません。
たとえば、この css:
* {
margin: 0 10px;
padding:0;
font-size: 1 em;
}
p, a { font-size: 75%; }
.75em のサイズのリンクと段落が生成されます。ただし、段落内のリンクは約 .56em (.75 * .75) で表示されます。
Jonathan Arkell が引用した特異性のリファレンスに加えて、W3SchoolsのCSS チュートリアルをお勧めします。
CSS は親スタイルから自動的に継承されます。たとえば、body スタイルで、すべてのテキストが必要で#EEE
あり、背景がすべてのテキストである必要があると言う場合#000
、それが div にあるかスパンにあるかにかかわらず、常に になります#EEE
。
CSS3 で説明されている方法で継承を追加することについてはかなりの話がありましたが、その仕様はまだ出ていないため、現在、かなり繰り返しているところです。