2

:contains()在 Selenium 测试中广泛使用选择器。W3C 规范已将其删除。

我想了解原因,但找不到解释此决定背后原因的文档。看过W3org(伪类最后出现在这个版本中)并搜索了谷歌。

我在哪里可以找到有关对 W3C 规范进行此类更改的原因的信息?

4

2 回答 2

2

您可能可以在 W3C 邮件列表中找到原因:

https://www.google.com/search?q=site%3Ahttp%3A%2F%2Flists.w3.org%2F+css+contains

有很多关于它的讨论。根据这篇文章,除其他外,它可能与性能问题有关。

于 2013-01-17T07:09:25.930 回答
2

:contains()被删除是因为他们想出了另一个主意。CSS4 允许您使用 .更改整个选择器的主题!

因此,如果您想查找文档中包含页脚的所有表格:

!table > tfoot { ... }

这将执行与使用 相同的查找table > tfoot,但实际受影响的元素将是tables,而不是tfoots。

我不知道他们做出改变的确切原因,但我可以猜到:这对我来说更容易阅读!而且因为你不能嵌套它或将它与:not()或其他类似的暴行结合起来,浏览器供应商很容易有效地实施。

于 2013-01-17T07:22:05.140 回答