我有一个复杂的html结构。 CSS新手。想要将我的xpath更改为css,因为在IE中可能会有一些性能影响
by firebug的Xpath:.//*[@id='T_I:3']/span/a
我很好地说://div[@id='Overview']/descendant::*[@id='T_I:3']/span/a
现在我需要相应的CSS。有可能吗?
答案 0 :(得分: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
。
The hashtag #
is an id
selector.
The space () is a descendant combinator.
The >
sign is a child combinator.
编辑基于FrédericHamidi的好评:
我认为
#T_I:3
无效(冒号会与...混淆) 开始伪类)。你必须找到逃脱它的方法。
事实证明你还需要逃避下划线。为此,请使用此SO问题中提到的技术:Handling a colon in an element ID in a CSS selector。
最终的CSS选择器将是:
#T\5FI\3A3 > span > a