1

私は複雑なhtml構造を持っています。CSS 初心者。IE でパフォーマンスに影響が出る可能性があるため、xpath を css に変更したい

firebugによるXpath:.//*[@id='T_I:3']/span/a

私は微調整しました://div[@id='Overview']/descendant::*[@id='T_I:3']/span/a

今、同じものに対応する CSS が必要です。それは可能ですか?

4

1 に答える 1

1

まず第一に、あなたの「微調整」が最善の仕事をしたとは思いません。要素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

ハッシュタグ#idセレクターです。

スペース ( ) は子孫コンビネータです。

>記号は子コンビネータです。


フレデリック・ハミディによる良いコメントに基づく編集:

有効ではないと思い#T_I:3ます(コロンは疑似クラスの開始と混同されます)。あなたはそれを逃れる方法を見つけなければならないでしょう。

アンダースコアもエスケープする必要があることがわかりました。これには、この SO の質問で説明されている手法を使用します: CSS セレクターの要素 ID でコロンを処理します。

最終的な CSS セレクターは次のようになります。

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