2011-06-24 47 views
0

這需要至少與IE 7/8和其他主要的當前瀏覽器兼容。如何在div的第二個FB標籤中選擇第一個IFRAME?

我有以下(簡化的)HTML:

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

的IFRAME由加入的Facebook,但我需要做一個顯示器修改它。我如何使用CSS選擇器來選擇「ID爲facebook的div下的第二個FB標籤中的第一個IFRAME」?我需要將高度和溢出CSS屬性添加到IFRAME。

如果CSS在跨瀏覽器兼容的方式中不可行,那麼適當的jQuery選擇器會是什麼?無論如何,如果有人想回答這兩種情況,可能會有幫助,但我的偏好是CSS。

謝謝。

回答

1

這些都不是fb元素,它們在fb XML命名空間likecomment元素。

完成這一切的W3C方法是在樣式表中聲明名稱空間,並使用特殊的選擇器語法,如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: [...]}); 
相關問題