我在Selenium测试中广泛使用:contains()
选择器。W3C规范已将其删除。
我想知道为什么,但找不到解释这个决定背后原因的文档。看了W3org(伪类最后出现在这个版本中)并搜索了google。
我在哪里可以找到有关对W3C规范进行此类更改的原因的信息?
您可以在W3C邮件列表中找到原因:
https://www.google.com/search?q=site%3Ahttp%3A%2F%2Flists.w3.org%2F + css +包含有很多关于它的讨论。根据这篇文章,除其他外,它可能与性能问题有关。
:contains()
被删除是因为他们想出了另一个想法。CSS4允许您使用!
更改整个选择器的主题。
如果你想找到文档中所有包含页脚的表格:
!table > tfoot { ... }
这将执行与使用table > tfoot
相同的查找,但实际受影响的元素将是table
s,而不是tfoot
s。
我不知道他们为什么要改变,但我可以猜到:这对我来说更容易阅读!因为你不能嵌套它或将它与:not()
或其他类似的功能结合起来,所以浏览器供应商很容易有效地实现它。