524

如何递归地选择所有子元素?

div.dropdown,div.dopdown>*{颜色:红色;}

这个类只在定义的className和所有直接子类上抛出一个类。如何简单地选择所有子节点:

div.下拉菜单,下降>*,div.dropdown>*>*,div.dropdown>*>*>*,div.dropdown>*>*>***{颜色:红色;}

3个答案

重置为默认值
812

使用空白要匹配元素的所有后代,请执行以下操作:

div.下拉列表*{颜色:红色;}

x年匹配每个元素在里面x个无论它嵌套得多么深-孩子、孙子等等。

星号*匹配任何元素。

官方规范:CSS 2.1:第5.5章:后代选择器

9
  • 1
    它可以工作,但现在它覆盖了所有其他类,即使它们具有更高的优先级。。(它们稍后放置在css文件中)
    – 克拉克
    评论 2011年2月5日22:33
  • 选择器还对属性的优先级起作用,而不仅仅是属性在文件中的显示位置。您可以尝试添加`!对你的价值观很重要,例如。颜色:红色!重要; 评论 2011年2月5日22:39
  • 我知道,它有点丑。相反,您可以尝试编写更精确的选择器,很可能这也会奏效。(例如。#头部ul#头部ul#navi) 评论 2011年2月5日22:46
  • 2
    好的,非常基本的例子:p.xy公司第页,因为它有点具体。jsfiddle.net/ftJVX 评论 2011年2月5日22:55
  • 2
    如果我想要所有有特定班级的孩子怎么办?
    – MEM公司
    评论 2014年5月7日15:13
216

规则如下:

A和B{/*B是A的后代*/}
A>B{/*B是A的直系子代*/}

所以

div.下拉菜单*

而不是

div.dropdown>*
0

后代组合子

后代组合子-通常由单个空格(““)字符-组合两个选择器,使元素与如果第二个选择器有祖先(父,parent的parent、parent的parent的parent等)元素第一个选择器。

详细信息详细信息{左边边距:48px;}
<详细信息><summary>A</summary>A是字母表中的一个字母。</详细信息><详细信息打开><summary>B</summary>B是字母表中的一个字母。<详细信息打开><summary>1</summary>1是一个数字。<详细信息打开><摘要>**是一个字符。</详细信息></详细信息><详细信息打开><摘要>2</summary>2是一个数字。</详细信息></详细信息>

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.