私は複雑なhtml構造を持っています。CSS 初心者。IE でパフォーマンスに影響が出る可能性があるため、xpath を css に変更したい
firebugによるXpath:.//*[@id='T_I:3']/span/a
私は微調整しました://div[@id='Overview']/descendant::*[@id='T_I:3']/span/a
今、同じものに対応する CSS が必要です。それは可能ですか?
まず第一に、あなたの「微調整」が最善の仕事をしたとは思いません。要素id
はドキュメント内で一意である必要があるため、通常、最新のブラウザーによってキャッシュされます (つまり、id ルックアップは瞬時に行われます)。関数を使用して、XPath エンジンを支援できますid()
。
したがって、XPath 式は次のようになりますid('T_I:3')/span/a
(はい、これは有効な XPath 1.0 式です)。
とにかく、これを CSS に変換するには、次を使用します。#T_I:3 > span > a
変換された「微調整された」式は: になりますが、真剣に、1 つの選択div#Overview #T_I:3 > span > a
しか必要ありません。id
フレデリック・ハミディによる良いコメントに基づく編集:
有効ではないと思い
#T_I:3
ます(コロンは疑似クラスの開始と混同されます)。あなたはそれを逃れる方法を見つけなければならないでしょう。
アンダースコアもエスケープする必要があることがわかりました。これには、この SO の質問で説明されている手法を使用します: CSS セレクターの要素 ID でコロンを処理します。
最終的な CSS セレクターは次のようになります。
#T\5FI\3A3 > span > a