CSS疑似クラスの最も確実なガイド
あなたが初心者であろうと経験豊富なCSS開発者であろうと、あなたはおそらく聞いたことがあるでしょう 疑似クラス. 最も有名な疑似クラスはおそらく ホバー
, それは私達がそれがあるとき要素をスタイルすることを可能にします ホバー状態, すなわち、マウスなどのポインタデバイスがそれを指しているとき.
以前のマージンに関する投稿の概念:autoとCSS Floatsに続いて、この投稿の擬似クラスについて詳しく説明しました。様子を見よう 疑似クラスが本当に何であるか, それらがどのように機能するか、それらをどのように分類できるか それらが擬似要素とどう違うのか.
擬似クラスとは?
疑似クラスは、CSSセレクタに追加するためのキーワードです。 特別な州を定義する 属するHTML要素の。を使ってCSSセレクタに擬似クラスを追加することができます。 コロン構文 :
このような: a:ホバー…
CSSクラスは、トップメニュー項目やサイドバーウィジェットのタイトルなど、同じスタイルルールを適用したいHTML要素に追加できる属性です。つまり、CSSクラスを使って次のことができます。 HTML要素をグループ化または分類する どちらが似ているか.
疑似クラスは、それらも同様であるという意味でそれらと似ています。 同じ特性を共有する要素にスタイルルールを追加するために使用されます.
本物のクラスは ユーザー定義の そして ソースコードで見つけることができます, 例えば の 通常のCSSクラスの仕事 です 要素を分類またはグループ化する. 開発者はそれらの要素がどのようにグループ化されるべきかを知っています:彼らはグループ化するために "メニューアイテム"、 "ボタン"、 "サムネイル"などのようなクラスを形成し、そして類似の要素をスタイルします。これらの分類は、次の要素の特性に基づいています。 開発者自身によって与えられた. たとえば、開発者が しかしHTML要素は 彼ら自身の共通の特徴 それらの状態、位置、性質、およびページとユーザーとの対話に基づきます。これらの特徴は ではない 通常HTMLコードでマークされている, しかし私達はできます 疑似クラスでそれらをターゲットにする CSSでは、例えば: これらは、擬似クラスが一般的に対象としている種類の特性です。クラスと疑似クラスの違いをよく理解するために、クラスを使用しているとしましょう。 これらの最後の子要素には、次のCSSを使用してスタイルを設定できます。 しかし、最後の要素が変わるとどうなりますか?まあ、私たちは移動する必要があります この面倒な 更新クラスはユーザエージェントに任せることができます, 少なくとも要素間で共通の特性について(そして最後の要素であることはそれが得ることができるのと同じくらい共通です). 持っている 定義済み 疑似クラスにはたくさんの種類がありますが、それらのすべてが、そうでなければアクセスできない、またはアクセスが難しいトリックに基づいて要素をターゲットにする方法を提供します。これがMDNの標準擬似クラスのリストです。. 動的疑似クラスがHTML要素に追加され、HTML要素から削除される 動的に, 移行する州に基づいて ユーザーの操作に応じて. 動的擬似クラスの例をいくつか示します。 状態ベースの擬似クラスは、要素が追加されると要素に追加されます。 特定の静的状態にある. その最も有名な例のいくつかは以下のとおりです。 最も人気のある状態ベースの疑似クラスは、 構造的擬似クラスは要素を基にして要素を分類します 文書構造におけるそれらの位置. その最も一般的な例は 以下のように、分類が難しい雑多な他の擬似クラスもあります。 疑似クラスに関する最も難しいことの1つは、おそらく、それらの違いを理解することです。 どちらも構造擬似クラスであり、 親要素内の特定の要素 (コンテナ)、しかし異なる方法で. 仮定する n そして2 例を見てみましょう. この短いCSSが2つの異なるケースでHTMLをどのようにスタイルするかを見てみましょう。. ケース1では、aの内側の2番目の要素 しかし親要素が する 第二段落 この例では、 パラグラフ1、子供1 段落2、子3 2番目のケースでは、順不同リストを3番目に移動し、2番目の段落がその前に来ます。これは両方とも パラグラフ1、子供1 パラグラフ2、子2 あなたがの違いについてもっと読みたいのなら 擬似クラスについて話すとき、理解することも重要です 擬似要素とどう違うのか, 混同しないように. しかし、擬似クラスを使用してHTML要素を選択します。 文書ツリーに存在する 別にマークされていないだけで、疑似要素によって、 通常は存在しません DOMの中では、 またあります 構文の違い. 擬似要素は一般に二重コロンで識別されます これはCSS2のように、疑似要素が同様にシングルコロンでマークされているように混乱を招くことがあります - ブラウザは疑似要素のためのシングルコロン構文を受け入れます. 擬似クラスと擬似要素の間にも違いがあります。 CSSでそれらをターゲットにする方法. 擬似要素は現れることができるだけです 後に セレクタのシーケンス。一方、擬似クラスはCSSセレクタシーケンスのどこにでも配置できます。. たとえば、次のようにリスト要素の最後のリスト項目をターゲットにできます。 または セレクタの最初のシーケンスは、内部の最後の子を選択します。 擬似要素で似たようなことをしてみましょう. 上記のCSSコードは有効で、テキスト "red"が表示されます。 後に の 一方、このコードはうまくいきません。 擬似要素の位置を変更することはできません セレクターシーケンス内. また、疑似クラスはセレクタの横に1つだけ出現できますが、疑似クラスは疑似クラスです。 互いに組み合わせることができます 組み合わせが理にかなっている場合。たとえば、読み取り専用でもある最初の子要素をターゲットにするには、疑似クラスの組み合わせを作成します。 のセレクターコード それを知っておくことは重要です これらは ではない CSS疑似クラス それはjQueryのターゲットになっています。それらはjQueryセレクタ拡張と呼ばれます. jQueryセレクタ拡張機能 より単純なキーワードでHTML要素をターゲットにする. それらのほとんどは、単一のキーワードで表される複数の通常のCSSセレクタの組み合わせです。.疑似クラスの目的
.最終
異なる親コンテナ内の最後の要素を識別するため.
li.last テキスト変換:大文字。 option.last font-style:italic;
.最終
前の最後の要素から現在の要素までのクラス.:最後の子
疑似クラス 本当に便利です。このように、私たちは 最後の要素を示す必要はありません HTMLコードでは、ただし、次のCSSを使用してスタイルを設定できます。 li:last-child テキスト変換:大文字。オプション:最後の子フォントスタイル:斜体;
疑似クラスの主な種類
動的疑似クラス
ホバー
, :フォーカス
, :リンク
, そして 訪問した
, すべてに追加することができます アンカータグ.
a:訪れたcolor:#8D20AE; .button:hover、.button:focus フォントの太さ:太字。
状態ベースの擬似クラス
:チェックあり
チェックボックスに適用できます)
:全画面表示
現在フルスクリーンモードで表示されている要素をターゲットにします。:無効
以下のような無効モードになることができるHTML要素の場合 ,
, そして
.
:チェックあり
, チェックボックスがチェックされているかどうかを示すフラグ. .チェックボックス:オン+ラベルフォントスタイル:イタリック。入力:無効背景色:#EEEEEE;
3.構造的疑似クラス
:第一子
, :最後の子
, そして :n番目の子(n)
- その位置に基づいてコンテナ内の特定の子要素をターゲットにするためにallを使用することができます - そして :ルート
これはDOMの最高レベルの親要素をターゲットとします. 4.その他の疑似クラス
:しない(x)
セレクタxと一致しない要素を選択します:lang(言語コード)
特定の言語のコンテンツの要素を選択します:方向(方向性)
与えられた方向性(左から右または右から左)の内容を持つ要素を選択します. p:lang(ko)背景色:#FFFF00;ルート背景色:#FAEBD7;
第n子 vs タイプのn番目 疑似クラス
:nth-child
そして :n番目のタイプ
疑似クラス.:n番目の子供(n)
である要素をターゲットにします。 その親要素の2番目の子, そして :n番目の型(n)
ターゲット 2番目の 同型 要素の (段落など) 親要素の中. / *その親要素内の2番目の子でもある段落* / p:nth-child(2)color:#1E90FF; //親要素の内側の2番目の段落* / p:nth-of-type(2)font-weight:太字。
ケース1
第n子(2)
ルールは適用されません。それは二人目の子供ですが、それは ではない 段落. N型(2)
このルールは 他の要素を気にしない タイプ 親要素内の要素(順不同リストなど)の数.
N型(2)
ルールは子供3である2番目の段落をスタイルしよう.
番号なしリスト1、子2
ケース2
nth-child(2)
そしてその :n型(2)
2番目の段落はその親の2番目の子でもあるため、規則が適用されます。
番号なしリスト1、子3
:子供のn番目
そして :n番目のタイプ
疑似クラス、CSS Tricksには素晴らしい投稿があります。 SASSを使用している場合は、Family.scssを使用すると複雑なファイルを作成できます。 第n子'ified要素.疑似クラスと疑似要素
疑似要素
, といった ::前
そして ::後
(それらを使用する方法については、このチュートリアルを参照してください)またです ユーザーエージェントによって追加された, そして CSSを使ってターゲットを絞ってスタイルを設定することができます。 擬似クラスと同じように. ::前
そして ::後
)または既存の要素の特定の部分としてのみ(例: ::最初の一文字
または ::プレースホルダー
). ::
, 一方、疑似クラスは単一のコロンで識別されます。 :
.1. CSSセレクタシーケンスにおけるそれらの位置
二つの方法で.
ul>:last-child.red 色:#B0171F;
ul> .red:最後の子色:#B0171F;
要素(それはクラスを持ちます .赤
2番目の要素は、を持つ要素の中で最後の子を選択します。 .赤
クラス内
. ご覧のように, 疑似クラスの位置は変更可能. ul> .red :: after display:block;内容: '赤';カラー:#B0171F。
クラスを持つアイテム
.赤
. ul> :: after.red display:block;内容: '赤';カラー:#B0171F。
セレクタシーケンス内の発生数
:第一子
そして 読み取り専用
次のように :最初の子:読み取り専用色:#EEEEEE;
jQueryセレクタ拡張
:
構文は必ずしも適切なCSS疑似クラスを構成するわけではありません。これまでにjQueryを使ったことがあるなら、そのセレクターの多くを :
たとえば、構文 $( ':checkbox')
, $( ':input')
そして $( ':selected')
. / * button、select、inputなど、すべての入力関連HTML要素のフォントを変更します* / $( ":input").css( "font-family"、 "courier new")