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 サービスの展開と構成

推薦する

Vueタイムラインコンポーネントの使い方

この記事の例では、参考までにvueタイムラインコンポーネントの具体的な実装コードを共有しています。具...

JavaScript オブジェクトの 3 つのプロパティ

目次1. 書き込み可能: 書き込み可能2. 列挙可能: 列挙可能3. 設定可能: 設定可能オブジェク...

MySQL の大きなデータ テーブルにフィールドを追加する方法

序文フィールドの追加は誰でもよく知っていると思います。簡単に記述できます。MySQL テーブルにフィ...

HTMLページでよく使われるいくつかの小さなメソッド

<Head>タグに追加する<meta http-equiv="pragm...

MySQL でデータをクエリし、条件に基づいて別のテーブルに更新する方法の例

この記事では、MySQL が条件に基づいてデータをクエリし、別のテーブルに更新する方法を例を使用して...

Linux での Hbase のインストールと設定のチュートリアル

目次Linux での Hbase のインストールと設定1. Hbaseインストールパッケージをダウン...

MySQLのユーザーアカウント管理と権限管理の詳細な説明

序文MySQL の権限テーブルは、データベースの起動時にメモリにロードされます。ユーザーが ID 認...

docker に openjdk をインストールして jar パッケージを実行する方法

画像をダウンロード docker プル openjdkデータボリュームの作成java_appデータボ...

VMware インストール エラー VMware Workstation が VMware 認証サービスを開始できませんでした

背景: SAP ECC サーバーをインストールし、XP をプレインストールしたいと考えています。XP...

MySql 認証に基づく vsftpd 仮想ユーザー

目次1. MySQLのインストール1.2 テーブル、データベース、ユーザーを作成する1.3 リモート...

js に基づいて大きなファイルのアップロードとブレークポイントの再開を管理する方法

目次序文フロントエンド構造バックエンド構造(ノード+エクスプレス) FormDataに基づくファイル...

Tomcat maxPostSize設定実装プロセス分析

1. maxPostSize を設定する理由は何ですか? tomcat コンテナには送信データのサイ...

Linuxでホスト名を永続的に変更する方法

ホスト名を変更する場合は、以下の手順に従ってください。ホスト名の使用hostnameコマンドを使用す...

JenkinsのLinuxインストール手順と各種問題解決(ページアクセス初期化パスワード)

1. Java環境jdk1.8を準備するJavaがインストールされているかどうかを確認します。イン...