![どのようにCSS:is、:where and:pseudoclassセレクターが機能しているか](https://img.php.cn/upload/article/000/000/000/173907229397859.jpg)
キーテイクアウト
document.querySelector()最初の一致するHTML要素を返します
<span>p {
</span> <span>font-weight: bold;
</span><span>}
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
document.QuerySeLectorAll()アレイのようなノデリストのすべての一致するHTML要素を返します-
擬似クラスセレクターは、現在の状態に基づいてHTML要素をターゲットにします。おそらく最もよく知られているのは次のとおりです。ホバーは、カーソルが要素を介して移動するときにスタイルを適用するため、クリック可能なリンクとボタンを強調するために使用されます。その他の一般的なオプションには次のものがあります。
-
:訪問:訪問リンク
の一致
:ターゲット:ドキュメントのurl- で標的となる要素と一致します
:First-Child:最初の子要素をターゲット-
:nth-child:特定の子要素を選択-
:空:コンテンツや子の要素なしで要素を一致させる-
:チェック:トグルオンチェックボックスまたはラジオボタンを一致させます-
:空白:空の入力フィールドをスタイル-
:enabled:有効な入力フィールドと一致します-
:無効:無効化された入力フィールドに一致します-
:必須:必要な入力フィールドをターゲット-
:有効:有効な入力フィールドと一致します-
:無効:無効な入力フィールド- に一致します
:再生:演奏オーディオまたはビデオ要素をターゲットにします-
ブラウザは最近、さらに3つの擬似クラスセレクターを受け取りました…
css:は擬似クラスセレクター
です
注:これは元々、Matches()および:any()、but:is()がCSS標準になっているとして指定されていました。
多くの場合、同じスタイリングを複数の要素に適用する必要があります。たとえば、段落テキストはデフォルトでは黒ですが、、
これは簡単な例ですが、より洗練されたページは、より複雑で冗長セレクター文字列につながります。任意のセレクターの構文エラーは、すべての要素のスタイリングを破る可能性があります。
SASS許可のネスト(ネイティブCSSにも来ています)などのCSSプレセッサー:
<span>p {
</span> <span>font-weight: bold;
</span><span>}
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
これにより、同一のCSSコードが作成され、タイピングの努力が削減され、エラーを防ぐことができます。しかし:
<span>/* default black */
</span><span>p {
</span> <span>color: #000;
</span><span>}
</span>
<span>/* gray in <article>, <section>, or <aside> */
</span><span>article p<span>,
</span></span><span>section p<span>,
</span></span><span>aside p {
</span> <span>color: #444;
</span><span>}
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ネイティブネストが到着するまで、CSSビルドツールが必要になります。 SASSのようなオプションを使用することをお勧めしますが、一部の開発チームに合併症を導入できます。
<span>article, section, aside {
</span>
<span>p {
</span> <span>color: #444;
</span> <span>}
</span>
<span>}
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
CSS:ここでは、擬似クラスセレクター
<span><span>:is(article, section, aside) p</span> {
</span> <span>color: #444;
</span><span>}
</span>
ログイン後にコピー
ログイン後にコピー
:where()selector構文は次のように同一であり、すべての最新のブラウザー(IEではなく)でサポートされています。多くの場合、同一のスタイリングになります。例えば:
<span>article section<span>:not(:first-child):is(.primary, .secondary) :is(h1, h2, p)</span> {
</span> <span>color: green;
</span><span>}
</span>
ログイン後にコピー
ログイン後にコピー
違いは
<span>article section<span>.primary:not(:first-child) h1,
</span></span><span>article section<span>.primary:not(:first-child) h2,
</span></span><span>article section<span>.primary:not(:first-child) p,
</span></span><span>article section<span>.secondary:not(:first-child) h1,
</span></span><span>article section<span>.secondary:not(:first-child) h2,
</span></span><span>article section<span>.secondary:not(:first-child) p</span> {
</span> <span>color: green;
</span><span>}
</span>
ログイン後にコピー
ログイン後にコピー
特異性
です。特異性は、どのCSSセレクターが他のすべてをオーバーライドすべきかを決定するために使用されるアルゴリズムです。次の例では、記事PはPだけよりも具体的であるため、内のすべての段落要素は灰色になります。
の場合:IS()の場合、特異性はその引数内で見られる最も具体的なセレクターです。の場合:where()、特異性はゼロです。
次のCSSを検討してください。
<span>/* NOT VALID - selector will not work */
</span><span>div<span>:is(::before, ::after)</span> {
</span> <span>display: block;
</span> <span>content: '';
</span> <span>width: 1em;
</span> <span>height: 1em;
</span> <span>color: blue;
</span><span>}
</span>
ログイン後にコピー
このCSSを次のHTMLに適用しましょう。
次のCodepenデモに示すように、段落のテキストは赤色になります。
ペンを参照してください
使用:SELECTORによるISセレクター(@SitePoint)
codepen。
<span><span>:where(article, section, aside) p</span> {
</span> <span>color: #444;
</span><span>}
</span>
ログイン後にコピー
:is()セレクターは記事Pと同じ特異性を持っていますが、スタイルシートの後半に掲載されるため、テキストは赤くなります。青色を適用するために、記事pと:is()セレクターの両方を削除する必要があります。
より多くのコードベースが使用されます:is()より:where()。ただし、次のゼロ特異性は、cssリセットのゼロ特異性をリセットすることができます。これは、特定のスタイリングが利用できない場合に標準スタイルのベースラインを適用します。通常、リセットはデフォルトのフォント、色、パディング、マージンを適用します。
このCSSリセットコードは、1EMから
以上がどのようにCSS:is、:where and:pseudoclassセレクターが機能しているかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。