目次
元素选择器
关系选择器
属性选择器
要素セレクター
関係セレクター
属性セレクター
疑似クラスセレクター
关于:not()的用法
关于:nth-child()的用法
关于:...-child:...-of-type的差异
:empty区分空元素
伪对象选择器
总结
:not()
:nth-child()
:empty
擬似オブジェクト セレクター
概要

CSSセレクターの整理

Feb 09, 2017 am 11:23 AM
CSSセレクター

CSS は非常に簡単だと思っている人が多いですが、実際には CSS をうまく書くのは簡単ではありません。 CSS の各ポイントには実際に が含まれています。セレクターを例にとると、CSS セレクターは次の 5 つのカテゴリに大別できます。

  • CSS特别简单,但其实真正写好CSS并不容易,CSS的每一点其实内容都很多,就拿选择器来说,CSS选择器大概可以分为五类:
    • 元素选择器

    • 关系选择器

    • 属性选择器

    • 伪类选择器

    • 伪对象选择器

    元素选择器

    选择器 名称 描述
    * 通配选择器 选择所有的元素
    E 元素选择器 选择指定的元素
    #idName id选择器 选择id属性等于idName的元素
    .className class选择器 选择class属性包含className的元素

    元素选择器只要是写CSS都会经常用,这一块的内容非常简单,没什么特别要说的。

    关系选择器

    选择器 名称 描述
    E F 包含选择器 选择所有包含在E元素里面的F元素
    E>F 子选择器 选择所有作为E元素的子元素F
    E+F 相邻选择器 选择紧贴在E元素之后的F元素
    E~F 兄弟选择器 选择E元素所有兄弟元素F

    这里要注意几点:

    • 子选择器只能选中字元素,而不能选中孙辈;而包含选择符将会选中所有符合条件的后代,包括儿子,孙子,孙子的孙子...

    • 相邻选择符只会选中符合条件的相邻的兄弟元素;而兄弟选择符会选中所有符合条件的兄弟元素,不强制是紧邻的元素。

    • 在Android Browser4.2.*及以下,伪类选择器:checked与兄弟选择符一起使用会有一个bug,查看详情。

    属性选择器

    関係セレクター
  • 疑似クラスセレクター
  • 疑似オブジェクト セレクター

    要素セレクター

    选择器 描述
    E[att] 选择具有att属性的E元素
    E[att="val"] 选择具有att属性且属性值等于val的E元素
    E[att~="val"] 选择具有att属性且属性值其中一个等于val的E元素(包含只有一个值且该值等于val的情况)
    E[att|="val"] 选择具有att属性且属性值为以val开头并用连接符-分隔的字符串的E元素,如果属性值仅为val,也将被选择
    E[att^="val"] 选择具有att属性且属性值为以val开头的字符串的E元素
    E[att$="val"] 选择具有att属性且属性值为以val结尾的字符串的E元素
    E[att*="val"]要素セレクター
  • 属性セレクター
  • セレクター / th> 名前 説明
    *🎜🎜ワイルドカードセレクター🎜🎜すべての要素を選択🎜🎜🎜E🎜🎜要素セレクター🎜🎜指定した要素を選択🎜🎜🎜#idName🎜🎜id selector🎜🎜id idNameと等しい属性を持つ要素を選択🎜🎜 🎜.className🎜🎜クラスセレクター🎜🎜class属性にclassNameが含まれる要素を選択します🎜🎜🎜🎜🎜 CSSを記述するだけの要素セレクターがよく使われます。このセクションの内容は非常にシンプルであり、特に言うことはありません。

    関係セレクター

    🎜🎜E F🎜🎜セレクターが含まれます🎜🎜E 要素に含まれるすべての F 要素を選択します🎜🎜🎜E&gt ;F🎜🎜子セレクター🎜🎜 E 要素の子であるすべての F 要素を選択します🎜🎜🎜E+F🎜🎜隣接セレクター🎜🎜 E 要素の後の F 要素をすぐに選択します🎜 🎜🎜E~F🎜🎜兄弟セレクター🎜🎜 E 要素のすべての兄弟要素 F を選択します🎜🎜🎜🎜🎜 ここで注意すべき点がいくつかあります:
    • 🎜子セレクターは単語要素のみを選択できますが、孫は選択できません。包含セレクターは、息子、孫、孫の孫など、条件を満たすすべての子孫を選択します。
    • 🎜隣接セレクターは条件を満たす隣接する兄弟要素のみを選択しますが、兄弟セレクターは条件を満たすすべての兄弟要素を選択しますが、直接隣接する要素は必須ではありません。
    • 🎜Android Browser4.2.* 以下では、擬似クラスセレクター :checked を兄弟セレクターと併用するとバグが発生します。詳細を確認してください。

    属性セレクター

    セレクター 名前 説明
    🎜🎜E[att]🎜🎜 att 属性を持つ E 要素を選択します🎜🎜🎜E[att="val "] 🎜🎜 att 属性を持ち、属性値が val に等しい E 要素を選択します🎜🎜🎜E[att~="val"]🎜🎜 E 要素を選択しますatt 属性と属性値が val に等しい E 要素の 1 つ (値が 1 つしかなく、値が val に等しい場合を含む)🎜🎜🎜E[att|= "val"]🎜🎜属性値が val で始まり結合子 - で区切られた文字列である att 属性と E 要素を選択します。属性値が val のみの場合は、も選択できます🎜🎜🎜E[att^= "val"]🎜🎜 att 属性を持ち、属性値が val で始まる文字列である E 要素を選択します🎜🎜🎜E[att$="val"]🎜 🎜 att 属性を持ち、属性値が val で終わる文字列である E 要素を選択します🎜🎜🎜E[ att*="val"]🎜🎜 att 属性を持ち、その属性値が val を含む文字列の E 要素である E 要素を選択します 🎜🎜🎜🎜

    疑似クラスセレクター

    セレクター 説明
    訪問される前にハイパーリンクのスタイルを設定しますE: Visited
    セレクター 説明
    E:linkE:link 设置超链接a在未被访问前的样式
    E:visited 设置超链接a在其链接地址已被访问过时的样式
    E:hover 设置元素鼠标在其悬停时的样式
    E:active 设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式
    E:focus 设置元素在成为输入焦点(该元素的onfocus事件发生)时的样式。(一般应用于表单元素)
    E:checked 匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时)
    E:enabled 匹配用户界面上处于可用状态的元素E。(一般应用于表单元素)
    E:disabled 匹配用户界面上处于禁用状态的元素E。(一般应用于表单元素)
    E:empty 匹配没有任何子元素(包括text节点)的元素E
    E:root 匹配E元素在文档的根元素。在HTML中,根元素永远是HTML
    E:not(s) 匹配不含有s选择符的元素E
    E:first-child 匹配父元素的第一个子元素E
    E:last-child 匹配父元素的最后一个子元素E
    E:only-child 匹配父元素仅有的一个子元素E
    E:nth-child(n) 匹配父元素的第n个子元素E
    E:nth-last-child(n) 匹配父元素的倒数第n个子元素E
    E:first-of-type 匹配同类型中的第一个同级兄弟元素E
    E:last-of-type 匹配同类型中的最后一个同级兄弟元素E
    E:only-of-type 匹配同类型中的唯一的一个同级兄弟元素E
    E:nth-of-type(n) 匹配同类型中的第n个同级兄弟元素E
    E:nth-last-of-type(n)
    🎜リンクアドレスにアクセスしたときのハイパーリンクのスタイルを設定します🎜🎜🎜🎜E:hover🎜🎜マウスをホバーしたときの要素のスタイルを設定します。 🎜🎜🎜E:active🎜🎜ユーザーによってアクティブ化されたときの要素のスタイルを設定します (マウスのクリックとリリースの間に発生するイベント) 🎜🎜🎜🎜E:focus🎜🎜要素が入力フォーカスになったとき (要素の onfocus イベントが発生したとき)、要素のスタイルを設定します。 (通常はフォーム要素に適用されます) 🎜🎜🎜🎜<code>E:checked🎜🎜 は、ユーザー インターフェイスで選択された要素 E と一致します。 (入力タイプがラジオとチェックボックスの場合に使用されます)🎜🎜🎜🎜E:enabled🎜🎜は、ユーザー インターフェイスで使用可能な状態にある要素 E と一致します。 (通常はフォーム要素に適用されます) 🎜🎜🎜🎜E:disabled🎜🎜 は、ユーザー インターフェイスの無効な要素 E と一致します。 (通常、フォーム要素に適用されます)🎜🎜🎜🎜E:empty🎜🎜は、子要素 (テキストを含む) を持たない要素 E🎜🎜🎜🎜E:root と一致します。ノード) 🎜🎜ドキュメントのルート要素の E 要素と一致します。 HTML では、ルート要素は常に HTML です🎜🎜🎜🎜E:not(s)🎜🎜要素 E🎜🎜🎜🎜E:first-child と一致します🎜🎜最初の子要素 ​​E🎜🎜🎜🎜E:last-child と一致します🎜🎜 最後の子要素 ​​E🎜🎜🎜🎜E :only-child と一致します🎜🎜親要素の子要素 ​​E のみ🎜🎜🎜🎜E:nth-child(n)🎜🎜は親要素の n 番目の子要素 ​​E と一致します🎜🎜🎜🎜E:nth- last-child(n)🎜🎜は、親要素の下から n 番目の子要素 ​​E と一致します🎜🎜🎜🎜E:first-of-type🎜🎜は、最初の兄弟要素と一致します同じ型の E 🎜🎜🎜🎜E:last-of-type🎜🎜同じ型の最後の兄弟要素 E と一致します🎜🎜 🎜🎜E:only-of-type🎜🎜同じ型の唯一の兄弟要素 E と一致します🎜🎜🎜🎜<code>E:nth-of-type(n) code>🎜🎜 n 番目の兄弟要素 E🎜🎜🎜🎜<code>E:nth-last-of-type(n)🎜🎜同じタイプの兄弟要素 E🎜🎜🎜🎜 の n 番目の兄弟要素と一致します

    注意事项:

    • 超链接的4种状态(访问前,鼠标悬停,当前被点击,已访问),需要有特定的书写顺序才能生效;a:hover 必须位于 a:link 和 a:visited 之后,a:active 必须位于 a:hover 之后

    • E:first-child选择符,E必须是它的兄弟元素中的第一个元素,换言之,E必须是父元素的第一个子元素。与之类似的伪类还有E:last-child,只不过情况正好相反,需要它是最后一个子元素。

    关于:not()的用法

    假定有个列表,每个列表项都有一条底边线,但是最后一项不需要底边线。

     li:not(:last-child) {
        border-bottom: 1px solid #ddd;
    }
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    上述代码的意思是:给该列表中除最后一项外的所有列表项加一条底边线。是不是很方便。

    关于:nth-child()的用法

    要使E:nth-child(n)生效,E元素必须是某个元素的子元素,E的父元素最高是body,即E可以是body的子元素。:first-child:last-child:only-child:nth-last-child(n)也是一样。
    nth-child(n)括号里的n可以是一个数字,一个关键字,或者一个公式。

    :nth-child(length) /*参数是具体数字 length为整数*/
    :nth-child(n) /*参数是n,n从0开始计算*/
    :nth-child(n*length) /*n的倍数选择,n从0开始算*/
    :nth-child(n+length) /*选择大于等于length后面的元素*/
    :nth-child(-n+length) /*选择小于等于length前面的元素*/
    :nth-child(n*length+1) /*表示隔几选一*/
    :nth-child(2n) / :nth-child(even) /*表示偶数*/
    :nth-child(2n+1) / :nth-child(odd) /*表示奇数*/
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    关于:...-child:...-of-type的差异

    这两个系列的属性确实很相似,对于不熟悉的人可能很难区分。

    E:first-of-type 总是能命中父元素的第1个为E的子元素,不论父元素第1个子元素是否为E;而E:first-child里的E元素必须是它的兄弟元素中的第一个元素,否则匹配失效。E:last-of-type E:last-child也是同理。
    E:nth-of-type(n)总是能命中父元素的第n个为E的子元素,不论父元素第n个子元素是否为E;而E:nth-child(n)会选择父元素的第n个子元素E,如果第n个子元素不是E,则是无效选择符,但n会递增。
    关于:nth-child():nth-of-type()的区别可以看这篇文章

    :empty区分空元素

    选择不包含子元素的p元素:

    p:empty
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    选择包含子元素的p元素:

    p:not(:empty)
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    伪对象选择器

    选择器 描述
    E:before/E::before 在目标元素E的前面插入的内容。用来和content属性一起使用
    E:after/E::after 在目标元素E的后面插入的内容。用来和content属性一起使用
    E:first-letter/E::first-letter 设置元素内的第一个字符的样式
    E:first-line/E::first-line 设置元素内的第一行的样式
    E::placeholder 设置元素文字占位符的样式。(一般用于input输入框)
    E::selection 设置元素被选择时的字体颜色和背景颜色

    注意事项:

    • ::placeholder在使用时需要加上各个浏览器的前缀;除了Firefox是 ::[prefix]placeholder,其他浏览器都是使用 ::[prefix]input-placeholder

    总结

    选择器用得好其实可以让我们少些很多代码。其实还有一些东西没有展开来讲,比如:before:after,后面专门写一篇文章来说。


    CSS は非常に簡単だと思っている人が多いですが、実際には CSS をうまく書くのは簡単ではありません。 CSS の各ポイントには実際に が含まれています。セレクターを例にとると、CSS セレクターは次の 5 つのカテゴリに大別できます。

    • CSS特别简单,但其实真正写好CSS并不容易,CSS的每一点其实内容都很多,就拿选择器来说,CSS选择器大概可以分为五类:
      • 元素选择器

      • 关系选择器

      • 属性选择器

      • 伪类选择器

      • 伪对象选择器

      元素选择器

      选择器 名称 描述
      * 通配选择器 选择所有的元素
      E 元素选择器 选择指定的元素
      #idName id选择器 选择id属性等于idName的元素
      .className class选择器 选择class属性包含className的元素

      元素选择器只要是写CSS都会经常用,这一块的内容非常简单,没什么特别要说的。

      关系选择器

      选择器 名称 描述
      E F 包含选择器 选择所有包含在E元素里面的F元素
      E>F 子选择器 选择所有作为E元素的子元素F
      E+F 相邻选择器 选择紧贴在E元素之后的F元素
      E~F 兄弟选择器 选择E元素所有兄弟元素F

      这里要注意几点:

      • 子选择器只能选中字元素,而不能选中孙辈;而包含选择符将会选中所有符合条件的后代,包括儿子,孙子,孙子的孙子...

      • 相邻选择符只会选中符合条件的相邻的兄弟元素;而兄弟选择符会选中所有符合条件的兄弟元素,不强制是紧邻的元素。

      • 在Android Browser4.2.*及以下,伪类选择器:checked与兄弟选择符一起使用会有一个bug,查看详情。

      属性选择器

      関係セレクター
    • 疑似クラスセレクター
    • 疑似オブジェクト セレクター

      要素セレクター

      选择器 描述
      E[att] 选择具有att属性的E元素
      E[att="val"] 选择具有att属性且属性值等于val的E元素
      E[att~="val"] 选择具有att属性且属性值其中一个等于val的E元素(包含只有一个值且该值等于val的情况)
      E[att|="val"] 选择具有att属性且属性值为以val开头并用连接符-分隔的字符串的E元素,如果属性值仅为val,也将被选择
      E[att^="val"] 选择具有att属性且属性值为以val开头的字符串的E元素
      E[att$="val"] 选择具有att属性且属性值为以val结尾的字符串的E元素
      E[att*="val"]要素セレクター
    • 属性セレクター
    • セレクター / th> 名前 説明
      *🎜🎜ワイルドカードセレクター🎜🎜すべての要素を選択🎜🎜🎜E🎜🎜要素セレクター🎜🎜指定した要素を選択🎜🎜🎜#idName🎜🎜id selector🎜🎜id idNameと等しい属性を持つ要素を選択🎜🎜 🎜.className🎜🎜クラスセレクター🎜🎜class属性にclassNameが含まれる要素を選択します🎜🎜🎜🎜🎜 CSSを記述するだけの要素セレクターがよく使われます。このセクションの内容は非常にシンプルであり、特に言うことはありません。

      関係セレクター

      🎜🎜E F🎜🎜セレクターが含まれます🎜🎜E 要素に含まれるすべての F 要素を選択します🎜🎜🎜E&gt ;F🎜🎜子セレクター🎜🎜 E 要素の子であるすべての F 要素を選択します🎜🎜🎜E+F🎜🎜隣接セレクター🎜🎜 E 要素の後の F 要素をすぐに選択します🎜 🎜🎜E~F🎜🎜兄弟セレクター🎜🎜 E 要素のすべての兄弟要素 F を選択します🎜🎜🎜🎜🎜 ここで注意すべき点がいくつかあります:
      • 🎜子セレクターは単語要素のみを選択できますが、孫は選択できません。包含セレクターは、息子、孫、孫の孫など、条件を満たすすべての子孫を選択します。
      • 🎜隣接セレクターは条件を満たす隣接する兄弟要素のみを選択しますが、兄弟セレクターは条件を満たすすべての兄弟要素を選択しますが、直接隣接する要素は必須ではありません。
      • 🎜Android Browser4.2.* 以下では、擬似クラスセレクター :checked を兄弟セレクターと併用するとバグが発生します。詳細を確認してください。

      属性セレクター

      セレクター 名前 説明
      🎜🎜E[att]🎜🎜 att 属性を持つ E 要素を選択します🎜🎜🎜E[att="val "] 🎜🎜 att 属性を持ち、属性値が val に等しい E 要素を選択します🎜🎜🎜E[att~="val"]🎜🎜 E 要素を選択しますatt 属性と属性値が val に等しい E 要素の 1 つ (値が 1 つしかなく、値が val に等しい場合を含む)🎜🎜🎜E[att|= "val"]🎜🎜属性値が val で始まり結合子 - で区切られた文字列である att 属性と E 要素を選択します。属性値が val のみの場合は、も選択できます🎜🎜🎜E[att^= "val"]🎜🎜 att 属性を持ち、属性値が val で始まる文字列である E 要素を選択します🎜🎜🎜E[att$="val"]🎜 🎜 att 属性を持ち、属性値が val で終わる文字列である E 要素を選択します🎜🎜🎜E[ att*="val"]🎜🎜 att 属性を持ち、その属性値が val を含む文字列の E 要素である E 要素を選択します 🎜🎜🎜🎜

      疑似クラスセレクター

      セレクター 説明
      訪問される前にハイパーリンクのスタイルを設定しますE: Visited
      セレクター 説明
      E:linkE:link 设置超链接a在未被访问前的样式
      E:visited 设置超链接a在其链接地址已被访问过时的样式
      E:hover 设置元素鼠标在其悬停时的样式
      E:active 设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式
      E:focus 设置元素在成为输入焦点(该元素的onfocus事件发生)时的样式。(一般应用于表单元素)
      E:checked 匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时)
      E:enabled 匹配用户界面上处于可用状态的元素E。(一般应用于表单元素)
      E:disabled 匹配用户界面上处于禁用状态的元素E。(一般应用于表单元素)
      E:empty 匹配没有任何子元素(包括text节点)的元素E
      E:root 匹配E元素在文档的根元素。在HTML中,根元素永远是HTML
      E:not(s) 匹配不含有s选择符的元素E
      E:first-child 匹配父元素的第一个子元素E
      E:last-child 匹配父元素的最后一个子元素E
      E:only-child 匹配父元素仅有的一个子元素E
      E:nth-child(n) 匹配父元素的第n个子元素E
      E:nth-last-child(n) 匹配父元素的倒数第n个子元素E
      E:first-of-type 匹配同类型中的第一个同级兄弟元素E
      E:last-of-type 匹配同类型中的最后一个同级兄弟元素E
      E:only-of-type 匹配同类型中的唯一的一个同级兄弟元素E
      E:nth-of-type(n) 匹配同类型中的第n个同级兄弟元素E
      E:nth-last-of-type(n)
      🎜リンクアドレスにアクセスしたときのハイパーリンクのスタイルを設定します🎜🎜🎜🎜E:hover🎜🎜マウスをホバーしたときの要素のスタイルを設定します。 🎜🎜🎜E:active🎜🎜ユーザーによってアクティブ化されたときの要素のスタイルを設定します (マウスのクリックとリリースの間に発生するイベント) 🎜🎜🎜🎜E:focus🎜🎜要素が入力フォーカスになったとき (要素の onfocus イベントが発生したとき)、要素のスタイルを設定します。 (通常はフォーム要素に適用されます) 🎜🎜🎜🎜<code>E:checked🎜🎜 は、ユーザー インターフェイスで選択された要素 E と一致します。 (入力タイプがラジオとチェックボックスの場合に使用されます)🎜🎜🎜🎜E:enabled🎜🎜は、ユーザー インターフェイスで使用可能な状態にある要素 E と一致します。 (通常はフォーム要素に適用されます) 🎜🎜🎜🎜E:disabled🎜🎜 は、ユーザー インターフェイスの無効な要素 E と一致します。 (通常、フォーム要素に適用されます)🎜🎜🎜🎜E:empty🎜🎜は、子要素 (テキストを含む) を持たない要素 E🎜🎜🎜🎜E:root と一致します。ノード) 🎜🎜ドキュメントのルート要素の E 要素と一致します。 HTML では、ルート要素は常に HTML です🎜🎜🎜🎜E:not(s)🎜🎜要素 E🎜🎜🎜🎜E:first-child と一致します🎜🎜最初の子要素 ​​E🎜🎜🎜🎜E:last-child と一致します🎜🎜 最後の子要素 ​​E🎜🎜🎜🎜E :only-child と一致します🎜🎜親要素の子要素 ​​E のみ🎜🎜🎜🎜E:nth-child(n)🎜🎜は親要素の n 番目の子要素 ​​E と一致します🎜🎜🎜🎜E:nth- last-child(n)🎜🎜は、親要素の下から n 番目の子要素 ​​E と一致します🎜🎜🎜🎜E:first-of-type🎜🎜は、最初の兄弟要素と一致します同じ型の E 🎜🎜🎜🎜E:last-of-type🎜🎜同じ型の最後の兄弟要素 E と一致します🎜🎜 🎜🎜E:only-of-type🎜🎜同じ型の唯一の兄弟要素 E と一致します🎜🎜🎜🎜<code>E:nth-of-type(n) code>🎜🎜 n 番目の兄弟要素 E🎜🎜🎜🎜<code>E:nth-last-of-type(n)🎜🎜同じタイプの兄弟要素 E🎜🎜🎜🎜 の n 番目の兄弟要素と一致します

      注:

      • ハイパーリンクの 4 つの状態 (アクセス前、マウスホバー、現在クリック中、訪問中) を有効にするには、特定の書き込み順序が必要です。a:hover は、a:link と After :visited の間に配置する必要があります。 , a:active は a:hover の後に来る必要があります。

      • E:first-child セレクター、E は兄弟要素の最初の要素でなければなりません。つまり、E は親要素の最初の子要素でなければなりません。同様の疑似クラスは E:last-child ですが、状況はまったく逆で、最後の子要素である必要があります。 E:first-child选择符,E必须是它的兄弟元素中的第一个元素,换言之,E必须是父元素的第一个子元素。与之类似的伪类还有E:last-child,只不过情况正好相反,需要它是最后一个子元素。

      关于:not()的用法

      假定有个列表,每个列表项都有一条底边线,但是最后一项不需要底边线。

       li:not(:last-child) {
          border-bottom: 1px solid #ddd;
      }
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー

      上述代码的意思是:给该列表中除最后一项外的所有列表项加一条底边线。是不是很方便。

      关于:nth-child()的用法

      要使E:nth-child(n)生效,E元素必须是某个元素的子元素,E的父元素最高是body,即E可以是body的子元素。:first-child:last-child:only-child:nth-last-child(n)也是一样。
      nth-child(n)括号里的n可以是一个数字,一个关键字,或者一个公式。

      :nth-child(length) /*参数是具体数字 length为整数*/
      :nth-child(n) /*参数是n,n从0开始计算*/
      :nth-child(n*length) /*n的倍数选择,n从0开始算*/
      :nth-child(n+length) /*选择大于等于length后面的元素*/
      :nth-child(-n+length) /*选择小于等于length前面的元素*/
      :nth-child(n*length+1) /*表示隔几选一*/
      :nth-child(2n) / :nth-child(even) /*表示偶数*/
      :nth-child(2n+1) / :nth-child(odd) /*表示奇数*/
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー

      关于:...-child:...-of-type的差异

      这两个系列的属性确实很相似,对于不熟悉的人可能很难区分。

      E:first-of-type 总是能命中父元素的第1个为E的子元素,不论父元素第1个子元素是否为E;而E:first-child里的E元素必须是它的兄弟元素中的第一个元素,否则匹配失效。E:last-of-type E:last-child也是同理。
      E:nth-of-type(n)总是能命中父元素的第n个为E的子元素,不论父元素第n个子元素是否为E;而E:nth-child(n)会选择父元素的第n个子元素E,如果第n个子元素不是E,则是无效选择符,但n会递增。
      关于:nth-child():nth-of-type()的区别可以看这篇文章

      :empty区分空元素

      选择不包含子元素的p元素:

      p:empty
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー

      选择包含子元素的p元素:

      p:not(:empty)
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー

      伪对象选择器

      选择器 描述
      E:before/E::before 在目标元素E的前面插入的内容。用来和content属性一起使用
      E:after/E::after 在目标元素E的后面插入的内容。用来和content属性一起使用
      E:first-letter/E::first-letter 设置元素内的第一个字符的样式
      E:first-line/E::first-line 设置元素内的第一行的样式
      E::placeholder 设置元素文字占位符的样式。(一般用于input输入框)
      E::selection 设置元素被选择时的字体颜色和背景颜色

      注意事项:

      • ::placeholder在使用时需要加上各个浏览器的前缀;除了Firefox是 ::[prefix]placeholder,其他浏览器都是使用 ::[prefix]input-placeholder

      总结

      选择器用得好其实可以让我们少些很多代码。其实还有一些东西没有展开来讲,比如:before:after

      :not()

      の使用法について

      リストがあり、各リスト項目にはボトムラインがあるとしますが、最後の項目にはボトムラインが必要ありません究極の副業。

       li:not(:last-child) {
          border-bottom: 1px solid #ddd;
      }
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー

      上記のコードは、リストの最後の項目を除くすべてのリスト項目に最後の行を追加することを意味します。とても便利ではないでしょうか?

      :nth-child()

      の使い方について🎜E:nth-child(n)を有効にするには、E要素がa 要素の子要素。E の最上位の親要素は body です。つまり、E は body の子要素になることができます。 :first-child:last-child:only-child:nth-last-child(n) code> code> についても同様です。 <br><code>nth-child(n)括弧内の n には、数値、キーワード、または数式を指定できます。 🎜
      :nth-child(length) /*参数是具体数字 length为整数*/
      :nth-child(n) /*参数是n,n从0开始计算*/
      :nth-child(n*length) /*n的倍数选择,n从0开始算*/
      :nth-child(n+length) /*选择大于等于length后面的元素*/
      :nth-child(-n+length) /*选择小于等于length前面的元素*/
      :nth-child(n*length+1) /*表示隔几选一*/
      :nth-child(2n) / :nth-child(even) /*表示偶数*/
      :nth-child(2n+1) / :nth-child(odd) /*表示奇数*/
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー

      :...-child:...-of-type

      の違いについて🎜 これら 2 つのシリーズのプロパティは次のとおりです。確かに非常に異なりますが、同様に、慣れていない人にとっては区別するのが難しいかもしれません。 🎜🎜🎜E:first-of-type は、親要素の最初の子要素が E であるかどうかに関係なく、常に E である親要素の最初の子要素にヒットします。 E: first-child の E 要素は、兄弟要素の最初の要素である必要があります。そうでない場合、一致は失敗します。 E:last-of-type E:last-child についても同様です。 🎜
      🎜E:nth-of-type(n) は、親要素の n 番目の子要素が E であるかどうかに関係なく、常に E である親要素の n 番目の子要素にヒットします。 E; そして E:nth-child(n) は親要素の n 番目の子要素 ​​E を選択します。n 番目の子要素が E でない場合、それは無効なセレクターですが、n はインクリメントされます。 。 🎜
      :nth-child():nth-of-type() の違いについては、この記事をご覧ください 🎜

      :empty

      空の要素を区別する🎜子要素を含まない p 要素を選択する: 🎜
      p:empty
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
      🎜 子要素を含む p 要素を選択する: 🎜
      p:not(:empty)
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー

      擬似オブジェクト セレクター

      要素内の最初の文字のスタイルを設定します 要素テキストのプレースホルダーのスタイルを設定します。 (通常、入力ボックスに使用されます)
      セレクター 説明
      E: before/E::before ターゲット要素 E の前に挿入されるコンテンツ。 content 属性とともに使用されます。
      E:after/E::after 挿入されたコンテンツターゲット要素 E の後。 content 属性とともに使用されます。
      E:first-letter/E::first-letter
      E:first-line/E::first-line code> 要素内の最初の行のスタイルを設定します
      E::placeholder
      E::selection 要素が表示されているときのフォントの色と背景を設定します。選択した色
      🎜注: 🎜🎜🎜🎜::placeholder を使用する場合は、各ブラウザのプレフィックスを追加する必要があります。 Firefox の場合は ::[prefix]placeholder、他のブラウザは ::[prefix]input-placeholder を使用します。 🎜🎜

      概要

      🎜セレクターをうまく使用すると、実際に多くのコードを節約できます。実際には、:before:after など、詳しく説明していないものがまだいくつかあります。それらについては、後で特別に記事を書きます。 🎜🎜 CSS セレクター構成に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。 🎜🎜🎜
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLテキストボックスのサイズを変更する方法 HTMLテキストボックスのサイズを変更する方法 Feb 20, 2024 am 10:03 AM

