CSS三后代选择器

CSS三后代选择器,css,css-selectors,Css,Css Selectors,我怀疑后代选择器 .classA .classB .classC{ background-color: #000; } 这将背景应用于所有classC元素,classB元素的子元素(直接或间接),其中classB元素是classA元素的子元素(直接或间接)。这不会将背景应用于classC元素classA元素的子元素,而是classB元素的非子元素。是这样吗 .classA > .classB .classC{ background-color: #000; } 这将背景

我怀疑后代选择器

.classA .classB .classC{
    background-color: #000;
}
这将背景应用于所有classC元素,classB元素的子元素(直接或间接),其中classB元素是classA元素的子元素(直接或间接)。这不会将背景应用于classC元素classA元素的子元素,而是classB元素的非子元素。是这样吗

.classA > .classB .classC{
    background-color: #000;
}
这将背景应用于所有classC元素,所有classB元素的子元素(直接或间接),其中classB元素是a类元素的直接(非间接)子元素


一切都对吗?

你所说的一切都是对的,除了用“后代”代替“孩子”。“直接的孩子”是同义反复;根据定义,孩子是直系后裔。相反,在选择器
E>F>G
中,G是E的后代,但不是其子代;它是它的孙子

这就是为什么
被称为简单的子组合子,或者直接后代组合子,而不是“直接子”组合子


另见:(特别是我答案的脚注)

你所说的一切都是对的,除了用“后代”代替“孩子”。“直接的孩子”是同义反复;根据定义,孩子是直系后裔。相反,在选择器
E>F>G
中,G是E的后代,但不是其子代;它是它的孙子

这就是为什么
被称为简单的子组合子,或者直接后代组合子,而不是“直接子”组合子


另请参见:(特别是我答案的脚注)

>检查直接子元素,因此后一条规则适用于.classC元素,这些元素是.classB的间接或直接后代,它们是.classA>的子元素(直接子元素),因此后一条规则适用于.classC元素,这些元素是.classB的间接或直接后代,它们是.classA的子元素(直接)