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

推薦する

DockerはRedisをインストールし、操作用のビジュアルクライアントを導入します

1 はじめにRedis 、 ANSI C言語で開発されたKey-Valueベースの高性能NoSQLデ...

Vue のグローバル ウォーターマーク実装例

目次1. 透かしのJsファイルを作成する2. 導入操作2.1 App.vueや他のページでの参照2....

Linux SSHポートを転送する3つの方法

ssh は私が最も頻繁に使用する 2 つのコマンドライン ツールのうちの 1 つです (もう 1 つ...

Nginx アップロードファイルのサイズを変更する簡単な方法

オリジナルリンク: https://vien.tech/article/138序文私は、マークダウン...

MySQL トリガー構文とアプリケーション例

この記事では、例を使用して MySQL トリガーの構文とアプリケーションを説明します。ご参考までに、...

マージンの重複問題を解決する方法

1. まず、2つ以上の隣接する通常フローブロック要素の垂直マージンの崩壊を引き起こす原因を知る必要が...

Win10 インストール Linux システム チュートリアル ダイアグラム

Windows システムに仮想マシンをインストールするには、 VMware Workstationソ...

メタタグのビューポートはデバイス画面のCSSを制御します

コードをコピーコードは次のとおりです。 <meta name="viewport&q...

適応レイアウトの処理について(フロートとマージンネガティブマージンを使用)

適応型レイアウトは、実際のアプリケーションでますます一般的になっています。今日は、主にフローティング...

Mongodb の GUID 表示の問題の詳細な分析

問題を見つける最近、プログラムのストレージを Mongodb に移行したところ、Guid 型が書き込...

すべてのウェブ開発者が知っておくべき61のこと

通常、全員のスピーチを最初から最後まで読む必要があります。ただし、Stack Overflow には...

Vueで背景色と透明度を設定する方法

背景色と透明度の設定上記のように、最初の画像の場合は、灰色の背景と左上隅に白い「カバー」という文字を...

MySQLの主キーとユニークキーの重複挿入の解決策の詳細な説明

目次解決: 1. 無視する2. 交換する3. 重複キーの更新についてデータを挿入するときに、重複した...

MYSQLデータベースの最適化段階を簡単に理解する

導入面接官がこんな質問をしたことはありませんか?データベースをどのように最適化しますか?では、この質...

Tomcat ソースコード起動コンソールの中国語文字化けのデバッグプロセス記録

問題を見つける今日はTomcatのソースコードを勉強するつもりなので、公式サイトからTomcatのソ...