CSS3セレクターの新機能の実装

CSS3セレクターの新機能の実装

基本的なセレクタ拡張

1. 子要素セレクター

:tomato: #wrap > .inner {color: pink;} これは直接の子孫セレクターとも呼ばれます。このタイプのセレクターは、深い子孫要素ではなく、直接の子孫にのみ一致します。要約: > は要素の最初の世代の子孫に作用し、スペースは要素のすべての子孫に作用します。

2. 隣接兄弟セレクター

:tomato: #wrap #first + .inner {color: #f00;} 次の兄弟要素にのみ一致します

3. ユニバーサル兄弟セレクター

:tomato: #wrap #first ~ div { border: 1px solid;} これは、最初の要素の直後に続く(必ずしも直後ではない)必要があり、すべての兄弟要素に共通の親要素がある場合に、2番目の要素と一致します。

4. セレクタのグループ化

:tomato: h1,h2,h3{color: pink;} ここでのカンマは結合文字と呼ばれます

属性セレクタ

1. 部分文字列値属性セレクタ

:tomato: [attr|=val] : attr属性値がval(valを含む)であるか、val-で始まる要素を選択します。

:tomato: [attr^=val] : attr属性値がvalで始まる要素を選択します(valを含む)。

:tomato: [attr$=val] : attr属性値がvalで終わる要素(valを含む)を選択します。

:tomato: [attr*=val] : attr 属性値に文字列 val が含まれる要素を選択します。いくつかのブラウザは要素の部分文字列選択をサポートしています。

2. 存在と値の属性セレクタ

:tomato: [attr]: このセレクターは、attr の値に関係なく、attr 属性を含むすべての要素を選択します。 [attr=val]: このセレクターは、attr 属性に値 val が割り当てられている要素のみを選択します。

:tomato: [attr~=val]: は、attr という名前の属性を持つ要素を表します。attr は、スペースで区切られた値のリストであり、そのうちの少なくとも 1 つは val です。 たとえば、スペースで区切られた複数のクラス内に位置するクラス。たとえば、name="atguigu_llc atguigu"

:tomato: [name =val]: このセレクターは、name属性に値valが割り当てられている要素のみを選択します。

疑似クラスと疑似要素セレクター

1. リンク疑似クラス

:tomato: :link は、ハイパーリンクであり、未訪問のアドレスを指すすべてのアンカーを表します。

:tomato: :visited は、訪問したアドレスを指すハイパーリンクであるすべてのアンカーを表します。

:tomato: :targetは、URIのフラグメント識別子である特別な要素を表します。

:exclamation: :link、:visited、:target はリンク要素に作用することに注意してください。最初の2つはaタグでのみ機能します

*{
                マージン: 0;
                パディング: 0;
            }
            div{
                幅: 300ピクセル;
                高さ: 200px;
                行の高さ: 200px;
                背景:淡い緑;
                色: ホットピンク;
                テキスト配置: 中央;
                表示: なし;
            }
            a:訪問{
                色:オレンジ;
            }
            :ターゲット{
                表示: ブロック;
            }

2. 動的擬似クラス

:tomato: :hoverは要素の上にマウスを移動させることを意味します

:tomato: :active は、ユーザーによってアクティブ化された要素と一致します(クリックして保持)

:tomato:a タグの :link と :visited はすべての a タグのステータスをカバーできるため、:link、:visited、:hover、:active が a タグに同時に出現する場合、:link と :visited を最後に配置することはできません。 ! !

:tomato: プライバシーと :visited セレクター 訪問済みリンクには、color、background-color、border-color の属性のみを適用できます。

:exclamation: :hover と :active は基本的にすべての要素に作用することに注意してください。

<スタイル タイプ="text/css">
            *{
                マージン: 0;
                パディング: 0;
            }
            {
                テキスト装飾: なし;
                色: 黒;
                表示: ブロック;
            }
            ホバー{
                フォントサイズ:24px;
                /*色: 赤;*/
            }
            
            リンク
                フォントサイズ:48px;
                /*色: ピンク;*/
            }
            a:訪問{
                /*フォントサイズ:96px;*/
                /*色: ディープピンク;*/    
            }
        </スタイル>

