msub > *:first-child:after, msub > * + *:before { ... }
这是我试图理解的 css 文件中的代码片段。
msub 是元素。
- > 这,大于,适用于 msub 的直接子元素
- 对这种类型的所有元素执行此操作
- :first-child 对 msub 的所有第一个孩子执行此操作
他们为什么要做第一个孩子的>和第一个孩子的 :first- child ?
msub > *:first-child:after, msub > * + *:before { ... }
这是我试图理解的 css 文件中的代码片段。
msub 是元素。
他们为什么要做第一个孩子的>和第一个孩子的 :first- child ?
>
表示“所有孩子”而不是“第一个孩子”。
:first-child
表示“其父级的第一个子级”而不是“前一个组合器之前的选择器的第一个子级”
<msub>
<a>
<b></b>
</a>
<c></c>
</msub>
msub *:first-child
会选择a
andb
因为他们都是他们父母的第一个孩子并且都是msub
.
msub > *
会选择a
并且c
因为他们都是msub
msub > *:first-child
只选择a
.
msub
- 元素
>
- 目标父元素的直接子元素(不是子元素的子元素)
*
- 获取所有子元素
:first-child
- 仅获取第一个子元素
CSS 通过选择器向后工作,因此:
从作为 parent 的直接后代的所有元素中获取第一个子元素msub
。