blog

cssカスケードルール

1, カスケード・コンテキスト: 要素がカスケード・コンテキストを含んでいる場合、それはz軸において優れていると解釈することができます。 2, cascading level: 同じカスケード・コンテ...

Apr 20, 2020 · 5 min. read
シェア

cssカスケードルール

カスケーディング・ルール」とは、ウェブ・ページ内の要素が重なったときの振る舞いを規定するルールのことです。

まず、「カスケード」の基本的な概念について説明します。

1、カスケード・コンテキスト:要素にカスケード・コンテキストが含まれる場合、z軸方向に優位であると解釈することができ、カスケード・コンテキストは境界を意味します。

2、カスケード・レベル:z軸上で同じカスケード・コンテキストの要素の順序を決定します。

すべての要素は、カスケーディング・コンテキスト要素や通常の要素などを含む、カスケーディング・レベルを持っています。

要素のカスケード順序

要素がカスケードされるとき、特定の垂直順序を持つことを示します。

カスケード・コンテキストとカスケード・レベルは概念で、カスケード順序は規則です。

css 2.1のカスケード規則を以下に示します:

ここで興味深い問題があります。それは、インラインの水平ボックスのカスケード順序は、フロートやブロックの水平ボックスよりも高いということです。もし私のような疑問をお持ちでしたら、次の図をご覧ください。
backgroud/borderは装飾属性で、block/floatはcss2.1ではレイアウトなどでよく使われ、inline要素はコンテンツです。そして、Webページで最も重要なのはコンテンツです。そのため、コンテンツのカスケード順を高くすることで、カスケード状況が発生したときに、グラフィックの正常な表示を確保できるようにすることが重要です。

カスケードガイドライン

要素がカスケードされる場合、オーバーレイの関係は以下の2つのガイドラインに従います:

  • どちらが大きく、どちらが上か: z-index属性の値のように、カスケード・レベルの明確な指示がある場合、同じカスケード・コンテキスト・フィールドでは、カスケード・レベルの値が大きい方が小さい方に優先します。
  • 後から来たもの:要素が同じカスケード・レベルと同じカスケード順序を持つ場合、DOM フローで後から来た要素は、先に来た要素を上書きします;

カスケード・コンテキスト

カスケードコンテキストの特徴

1, カスケード・コンテキストは、通常の要素よりも高いカスケード・レベルを持ちます;

2、カスケーディング・コンテキストは入れ子にすることができ、内部のカスケーディング・コンテキストとその子はすべて外部の「カスケーディング・コンテキスト」に従います;

3、各カスケーディング・コンテキストはその兄弟要素から独立しています、すなわち、カスケーディング順序に変更を加えるとき、子孫要素だけを考慮する必要があります;

4、各カスケード・コンテキストは自己完結しており、要素がカスケードされると、要素全体が親のカスケード・コンテキストのカスケード順序にあるとみなされます;

カスケードコンテキストの作成

ブロック・フォーマット・コンテキストと同様に、カスケード・コンテキストは基本的にいくつかの特定のcssプロパティによって作成されます;

1, ナチュラリスト:ページのルート要素`<html>`ルート要素のコンテキストと呼ばれるカスケード・コンテキストで生まれる 
2,正統派:z-index値が数値の位置決めされた要素に対する伝統的な「カスケード・コンテキスト」。”;
 相対/絶対、Firefox/IEブラウザ(Chromeを除く)の位置値について
 (鶺鴒はポジションを含む:fixed 宣言された位置指定要素は、z-indexの値がautoでないとき
 カスケード・コンテキスト<br />
 
3,拡張パイ:その他のcssプロパティ
(1)要素はフレックスレイアウト要素である(親要素の表示):flex|inline-flex),また、z-indexの値はautoではない。
(2)要素の不透明度が1でない。
(3)要素のtransformの値がnoneではない。
(4)エレメントミックスブレンドモードの値が正常でない。

カスケード・コンテキストとカスケード順序の関係

通常の要素はカスケーディング・コンテキストを持ち、その要素のカスケーディング順序は一般的に2つのうちの1つになります:

1、カスケード・コンテキスト要素がz-indexの値に依存しない場合、カスケード順序はz-index: autoと**z-inde: 0;**が同じレベルです;

2, z-indexに依存する場合、カスケード順序を決定するz-indexの値があります;

従って、一旦要素がpositioned要素になると、そのカスケード順序は通常の要素IQになります;一旦要素がpositioned要素になると、そのz-indexが自動的に有効になるので、この時z-indexの値はauto、つまりz-index:0レベルです。

z-indexをサポートしていないカスケーディング・コンテキスト要素は、当然z-index:autoになり、これはカスケーディング・コンテキスト要素が位置指定された要素と同じカスケーディング順序にあることを意味します。

これがその仕組みです。

z-indexネガティブの原則

負のz-indexの提示は、 "カスケード・コンテキスト ""カスケード・オーダー " と密接に関係しています。下の通常の非表示の例を見てください:
親要素をカスケード・コンテキスト要素にするコード行を追加するだけで、z-index: -1の非表示は何の効果も持ちません。なぜなら、z-index:-1はbackgroud/borderの上にカスケードされるからです。
負の z-index でレンダリングする処理は、最初にカスケードするコンテキスト要素を見つけ、そのカスケードするコンテキスト要素でカスケード順序を停止する処理です。
z-indexネガティブな仕事:
1,要素を隠すには、カスケード・コンテキスト内の親要素に背景色を追加するだけで、その要素を隠すことができる;
2,エレメントの後ろにポジショニングする

z-index使用ガイドライン

非フローティング要素では、 z-index値を設定する必要はなく、 z-indexを設定する場合、最大値は2を超えてはなりません。

理由

1、位置指定された要素にz-indexを設定すると、その要素はカスケードコンテキストの要素となり、カスケード順序が変更され、親要素のカスケード順序によって子要素が他の要素の問題をカバーするために巨大なz-indexを設定することができない可能性があります。

2, z-indexの値を任意に設定することは避けてください。

上記のガイドラインは、ポップアップなどを除いた通常の DOM 要素についてのみです。

Read next

アルゴリズムとデータ構造:様々なソート・アルゴリズムのJS実装

注意:デフォルトでは、小さいものから大きいものへとソートされます。バブル・ソートでは、並び順のないセクションの最後に、そのセクションの中で最大の数字が置かれます。時間複雑度:O 空間複雑度:O 選択ソート 選択ソートの比較処理はバブルソートと同じです。

Apr 20, 2020 · 8 min read