3. フォーム関連の疑似クラス

①:disableは無効なフォームに一致します

②: チェックマークが選択されたフォームと一致している

③:focusはフォーカスされたフォームに一致します

④: 有効にすると編集可能なフォームに一致します

実践演習1

<ヘッド>
    <メタ文字セット="UTF-8">
    <タイトル></タイトル>
    <スタイル タイプ="text/css">
        入力:有効{
            背景: スカイブルー;
        }
        入力:無効{
            背景: 濃いピンク;
        }
        入力:チェック済み{
            幅: 200ピクセル;
            高さ: 200px;
        }
        入力:フォーカス{
            背景: ピンク;
        }
    </スタイル>
</head>
<本文>
    <入力タイプ="テキスト" />
    <input type="text" disabled="無効" />
    <入力タイプ="チェックボックス" />
    <入力タイプ="テキスト" />
</本文>

練習問題 2 ラジオボタンのカスタマイズ

<ヘッド>
    <メタ文字セット="UTF-8">
    <タイトル></タイトル>
    <スタイル タイプ="text/css">
        *{
            マージン: 0;
            パディング:0;
        }
        ラベル{
            位置: 相対的;
            float:left; /*ブロックレベル要素の拡張サイズに変換*/
            幅:100ピクセル;
            高さ:100px;
            境界線:2px実線;
            境界線の半径: 50%;
            オーバーフロー:非表示;
        }
        ラベル > 範囲{
            位置: 絶対;
            左:0;
            トップ:0;
            下:0;
            右:0;
        }
        入力{
            位置: 絶対;
            左:-50px;
            上:-50px;
        }
        入力:チェック済み + span{
            背景:ピンク;
        }
    </スタイル>
</head>
<本文>
    <ラベル>
        <input type="radio" name="rongtuowulian" />
        <span></span>
    </ラベル>
    <ラベル>
        <input type="radio" name="rongtuowulian" />
        <span></span>
    </ラベル>
    <ラベル>
        <input type="radio" name="rongtuowulian" />
        <span></span>
    </ラベル>
</本文>

4. 擬似要素

:tomato: 概念: 疑似要素は、ページ内に実際には存在しない特別な要素 (特別な位置) を表します。

:tomato: 構文は次のように始まります:

:tomato: カテゴリー: ①::first-letter ②::first-line ③::selection ④::before ⑤::after 注: ④と⑤はcontent属性と組み合わせて使用​​する必要があります

:tomato: コード例:

<ヘッド>
    <メタ文字セット="utf-8">
    <meta name="viewport" content="width=デバイス幅,初期スケール=1.0" />
    <meta http-equiv="X-UA-compatible" content="ie=edge" />
    <タイトル></タイトル>
    <スタイル タイプ="text/css">
    p:最初の文字{
        色: #008000;
        フォントサイズ: 2.5rem;
    }
    p:最初の行{
        色: アクア;
    }
    p::選択{
        色:赤;
    }
    p:前{
        内容: 「私はあなたを永遠に愛します」
        色:青;
    }
    p:後{
        内容: '確かにそうです';
        色:緑;
    }
    </スタイル>
</head>
<本文>
    <div>こんにちは、大丈夫ですか?</div>
    <p> 私はまだ段落です。私はたくさん、たくさんです。解放碑は悪くないです。経済刺激策を維持してくださいハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハ</p>
</本文>

5. 構造擬似クラス(要点)

:tomato: インデックス値は 1 から始まります。 ! ! !インデックスは変数 n にすることができます (n のみ) インデックスは偶数または奇数にすることができます

:tomato: #wrap ele:nth-child(index) は、#wrap 内のインデックス番目の子要素に一致することを意味します。これらの疑似クラスは、すべての子要素に従ってソートされます。この子要素は ele である必要があります。

:tomato: #wrap ele:nth-of-type(index) は、#wrap 内のインデックス番目の ele 子要素に一致することを意味します。

