有没有正当理由在CSS中没有父选择器?

时间:2011-05-17 15:17:36

标签: css css-selectors

虽然存在选择器以选择其他项目之前(#hlinks+#hsearch)或拥有(#topbar>#hlinks)的项目,但无法执行相反的操作。

例如,不存在类似

的内容
li:has(ul){ }

检测其中包含其他列表的列表项。那不方便吗?

AFAIK,这个功能甚至不在CSS的计划中,所以我的问题是:为什么会这样

4 个答案:

答案 0 :(得分:4)

这通常被称为“父选择器”;正如你所说,它们在CSS中不存在,尽管它们可能很有用。

有一个interesting discussion here;总结是,它们会对性能产生很大的负面影响,并且会让人们犯下大错误的后果。理解这些事情的人似乎认为可以克服这些问题,但是还没有足够的需求让某人真正去做。

答案 1 :(得分:3)

您指的是“父”选择器的概念 - 在特定条件下选择父元素。你对CSS中没有的这个特性是正确的(不是事件CSS3) - 据我所知,目前不可能通过CSS解析DOM的方式。但是,使用jQuery和:parent选择器或:has选择器可以使用此功能,您可能已经熟悉它了。

编辑:有关父选择器概念的大量详细信息,请参阅http://shauninman.com/archive/2008/05/05/css_qualified_selectors

答案 2 :(得分:-4)

这是CSS中的标准,因为......呃.... CSS的开头。

这只是一个空间:

li ul表示any ul that is inside li

答案 3 :(得分:-4)

如果您想这样做,请执行以下操作:

ul li ul li {

}

现在,您正在搜索任何列表项,其中包含列表项的无序列表。

相关问题