Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关系优先查询_Javascript_Css_Css Selectors - Fatal编程技术网

Javascript 关系优先查询

Javascript 关系优先查询,javascript,css,css-selectors,Javascript,Css,Css Selectors,我目前正在为服务器端JS(!)编写CSS选择器引擎。为了有一个坚实的基础,我开始使用(现有的选择器引擎)的测试。在那里,我找到了“关系优先查询”的。显然,CSSselect(我的项目)没有显示预期的行为,但我不确定预期的是什么 我已经搜索了文档,但找不到任何有用的东西。我当前的实现对它们的解释如下: 相当于:not(:root) ~和+等同于:不是(:第一个孩子) 忽略开头的空白 QWERY的解释似乎不同,但有什么官方的吗?没有。你可以看看和(CSS3) ≠ :非(:根):root表示文档

我目前正在为服务器端JS(!)编写CSS选择器引擎。为了有一个坚实的基础,我开始使用(现有的选择器引擎)的测试。在那里,我找到了“关系优先查询”的。显然,CSSselect(我的项目)没有显示预期的行为,但我不确定预期的是什么

我已经搜索了文档,但找不到任何有用的东西。我当前的实现对它们的解释如下:

  • 相当于
    :not(:root)
  • ~
    +
    等同于
    :不是(:第一个孩子)
  • 忽略开头的空白

QWERY的解释似乎不同,但有什么官方的吗?

没有。你可以看看和(CSS3)

  • ≠ <代码>:非(:根)<代码>:root表示文档根,因此除了一个元素外,您的“equal”将为真。相反,这是最重要的
  • ~
    ≠ <代码>:不是(:第一个孩子)≠ <代码>+。主要是因为
    ~
    +
    彼此不同,等价是可传递的。两个都是兄弟组合,一个为一,另一个为一
  • 我想应该忽略空白。它还能代表什么?在它周围需要两个简单的选择器。你也可能会对这个问题感兴趣

当然,子组合符暗示子文档不是文档根,相邻的组合符暗示兄弟姐妹不是第一个子文档。

否。您可以查看and(CSS3)

  • ≠ <代码>:非(:根)<代码>:root表示文档根,因此除了一个元素外,您的“equal”将为真。相反,这是最重要的
  • ~
    ≠ <代码>:不是(:第一个孩子)≠ <代码>+。主要是因为
    ~
    +
    彼此不同,等价是可传递的。两个都是兄弟组合,一个为一,另一个为一
  • 我想应该忽略空白。它还能代表什么?在它周围需要两个简单的选择器。你也可能会对这个问题感兴趣

当然,子组合符暗示子节点不是文档根节点,相邻组合符暗示兄弟节点不是第一个子节点。

这些“关系优先”选择器是非标准扩展,因此没有任何“官方”定义它们。根据您的描述,
>foo
+foo
~foo
似乎分别等同于
*>foo
*+foo
*~foo

这些“关系优先”选择器是非标准扩展,因此没有任何“官方”定义它们。从你的描述来看,
>foo
+foo
~foo
似乎分别等同于
*>foo
*+foo
*~foo

你所说的
是什么意思?一个是组合符,另一个是伪类。
>tag
相当于
tag:not(:root)
此外,您的引擎还包括许多jQuery扩展
:has()
:selected
也是jQuery扩展,不是CSS的一部分。但这与本例无关。我还致力于支持Sizzle测试,而不是删除大多数测试,我希望功能尽可能完整。您所说的
等同于
:而不是(:root)
是什么意思?一个是组合符,另一个是伪类。
>tag
相当于
tag:not(:root)
此外,您的引擎还包括许多jQuery扩展
:has()
:selected
也是jQuery扩展,不是CSS的一部分。但这与本例无关。我还致力于支持Sizzle测试,而不是删除大多数测试,我希望功能尽可能完整。“后代组合器需要两个简单的选择器。”或者更确切地说,两个复合选择器。但这是未来的定义……语法是我一直在寻找的。谢谢@哦,对了。正确地引用当前语句:“…是分隔两个简单选择器序列的空格。”“后代组合器需要两个简单选择器围绕它。”或者更确切地说,是两个复合选择器。但这是未来的定义……语法是我一直在寻找的。谢谢@哦,对了。正确地引用当前语句:“……是分隔两个简单选择器序列的空白。”我最近发现,似乎正在采用这些扩展,称它们为“相对选择器”,用于
find()
findAll()
。这将变得非常有趣。@BoltClock,显然它们的意思与
:scope
是预先指定的,并且仅在某些上下文中(当存在范围时)才被接受。我最近发现,似乎正在采用这些扩展,称它们为“相对选择器”,用于
find()
findAll()
。这将变得非常有趣。@BoltClock,显然它们的意思与
:scope
是预先指定的一样,并且只在某些上下文中被接受(当存在范围时)