2011-06-24 3 views
0

これは少なくともIE 7/8と他の主要な現在のブラウザとのクロスブラウザ互換性が必要です。divの2番目のFBタグ内で最初のIFRAMEを選択するにはどうすればよいですか?

私は(簡体字)、次のHTMLいます

<div id="facebook"> 
    <fb:like ...... /> 
    <fb:comments> 
     <iframe .... /> 
    </fb:comments> 
</div> 

IFRAMEするFacebookで追加されたが、私はそれに表示変更をする必要があります。 CSSセレクタを使用して、「第2のFBタグ内の最初のIFRAMEを、IDのあるdivの下に」選択するにはどうすればよいですか? IFRAMEに高さとオーバーフローCSS属性を追加する必要があります。

ブラウザで互換性のある方法でCSSでこれを行うことができない場合は、jQueryセレクタにはどのようなものがありますか?とにかく誰かが両方のシナリオに答えたいと思っているが、私の好みはCSSのためだ。

ありがとうございました。

答えて

1

者は、彼らがfb XML名前空間のlikecomment要素であり、fb要素ではありません。

これをすべて行うには、スタイルシートにネームスペースを宣言し、in this answerのように特殊なセレクタ構文を使用します。しかし、あなたが期待しているように、IEは私が何を言っているのか分かりません。その代わりに、代わりにfb:likefb:commentの代わりに、名前空間を要素名の一部として扱うことができます。 :はCSSセレクタ(擬似クラスと擬似要素)の特殊文字であるため、文字通り見えるようにバックスラッシュでエスケープするだけです。

このCSSセレクタは、IE7 +と他のブラウザで動作するはずです:あなたは右のあなたがスクリプトのためにそれを使用する必要がある場合にはそのセレクタをドロップすることができるように

#facebook fb\:comments iframe:first-child { 
    /* Styles */ 
} 

jQueryのは、現在、そのセレクタエンジンで名前空間を実装していません。

0

CSSでできているかどうか、それがIE7と互換性がないかどうかはわかりません。 jqueryの使用

var iframe = $("#facebook").children().eq(2).find("iframe").first(); 
iframe.css({overflow: [...], height: [...]}); 
関連する問題