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

推薦する

Ubuntu 16.04 64 ビット版の VMware Tools のインストールと構成のグラフィック チュートリアル

この記事では、VMware Toolsのインストールと構成に関するグラフィックチュートリアルを参考と...

16進カラーコード(完全版)

赤とピンク、およびそれらの 16 進コード。 #990033 #CC6699 #FF6699 #FF...

10分でDockerを使ったマイクロサービスのデプロイ方法を学ぶ

Docker は 2013 年のリリース以来、広く注目され、ソフトウェア業界を変える可能性を秘めてい...

MongoDBのパフォーマンスを向上させる方法

MongoDB は高性能なデータベースですが、使用していくうちにパフォーマンスの問題が発生することが...

Linuxはsttyを使用して端末の回線設定を表示および変更します。

Sttty は、Linux で端末設定を変更および印刷するための一般的なコマンドです。 1. パラ...

JavaScriptのvar let constの違いは何ですか?

目次1. 繰り返し宣言1.1 変数1.2 しましょう1.3 定数2. 可変プロモーション2.1 変数...

全文検索とキーワードスコアリング方式のMySQL実装例

1. はじめに今日、同僚から、MySQL を使用して ElasticSearch に似た全文検索機能...

MySQL 5.7.17 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

インターネット上にはMySQL 5.7.17のインストールチュートリアルがほとんどなく不十分なので、...

MySQL 5.6.36 Windows x64 バージョンのインストールチュートリアルの詳細

1. 対象環境Windows 7 64ビット2. 材料(1)VC++2010リリースパッケージ(64...

jQueryはhide()とtoggle()関数を使用してカメラブランド表示の非表示機能を実現します。

最近、jQuery を学習しているときに、show()、hide()、toggle() 関数に出会い...

例を通してBRタグとPタグの違いを理解する

<br />改行タグの使用<br>改行タグ<br>は終わりのない...

Nginx ベースのアクセス制御と接続制限の実装

序文Nginxの組み込みモジュールは、同時リクエスト数の制限とリクエストのソースの制限をサポートして...

jwtを使用してノードによって生成されたトークンをどこに保存するかについての簡単な説明

A: 通常はクライアントに保存されます。 jwt または JSON Web Token は、リクエス...

Zabbix パスワードをリセットする方法 (ワンステップ)

問題の説明長い間アカウントパスワードを入力して Zabbix にログインしていないため、管理者パスワ...

JSオブジェクトの走査順序の詳細な説明

JavaScript ではオブジェクトを走査する順序は固定されていないと聞いたことがある人もいるかも...