1

我有一个复杂的html结构。CSS 新手。想要将我的 xpath 更改为 css,因为在 IE 中可能会有一些性能影响

萤火虫的Xpath:.//*[@id='T_I:3']/span/a

我微调到://div[@id='Overview']/descendant::*[@id='T_I:3']/span/a

现在我需要相应的CSS。有没有可能?

4

1 回答 1

1

首先,我不认为您的“微调”做得最好。一个元素id在文档中应该是唯一的,因此通常被现代浏览器缓存(这意味着 id 查找是即时的)。id()您可以通过使用该函数来帮助 XPath 引擎。

因此,XPath 表达式将是:(id('T_I:3')/span/a是的,这是一个有效的 XPath 1.0 表达式)。

无论如何,要将其转换为 CSS,您可以使用:#T_I:3 > span > a

转换后的“微调”表达式将是:div#Overview #T_I:3 > span > a,但说真的,您只需要一个id选择。

主题标签#是一个id选择器。

空格 ( ) 是后代组合子。

>符号是一个子组合子。


编辑基于 Fréderic Hamidi 的好评:

我不认为#T_I:3是有效的(冒号会与伪类的开头混淆)。你必须想办法逃脱它。

事实证明,您还需要转义下划线。为此,请使用此 SO 问题中提到的技术:在 CSS 选择器中处理元素 ID 中的冒号

最终的 CSS 选择器将是:

#T\5FI\3A3 > span > a
于 2013-09-05T12:47:42.830 回答