2

たとえば、 a を to に設定する必要がある場合、 thisdivの子孫にfromを引き続き継承させる方法はありますか? (または、@Sourabh が継承されていないことを指摘してくれたおかげで、継承可能なスタイル)。font-size22pxdivfont-sizebodybackground

body重要なポイントは、または一部の親のスタイルを変更して、途中でスタイルの変更があったとしても、それを通過させることができるようにすることだと思います。したがって、できれば次の方法では実行しません。

body, #foo * { font-size: 16px }
#foo { font-size: 22px }

これは、イベント委任が使用されている場合に iPad でちらつきを解決する方法で説明されているケースに関連しています。、ここで-webkit-tap-highlight-colora に設定する必要がありますdivが、 this の子孫は this の上にあるもの( this の親)divを継承するのが最善です。 divdiv

JavaScript を使用して this のスタイルをdiv一時変数に入れ、 のスタイルをdiv変更してから、 this のすぐ上の子のスタイルをdivその一時変数の値に変更できますが、設定されているものは何でもかまいません。のスタイルはbody、それらの子またはその子孫に継承されません。

4

4 に答える 4

1

いいえ。DOM では、子孫要素は親の継承可能な CSS を継承します。再度宣言することで親アイテムと一致するように「リセット」できますが、BODYスタイル宣言のみを変更するだけで、求めていることを正確に行うことはできません。

頭の中で考えられる解決策の 1 つは、body要素からの純粋な継承に依存するのではなく、クラスを作成し、1 つの宣言から側面を制御したいすべての要素でそれを使用することです。ただし、CSS の仕様により、これはまだ難しい場合があります。

于 2013-06-24T04:35:37.380 に答える
0

答えは完全ではありません

css キーワードを使用して、プロパティを初期値にリセットできますinitial。これは、これらのユーザー エージェント セット スタイル ( など-webkit-tap-highlight-color)に特に役立ちます。

この jsFiddle を参照してください

ただし、これは親が存在しない場合にデフォルトで設定される値ではなく、文字通りブラウザのデフォルト設定であることに注意してください。特に、bodyレベルの書式設定は考慮されません。


また、キーワードも含めましたdefault。これは、フォント サイズ指定子をまったく含めないのと実質的に同じです。カスケード チェーンを上って、フォント サイズが指定されているものを見つけます。この場合は要素名セレクターです。 .

于 2013-06-24T05:24:53.310 に答える