ホームページ  >  記事  >  ウェブフロントエンド  >  CSS セレクターの並べ替えと疑似クラスと疑似オブジェクト

CSS セレクターの並べ替えと疑似クラスと疑似オブジェクト

高洛峰
高洛峰オリジナル
2017-02-09 11:17:342574ブラウズ

CSS セレクターの構成

  • 1. ワイルドカード *

       *{
               margin: 0;
               padding: 0;
           }

    機能: ページ上のすべての要素の内部パッチと外部パッチを 0 に設定します。

       .class * {
           color:#ffffff;
       }

    クラス class の下のすべての要素のフォントの色を白に設定します。

  • 2. タグセレクター

        p,
        p,
        a,
        span,
        h1 {
            color: #FFFFFF;
        }
htmlには多くのタグがあり、タグセレクターを直接使用してスタイルを設定することもできますが、タグセレクターとワイルドカードの選択範囲は非常に広いため、併用することをお勧めします。他のセレクターを使用します。

  • 3. クラスセレクター

    このページでは、ラベル、class-class に属性を追加し、<p class="myClass"></ などのクラス名をカスタマイズできます。 p> の場合、CSS のクラス セレクターを使用して、このクラスに必要な属性を追加できます。

           .myClass{
               color: #FFFFFF;
           }
    <p class="myClass"></p>,然后我就可以在css中用类选择符给这个类加上我们想要的属性。
           #myClass{
               color: #FFFFFF;
           }
  • 四、id选择符
      id选择符与类选择符有点相似<p id="myClass"></p>

    4. ID セレクター

    ID セレクターはクラス セレクター<p id="myClass"></p>
    .class1 span{
       
   }
  • に # が入っています。プレフィックスは、クラスとは異なり、HTML 内で id が 1 回しか出現できないということです。id の一意性は理解しているかもしれませんが、同じクラスと ID で 2 つの p を記述しました。ただし、ID を使用してスタイルを追加すると、両方の ID に対して通常のスタイルが正常に表示され、エラーは報告されないことがわかりました。ただし、同じIDだとJavaScriptなどのスクリプト言語の判定でエラーが発生します。 ID セレクターが 2 つの同一の p にスタイルを追加できることを説明するのは不可能かもしれませんが、ここのポータルを見てください。簡単に言えば、これは、国に独自の法律があるのと同じように、原則です (私は意図的にタイプミスしました)。システムに捕まるのが怖いです) シールド) あなたは法律を犯すことはできません、そうでなければ私たちはあなたを許しません。 [1]


  • 5. 包含セレクター
  • 包含セレクターは、要素の子要素に作用するため、派生セレクターまたは子孫セレクターとも呼ばれます。

         .class1 > span{
            
        }


    6. サブセレクター
  • は、サブ要素オブジェクトのスタイルを定義するために使用されます。サブ要素以外のオブジェクトは定義できません。 (本にはこ​​う書いてあります) 要素の直接の子要素オブジェクトのスタイルを定義する単語を追加したいと思います。たとえば、私は不動産を所有していますが、それは息子にのみ与えることができ、孫には与えることができません。たとえば、私には家がありません。 / 泣き出す。 「>」記号を親要素と子要素に直接追加します。
    •     .myClass + p{
              color: red;
          }


      7. 隣接セレクター
    • 同じ親の下にある要素の次の要素と一致します。
    (ここでなぜ次の要素なのに隣接セレクターと呼ぶのか聞きたいです。隣接というのは前後左右に隣接するものではないでしょうか?従属セレクターと呼んだほうがいいですね。ははは、冗談です。) 隣接する要素は「+」シンボリック リンクを直接使用します。
    • <p class="myClass" id="zz" style="color: #FFFFFF;"></p>

      8. 属性セレクター

      HTML タグには属性があり、各属性には属性値があります。例:

         p[class] {
             color: #FFFFFF;
         }
         --具有class属性的p字体颜色白色(忽略attr的值);
      属性セレクターは 7 つの (4+3) モードに分かれています。 .E[attr]

         p[class="myClass"] {
             color: #FFFFFF;
         }
         --class的值为'myClass'的p字体颜色白色;
      2.E[attr="value"]

         p[class~="myClass"] {
             background-color: #000000;
             color: #fff;
         }--匹配具有'attr'属性且属性值是具有空格符号隔开的字段其中一个字段等于value的E标签元素
         ex:
         <p class="myClass zz"></p>
         <p class="myClass cc"></p>
      3.E[attr~="value"]

         p[class|="myClass"] {
             background-color: #000000;
             color: #fff;
         }--匹配具有'attr'属性且属性值是以value值开头及使用连字符'-'分割的E标签元素。
         ex:
         <p class="myClass-zz"></p>
         <p class="myClass-cc"></p>
      4.E[attr|="value"]

         p[class^="myClass"] {
             background-color: #000000;
             color: #fff;
         }--匹配具有'attr'属性且属性值是以value值开头的E标签元素。
         ex:
         <p class="myClasszz"></p>
         <p class="myClasscc"></p>
      5 .E[attr^="value"]

         p[class$="myClass"] {
             background-color: #000000;
             color: #fff;
         }--匹配具有'attr'属性且属性值是以value值结尾的E标签元素。
         ex:
         <p class="zzmyClass"></p>
         <p class="ccmyClass"></p>
      6.E[attr$="value"]

         p[class*="myClass"] {
             background-color: #000000;
             color: #fff;
         }--匹配具有'attr'属性且属性值含有value的E标签元素。
         ex:
         <p class="myClass-zz"></p>
         <p class="myClass-cc"></p>
      7.E[attr*="value"]
    第一等:代表内联样式,如: style=””,权值为1000。
    第二等:代表ID选择器,如:#content,权值为100。
    第三等:代表类,伪类和属性选择器,如.content,权值为10。
    第四等:代表类型选择器和伪元素选择器,如p p,权值为1。
    PS:通用选择符'*'、子选择符'>'、相邻选择符'+'的权值为0。

  • 9. 最大のセレクターの組み合わせセレクターの利点は、特定の要素または特定の種類の要素のスタイルを記述できることではなく、さまざまなページ構造に合わせてさまざまな組み合わせができることです。
    言及しなければならないのは、セレクターの組み合わせのネスト レベルの数です。ネスト レベルの数が特定の数を超えてはいけないという直接の規定はありませんが、あまりにも多くのレベルをネストすると、ジャンク コードが生成されやすくなり、インクルージョンには適していません。

  • 10. CSS セレクターの重み

    各レベルはセレクターの種類を表し、最終的に値を加算します。すべてのレベルのセレクターの特別な値を取得します。

  • 4つのレベルの定義は以下の通りです:

    ex:
        .myClass #zz h1 {
            color: #FFFFFF;
        }
    权值为: 10 + 100 + 1 = 111 ;
    CSS組み合わせを使用する場合、重みは各レイヤーの重みの合計に等しくなります。

       :link:指示为超链接(既有一个href属性),并指向一个未访问地址的所有锚。
       :visited:指示作为已访问地址超链接的所有锚。
       :focus:指示当前拥有输入焦点的元素,也就是说,可以接受键盘输入或者能以某种方式激活的元素。
       :hover:指示鼠标指针停留在哪个元素上,例如,鼠标指针可能停留在一个超链接上
       :active:指示被用户输入激活的元素,例如,鼠标指针停留在一个超链接上时,如果用户点击鼠标,就会激活这个超链接,:active将指示这个超链接。
       :first-letter:设置对象内的第一个字符的样式表属性。 
       :first-line:设置对象内的第一行的样式表属性。 
       :first-child:设置对象(Selector1)的第一个子对象(Selector2)的样式表属性。 
       :first:设置页面容器第一页使用的样式表属性。仅用于@page规则。 
       :left:设置页面容器位于装订线左边的所有页面使用的样式表属性。仅用于@page规则。 
       :right:设置页面容器位于装订线右边的所有页面使用的样式表属性。仅用于@page规则。 
       :lang:设置对象使用特殊语言的内容样式表属性。
    • 11. 疑似クラス、疑似オブジェクトセレクター

      共通疑似クラス:

         E:nth-child(n):匹配父元素中的第n个子元素E。
         E:nth-last-child(n):匹配父元素中的倒数第n个结构子元素E。
         E:nth-of-type(n):匹配同类型中的第n个同级兄弟元素E。
         E:nth-last-of-type(n):匹配同类型中的倒数第n个同级兄弟元素E。
         E:last-child:匹配父元素中最后一个E元素。
         E:first-of-type:匹配同级兄弟元素中的第一个E元素。
         E:only-child:匹配属于父元素中唯一子元素的E。
         E:only-of-type:匹配属于同类型中唯一兄弟元素的E。
         E:empty:匹配没有任何子元素(包括text节点)的元素E。
      構造疑似クラス:

         E:checked:匹配所有用户界面(form表单)中处于选中状态的元素E
         E:enabled:匹配所有用户界面(form表单)中处于可用状态的E元素
         E:disabled:匹配所有用户界面(form表单)中处于不可用状态的E元素
         E:selection:匹配E元素中被用户选中或处于高亮状态的部分
      UI要素ステータス疑似クラス:

          E:not(s):匹配所有不匹配简单选择符s的元素E
      否定疑似クラス:

      りー

      ターゲット擬似クラス クラス:

         E:target:匹配相关URL指向的E元素
      ユニバーサル兄弟要素セレクター:

         E ~ F:匹配E元素之后的F元素
      擬似オブジェクト:

         :before用来和content属性一起使用,设置在对象前(依据对象树的逻辑结构)发生的内容。
         :after用来和content属性一起使用,设置在对象后(依据对象树的逻辑结构)发生的内容。

    注: この記事は、「CSS Things」および css2/css3 リファレンス マニュアルを参照しています。あくまで個人的な意見ですので、間違っている点や不適切な点があればご指摘ください。転載の際は出典を明記してください、ご協力よろしくお願いします!

    CSSセレクターの構成

    • 1. ワイルドカード*

         *{
                 margin: 0;
                 padding: 0;
             }
      機能: ページ内のすべての要素の内側と外側のパッチを0に設定します。

         .class * {
             color:#ffffff;
         }
      クラスクラスの下のすべての要素のフォントの色を設定します。

    • 2. タグ セレクター

            p,
            p,
            a,
            span,
            h1 {
                color: #FFFFFF;
            }

    html には多くのタグがあり、タグ セレクターとワイルドカードの選択範囲が非常に広いため、タグ セレクターを直接使用してスタイルを設定することをお勧めします。他のセレクターを併用してください。

    • 三、类选择符
        在页面中,我们可以给标签加上一个属性,class-类,自定义一个类名,比如<p class="myClass"></p>,然后我就可以在css中用类选择符给这个类加上我们想要的属性。

             .myClass{
                 color: #FFFFFF;
             }
    • 四、id选择符
        id选择符与类选择符有点相似<p id="myClass"></p>

             #myClass{
                 color: #FFFFFF;
             }

      前面是一个 # 的前缀,与class不同的是,id在html中只允许出现一次,可能你明白id的唯一性,但是你写了两个p,相同class、id。却发现用id添加样式的时候,两个id都成功出现了正常样式且没有报错。但是相同id会导致JavaScript等脚本语言判断错误。这么说可能无法解释好id选择符可以给两个相同p添加样式,但是看这里传送门,简单点说,这就是个原则,就好像一个国家有它的法率(故意错别字,我怕被系统屏蔽)你不能违反法率,否则就容不下你。[1]

    • 五、包含选择符
        包含选择符也可以叫派生选择符或后代选择器,因为作用是在某元素的子元素上。

          .class1 span{
             
         }
    • 六、子选择符
        作用是定义子元素对象的样式,无法定义子元素以外的对象。(书上是这么说的)我想加个词,定义某元素的直接子元素对象的样式。打个比方,我有一处房产,但是只能给我儿子,不能给我孙子。打个比方哈,我没有房子。/泪崩。
      父元素子元素直接加个'>'符号。

         .class1 > span{
            
        }
    • 七、相邻选择符
        匹配同一个父级下某元素的下一个元素。
      (这里我想问问既然是下一个元素为什么要叫相邻选择符,相邻不是前后左右相邻吗,叫下级选择符好了,哈哈哈,开个玩笑。)相邻元素直接用'+'符号连接。

        .myClass + p{
            color: red;
        }
    • 八、属性选择符
        任何一个HTML标签都会有属性存在,且每个属性都具有属性值;比如:

      <p class="myClass" id="zz" style="color: #FFFFFF;"></p>

      属性选择符分为七(4+3)种模式:

      1.E[attr]

         p[class] {
             color: #FFFFFF;
         }
         --具有class属性的p字体颜色白色(忽略attr的值);

      2.E[attr="value"]

         p[class="myClass"] {
             color: #FFFFFF;
         }
         --class的值为'myClass'的p字体颜色白色;

      3.E[attr~="value"]

         p[class~="myClass"] {
             background-color: #000000;
             color: #fff;
         }--匹配具有'attr'属性且属性值是具有空格符号隔开的字段其中一个字段等于value的E标签元素
         ex:
         <p class="myClass zz"></p>
         <p class="myClass cc"></p>

      4.E[attr|="value"]

         p[class|="myClass"] {
             background-color: #000000;
             color: #fff;
         }--匹配具有'attr'属性且属性值是以value值开头及使用连字符'-'分割的E标签元素。
         ex:
         <p class="myClass-zz"></p>
         <p class="myClass-cc"></p>

      5.E[attr^="value"]

         p[class^="myClass"] {
             background-color: #000000;
             color: #fff;
         }--匹配具有'attr'属性且属性值是以value值开头的E标签元素。
         ex:
         <p class="myClasszz"></p>
         <p class="myClasscc"></p>

      6.E[attr$="value"]

         p[class$="myClass"] {
             background-color: #000000;
             color: #fff;
         }--匹配具有'attr'属性且属性值是以value值结尾的E标签元素。
         ex:
         <p class="zzmyClass"></p>
         <p class="ccmyClass"></p>

      7.E[attr*="value"]

         p[class*="myClass"] {
             background-color: #000000;
             color: #fff;
         }--匹配具有'attr'属性且属性值含有value的E标签元素。
         ex:
         <p class="myClass-zz"></p>
         <p class="myClass-cc"></p>
    • 九、选择符组合
        选择符最大的优势不是可以给某元素或某类元素书写样式,而已针对不同的页面结构组合成各种组合。
        不得不提的就是选择符组合的嵌套层数,虽然没有哪里直接规定嵌套层数不能超过多少,但是,嵌套过多层数容易产生垃圾代码也不利于收录会。

    • 十、css选择符权重
        把特殊性分为4个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器的个数乘以这一等级的权值,最后把所有等级的值相加得出选择器的特殊值。

    4个等级的定义如下:

    第一等:代表内联样式,如: style=””,权值为1000。
    第二等:代表ID选择器,如:#content,权值为100。
    第三等:代表类,伪类和属性选择器,如.content,权值为10。
    第四等:代表类型选择器和伪元素选择器,如p p,权值为1。
    PS:通用选择符'*'、子选择符'>'、相邻选择符'+'的权值为0。

    使用css组合的时候,权值等于每一层的权值相加。

    ex:
        .myClass #zz h1 {
            color: #FFFFFF;
        }
    权值为: 10 + 100 + 1 = 111 ;
    • 十一、伪类、伪对象选择符

      常见伪类:

         :link:指示为超链接(既有一个href属性),并指向一个未访问地址的所有锚。
         :visited:指示作为已访问地址超链接的所有锚。
         :focus:指示当前拥有输入焦点的元素,也就是说,可以接受键盘输入或者能以某种方式激活的元素。
         :hover:指示鼠标指针停留在哪个元素上,例如,鼠标指针可能停留在一个超链接上
         :active:指示被用户输入激活的元素,例如,鼠标指针停留在一个超链接上时,如果用户点击鼠标,就会激活这个超链接,:active将指示这个超链接。
         :first-letter:设置对象内的第一个字符的样式表属性。 
         :first-line:设置对象内的第一行的样式表属性。 
         :first-child:设置对象(Selector1)的第一个子对象(Selector2)的样式表属性。 
         :first:设置页面容器第一页使用的样式表属性。仅用于@page规则。 
         :left:设置页面容器位于装订线左边的所有页面使用的样式表属性。仅用于@page规则。 
         :right:设置页面容器位于装订线右边的所有页面使用的样式表属性。仅用于@page规则。 
         :lang:设置对象使用特殊语言的内容样式表属性。

      结构性伪类:

         E:nth-child(n):匹配父元素中的第n个子元素E。
         E:nth-last-child(n):匹配父元素中的倒数第n个结构子元素E。
         E:nth-of-type(n):匹配同类型中的第n个同级兄弟元素E。
         E:nth-last-of-type(n):匹配同类型中的倒数第n个同级兄弟元素E。
         E:last-child:匹配父元素中最后一个E元素。
         E:first-of-type:匹配同级兄弟元素中的第一个E元素。
         E:only-child:匹配属于父元素中唯一子元素的E。
         E:only-of-type:匹配属于同类型中唯一兄弟元素的E。
         E:empty:匹配没有任何子元素(包括text节点)的元素E。

      UI元素状态伪类:

         E:checked:匹配所有用户界面(form表单)中处于选中状态的元素E
         E:enabled:匹配所有用户界面(form表单)中处于可用状态的E元素
         E:disabled:匹配所有用户界面(form表单)中处于不可用状态的E元素
         E:selection:匹配E元素中被用户选中或处于高亮状态的部分

      否定伪类:

          E:not(s):匹配所有不匹配简单选择符s的元素E

      目标伪类:

         E:target:匹配相关URL指向的E元素

      通用兄弟元素选择器:

         E ~ F:匹配E元素之后的F元素

      伪对象:

         :before用来和content属性一起使用,设置在对象前(依据对象树的逻辑结构)发生的内容。
         :after用来和content属性一起使用,设置在对象后(依据对象树的逻辑结构)发生的内容。

    更多css选择符整理及伪类、伪对象 相关文章请关注PHP中文网!

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。