さらに、:nth-child と :nth-of-type の間には非常に重要な違いがあります。 ! nth-of-typeは要素中心で、同じ型、nth-child内でソートされます(:first-child:last-childまたは:nth-child(1):nth-last-child(1)を基準)

/* 偶数は偶数を意味します

奇数は奇数を意味する

最初のタイプ: タイプ p にランク付けされる

最初の子: すべての要素が配置される

*/

:tomato::nth-child(インデックス) シリーズ

:最初の子

:最後の子

:n番目の最後の子(インデックス)

:tomato::nth-of-type(インデックス) シリーズ

:最初のタイプ
:最後のタイプ
:n番目最後のタイプ(インデックス)
:only-of-type (:first-of-type:last-of-type とは対照的)
 または:n番目の型(1):n番目の最後の型(1))    
:ない        
:empty (コンテンツは空でなければならず、スペースは許可されず、属性は OK です)

コードサンプル

*{
            マージン: 0;
            パディング: 0;
        }
        #wrap li:nth-of-type(1){
            色: ピンク;
        }
        p:only-of-type{
            境界線: 1px 実線;
        }

6. 疑似要素セレクター

::後

::前に

::最初の文字

::最初の行

::選択

#ラップ::前{
        コンテンツ:"";
        表示:ブロック;
        幅:200px;
        高さ:200px;
        背景: #00FFFF;
    }
    #ラップ::後{
        コンテンツ:"";
        表示:ブロック;
        幅:200px;
        高さ:200px;
        背景: #0000FF;
    }

CSS3 セレクターの新しい問題の実装に関するこの記事はこれで終わりです。CSS3 セレクターに関するより関連性の高い新しいコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

<<:  HTML ページジャンプとパラメータ転送の問題

>>:  Linux での Apache サービスの展開と構成

推薦する

Javascript デザインパターン プロトタイプ モードの詳細

目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...

ウェブデザインにおける円形要素の使用例 25 選

本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...

MySQL ビューの原則分析

目次更新可能なビュービューのパフォーマンスビューの制限ビューは MySQL 5.0 以降で導入されま...

ウェブページサイズに関する調査

<br />統計によると、Web ページの平均サイズは 2003 年以降 3 倍に増加し...

webpackの遅延読み込みとプリロードの詳細な説明

目次通常の読み込み遅延読み込みプリロードプリロードを使用しないプリロードの使用要約する通常の読み込み...

ウェブサイト開発におけるフロントエンド開発者とアーティストの知識の違い

概要: 多くの企業、特にインターネット Web サイトを主な事業とする企業のほとんどが、「アーティス...

Mac での MySQL と Squel Pro の設定

Node.js の人気に応えて、最近、いくつかのサーバー側機能を実装するために Node.js を使...

SQLデータベースの14の事例の紹介

データシート /* Navicat SQLite データ転送 ソースサーバー: school ソース...

Ubuntu 18.04 に vsftpd をインストールするための実装コード

vsftpdをインストールする $ sudo apt-get install vsftpd -y v...

Ubuntuのpython3でvenvを使用して仮想環境を作成する

1. 仮想環境はプロジェクトに従い、単一のプロジェクト用の仮想環境を作成します(Python 3.4...

MySQLのint主キーの自己増分の問題を解決する

導入MySQL データベースを使用する場合、int を主キーとして使用し、自動インクリメントに設定す...

CSS の複雑なセレクターと CSS のフォントスタイルと色属性の詳細な説明

これまでに CSS の基本的なセレクターをいくつか学習しましたが、今日は CSS の複雑なセレクター...

Vue ミックスインの使い方の詳しい説明

目次Vue ミックスインの使用ミックスインでのデータアクセスミックスイン/index.jsホーム.v...

弾力性のあるナビゲーション効果を実現するJavaScript

この記事では、弾性ナビゲーション効果を実現するためのJavaScriptの具体的なコードを参考までに...

MySQL InnoDB インデックス拡張の詳細な説明

インデックス拡張: InnoDB は、プライマリ キー列をそのインデックスに追加することで、各セカン...