HTML テキスト ボックスのサイズの設定は、フロントエンド開発において非常に一般的な操作です。この記事では、テキスト ボックスのサイズを設定する方法を説明し、具体的なコード例を示します。 HTML では、CSS を使用してテキスト ボックスのサイズを設定できます。具体的なコードは次のとおりです。 input[type="text&quot

表示のずれを防ぐためにWordPressテーマを調整する方法 表示のずれを防ぐためにWordPressテーマを調整する方法 Mar 05, 2024 pm 02:03 PM

表示のずれを避けるために WordPress テーマを調整する方法には、具体的なコード例が必要です。WordPress は強力な CMS システムとして、多くの Web サイト開発者や Web マスターに愛されています。しかし、WordPress を使用して Web サイトを作成する場合、ユーザーエクスペリエンスやページの美しさに影響を与えるテーマのずれの問題によく遭遇します。したがって、表示のずれを避けるために、WordPress テーマを適切に調整することが非常に重要です。この記事では、テーマの調整方法を具体的なコード例を通して紹介します。

CSS セレクター ワイルドカードの重みと優先順位を深く理解する CSS セレクター ワイルドカードの重みと優先順位を深く理解する Dec 26, 2023 pm 01:36 PM

CSS セレクター ワイルドカードの重みと優先順位についての深い理解 CSS スタイル シートでは、セレクターは、スタイルを適用する HTML 要素を指定するための重要なツールです。複数のルールが HTML 要素に同時に適用される場合、セレクターの優先順位と重みによって、どのスタイルが適用されるかが決まります。ワイルドカード セレクターは、CSS の一般的なセレクターです。これは「*」記号で表され、すべての HTML 要素と一致することを意味します。ワイルドカード セレクターはシンプルですが、特定の状況では非常に役立ちます。ただし、ワイルドカード セレクターの重みと優先順位も

CSSセレクターの優先順位とは何ですか CSSセレクターの優先順位とは何ですか Apr 25, 2024 pm 05:30 PM

CSS セレクターの優先順位は、次の順序で決定されます。 特異性 (ID > クラス > タイプ > ワイルドカード) ソースの順序 (インライン > 内部スタイル シート > 外部スタイル シート > ユーザー エージェント スタイル シート) 宣言の順序 (最新の宣言が優先されます) 重要度 (!重要優先順位を強制的に上げます)

高度なセレクターである CSS セレクター 高度なセレクターである CSS セレクター Oct 07, 2023 pm 02:59 PM

CSS セレクターの高度なセレクターには、子孫セレクター、子要素セレクター、隣接兄弟セレクター、ユニバーサル兄弟セレクター、属性セレクター、クラス セレクター、ID セレクター、疑似クラス セレクター、疑似要素セレクター待機が含まれます。詳細な紹介: 1. 子孫セレクターは、スペースで区切られたセレクターを使用して要素の子孫要素を選択します; 2. 子要素セレクターは、大なり記号で区切られたセレクターを使用して要素の直接の子要素を選択します; 3.隣接する兄弟セレクターは、プラス記号で区切られたセレクターを使用して、要素の直後にある最初の兄弟要素を選択します。

CSSセレクターの除外セクションの要素は何ですか CSSセレクターの除外セクションの要素は何ですか Apr 06, 2024 am 02:42 AM

:not() セレクターは、特定の条件下で要素を除外するために使用できます。その構文は :not(selector) {style rules} です。例: :not(p) はすべての非段落要素を除外し、li:not(.active) は非アクティブなリスト項目を除外し、:not(table) は非テーブル要素を除外し、div:not([data-role="primary"] ) プライマリ以外の役割を持つ div 要素を除外します。

レスポンシブ レイアウト フレームワークの詳細: 初心者から専門家までを対象とした徹底ガイド レスポンシブ レイアウト フレームワークの詳細: 初心者から専門家までを対象とした徹底ガイド Feb 19, 2024 pm 05:43 PM

レスポンシブ レイアウト フレームワーク分析: 初心者から専門家までの必須ガイド モバイル デバイスの普及と多様化に伴い、レスポンシブ レイアウトは現代の Web デザインにとって不可欠なスキルになりました。レスポンシブ レイアウト フレームワークは、そのシンプルさ、柔軟性、保守性により、開発者にとって推奨されるツールとなっています。ただし、初心者にとって、レスポンシブ レイアウト フレームワークを学習して理解するのは少し複雑に感じるかもしれません。この記事では、初心者から専門家まで、レスポンシブ レイアウト フレームワークをマスターするための詳細なガイドと、具体的なコード例を提供します。レスポンシブクロスとは

CSS セレクターを使用する基本的な構文を学習します。 CSS セレクターを使用する基本的な構文を学習します。 Jan 13, 2024 am 11:44 AM

基本的な CSS セレクター構文をマスターするには、特定のコード例が必要です。CSS セレクターは、フロントエンド開発の非常に重要な部分です。CSS セレクターは、HTML ドキュメントのさまざまな要素を選択および変更するために使用できます。基本的な CSS セレクター構文をマスターすることは、効率的なスタイルシートを作成するために重要です。この記事では、いくつかの一般的な CSS セレクターと対応するコード例を紹介します。要素セレクター 要素セレクターは、タグ名によって対応する要素を選択できる最も基本的なセレクターです。たとえば、すべての段落 (p 要素) を選択するには、次のようにします。

See all articles