ホームページ >ウェブフロントエンド >CSSチュートリアル >構造的な擬似クラス
この本は世界中の店舗で入手できます。また、ここで電子書籍バージョンを購入することもできます。
これまでのところ、属性と状態に基づいて要素を見つける方法を学びました。また、CSS3を使用すると、タグ内の場所のみに基づいて要素を配置することもできます。これらのセレクターは、構造的な擬似クラスに分類されます。
これらのセレクターは複雑に見えるかもしれませんが、後でそれらを適用する方法を見ると、より理にかなっています。 IE8以下を除いて、IE9および新しいバージョンとその他のすべてのブラウザはこれらのセレクターをサポートしています:
HTMLファイルでは、:root
ルート要素はhtml
要素です。
E:nth-child(n)
n番目のサブエレメントE. nパラメーターについては、以下の説明で説明します。
E:nth-last-child(n)
n番目の子要素F(最後の1つのカウントダウン)。 li:nth-last-child(1)
は、任意のリストの最後の項目と一致します。これはli:last-child
と同じです(以下の手順を参照)。
E:nth-of-type(n)
特定の親要素では、タイプEのn番目の要素はです。 nth-child
とnth-of-type
の違いは、以下の説明で説明されています。
E:nth-last-of-type(n)
はnth-of-type(n)
と同じですが、親要素の最後の要素から始まります。
ブラケットのパラメーターとして方程式an b
を使用するか、キーワードodd
およびeven
を使用する4つの擬似クラスがあります。構造的な擬似カテゴリには、:nth-child(an b)
、:nth-last-child(an b)
、:nth-of-type(an b)
、:nth-last-of-type(an b)
が含まれます。方程式an b
では、aは整数として乗数、bは整数としてオフセット、nは常に変数nです。
最も簡単な場合、整数を渡すことができます。たとえば、E:nth-of-type(3)
は、単一親要素の3番目のE要素の子を見つけます。 2つのキーワードのいずれかを渡すodd
またはeven
を渡して、お互いの要素を見つけることができます。また、E:nth-of-type(3n 1)
などの数値式をより効率的に渡すこともできます。 3nは、周波数を定義する3つの要素ごとに表し、1つはオフセットです。デフォルトのオフセットはゼロであるため、シリーズの3番目、6番目、および9番目の要素と一致し、nth-of-type(3n)
は1番目、4番目、7番目などと一致します。 nth-of-type(3n 1)
これらの数字の擬似クラスを使用すると、クラスをタグに追加せずに見つけたい要素を特定できます。最も一般的な例はテーブルです。他のすべての行の色はわずかに暗いため、読みやすくなります。これを達成するには、それぞれに奇数またはクラスを追加しなければなりませんでしたtr
。これで、マークに触れずに各奇数行を見つけるようにtr:nth-of-type(odd)
を宣言することができます。 3色のストライプテーブルをさらに進めることもできます:位置tr:nth-of-type(3n)
、tr:nth-of-type(3n 1)
、tr:nth-of-type(3n 2)
を使用して、それぞれに異なる色を適用することもできます。
E:first-child
eがその親要素の最初の子である場合、それは要素Eです。これはE:nth-child(1)
と同じです。
E:last-child
eがその親要素の最後の子である場合、それは要素eであり、E:nth-last-child(1)
と同じです。
:first-of-type
は:nth-of-type(1)
と同じです。
E:last-of-type
は:nth-last-of-type(1)
と同じです。
E:only-child
eがその親要素の唯一の子である場合、それは要素Eです。
E:only-of-type
親要素の直接子のタイプの唯一のE要素である場合、それは要素Eです。
nth-of-type
およびnth-child
の構造セレクターを使用する場合、この場合に「サブ要素」と「タイプ」が何を意味するかを理解することが重要です。 「sube要素」は、一致するすべての子要素を表示し、前身が一致するかどうかを確認します。タイプ最初に、前身と一致するすべての要素を見て、カウントに従って一致します。
p:nth-child(3n)
の場合、ブラウザは親要素の各3番目の子要素を表示します。子要素がPの場合、そうでない場合は一致しません。 p:nth-of-type(3n)
の場合、ブラウザは親要素のすべてのPの子供を調べ、3つのPSごとに一致します。
構造的擬似クラスは親要素に基づいており、新しい親要素ごとに再びカウントを開始します。彼らは、親要素の直接的な子要素である要素のみを表示します。テキストノードは方程式の一部ではありません。
E:empty
子要素のない要素
hello
は
と一致しませんが、p:empty
は一致します。このセレクターは、
などの空の要素または無効な要素にも一致します
and。 2文字の略語(ENなど)を使用する言語の要素。言語が要素自体または祖先で宣言されている場合、(E:lang(en)
属性が要素eの属性として存在する必要がある場合)とは異なり、E:[lang|=en]
はEと一致します。 lang
E:lang(en)
p:not(.copyright)
擬似クラスを一緒に参加できます。 :not
タイプの要素またはラジオボタンの要素を除き、ページ上のすべての入力要素と一致します。 input:not([type=checkbox]):not([type=radio])
構造的な擬似クラス
、:root
、:nth-child()
、:nth-last-child()
、:nth-of-type()
、:nth-last-of-type()
、:first-child
、:last-child
、:first-of-type
、:last-of-type
、:only-child
、 :only-of-type
、:empty
、
:nth-child()
。これらの擬似クラスにはそれぞれ、より正確なスタイルのHTML要素を可能にするユニークな機能があります。 :nth-child()
擬似クラスはどのように機能しますか? :nth-child(2)
:nth-child(odd)
:nth-child(2n 1)
擬似クラスは、同じレベルの要素のグループでの位置に基づいて要素を一致させます。数字、キーワード、または式にできるパラメーターを受け入れます。たとえば、
:nth-of-type()
はすべての奇数の子要素を選択します。 :nth-child()
と:nth-of-type()
の違いは何ですか? :nth-child()
:nth-child()
:nth-of-type()
とli
はどちらも位置に基づいて要素を選択しますが、これらの位置の計算方法は異なります。 p
すべての要素をそのタイプに関係なく兄弟として扱いますが、:nth-child()
は同じタイプの要素のみを計算します。たとえば、:nth-of-type()
およびli
は両方のタイプの要素を計算しますが、p
は、指定された要素に応じて
親要素の最初の子要素のスタイルを選択して設定するにはどうすればよいですか? :first-child
ul
親要素の最初の子要素のスタイルを選択して設定するには、li
pseudoクラスを使用できます。たとえば、最初のul li:first-child { color: red; }
要素の色を
:only-child
擬似クラスの機能は何ですか? :only-child
pseudoクラスは、親要素の唯一の子要素である要素と一致します。これは、兄弟要素がない場合にのみスタイルを要素に適用したい場合に役立ちます。たとえば、特別なスタイルをp
の要素にのみdiv
の要素に追加することをお勧めします。
:empty
pseudo-classの使用方法は? :empty
pseudoクラスは、子要素のない要素と一致します。これには、テキストノード、コメント、またはその他の要素が含まれます。たとえば、それを使用して空のdiv
を非表示にすることができます。そうしないと、div
。 div:empty { display: none; }
と:nth-of-type()
を結合して、その親要素内の最後のタイプの:last-child
要素を選択できます。 li
構造的な擬似クラスは擬似要素で使用できますか?
pseudo-classを使用して::before
pseudo-elementを使用できます。 :first-child
pseudoクラスを使用してゼブラプリントテーブルを作成するか、:nth-child()
pseudoクラスを使用してホバーするときにリンクの色を変更できます。可能性は無限であり、あなたの創造性によってのみ制限されています。 :hover
以上が構造的な擬似クラスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。